LLVM 22.0.0git
|
Proxy class that targets should inherit from if they wish to use the generated node descriptions. More...
#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
Public Member Functions | |
~SelectionDAGGenTargetInfo () override | |
const char * | getTargetNodeName (unsigned Opcode) const override |
Returns the name of the given target-specific opcode, suitable for debug printing. | |
bool | isTargetMemoryOpcode (unsigned Opcode) const override |
Returns true if a node with the given target-specific opcode has a memory operand. | |
bool | isTargetStrictFPOpcode (unsigned Opcode) const override |
Returns true if a node with the given target-specific opcode has strict floating-point semantics. | |
void | verifyTargetNode (const SelectionDAG &DAG, const SDNode *N) const override |
Checks that the given target-specific node is valid. Aborts if it is not. | |
Public Member Functions inherited from llvm::SelectionDAGTargetInfo | |
SelectionDAGTargetInfo ()=default | |
SelectionDAGTargetInfo (const SelectionDAGTargetInfo &)=delete | |
SelectionDAGTargetInfo & | operator= (const SelectionDAGTargetInfo &)=delete |
virtual | ~SelectionDAGTargetInfo () |
virtual bool | mayRaiseFPException (unsigned Opcode) const |
Returns true if a node with the given target-specific opcode may raise a floating-point exception. | |
virtual SDValue | EmitTargetCodeForMemcpy (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const |
Emit target-specific code that performs a memcpy. | |
virtual SDValue | EmitTargetCodeForMemmove (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const |
Emit target-specific code that performs a memmove. | |
virtual SDValue | EmitTargetCodeForMemset (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const |
Emit target-specific code that performs a memset. | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForMemcmp (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, const CallInst *CI) const |
Emit target-specific code that performs a memcmp/bcmp, in cases where that is faster than a libcall. | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForMemchr (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Src, SDValue Char, SDValue Length, MachinePointerInfo SrcPtrInfo) const |
Emit target-specific code that performs a memchr, in cases where that is faster than a libcall. | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrcpy (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest, SDValue Src, MachinePointerInfo DestPtrInfo, MachinePointerInfo SrcPtrInfo, bool isStpcpy) const |
Emit target-specific code that performs a strcpy or stpcpy, in cases where that is faster than a libcall. | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrcmp (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const |
Emit target-specific code that performs a strcmp, in cases where that is faster than a libcall. | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, MachinePointerInfo SrcPtrInfo) const |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrnlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const |
virtual SDValue | EmitTargetCodeForSetTag (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Addr, SDValue Size, MachinePointerInfo DstPtrInfo, bool ZeroData) const |
virtual bool | disableGenericCombines (CodeGenOptLevel OptLevel) const |
Protected Member Functions | |
SelectionDAGGenTargetInfo (const SDNodeInfo &GenNodeInfo) |
Protected Attributes | |
const SDNodeInfo & | GenNodeInfo |
Proxy class that targets should inherit from if they wish to use the generated node descriptions.
Definition at line 192 of file SelectionDAGTargetInfo.h.
|
inlineexplicitprotected |
Definition at line 196 of file SelectionDAGTargetInfo.h.
References GenNodeInfo.
Referenced by llvm::AArch64SelectionDAGInfo::AArch64SelectionDAGInfo(), llvm::ARCSelectionDAGInfo::ARCSelectionDAGInfo(), llvm::AVRSelectionDAGInfo::AVRSelectionDAGInfo(), llvm::CSKYSelectionDAGInfo::CSKYSelectionDAGInfo(), llvm::LanaiSelectionDAGInfo::LanaiSelectionDAGInfo(), llvm::M68kSelectionDAGInfo::M68kSelectionDAGInfo(), llvm::MSP430SelectionDAGInfo::MSP430SelectionDAGInfo(), llvm::RISCVSelectionDAGInfo::RISCVSelectionDAGInfo(), llvm::SparcSelectionDAGInfo::SparcSelectionDAGInfo(), and llvm::XCoreSelectionDAGInfo::XCoreSelectionDAGInfo().
|
overridedefault |
|
inlineoverridevirtual |
Returns the name of the given target-specific opcode, suitable for debug printing.
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 202 of file SelectionDAGTargetInfo.h.
References assert(), and GenNodeInfo.
|
inlineoverridevirtual |
Returns true if a node with the given target-specific opcode has a memory operand.
Nodes with such opcodes can only be created with SelectionDAG::getMemIntrinsicNode.
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 208 of file SelectionDAGTargetInfo.h.
References GenNodeInfo, and llvm::SDNPMemOperand.
|
inlineoverridevirtual |
Returns true if a node with the given target-specific opcode has strict floating-point semantics.
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 214 of file SelectionDAGTargetInfo.h.
References GenNodeInfo, and llvm::SDNFIsStrictFP.
|
inlineoverridevirtual |
Checks that the given target-specific node is valid. Aborts if it is not.
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 220 of file SelectionDAGTargetInfo.h.
References GenNodeInfo, and N.
Referenced by llvm::AArch64SelectionDAGInfo::verifyTargetNode(), and llvm::RISCVSelectionDAGInfo::verifyTargetNode().
|
protected |
Definition at line 194 of file SelectionDAGTargetInfo.h.
Referenced by getTargetNodeName(), llvm::RISCVSelectionDAGInfo::hasMaskOp(), llvm::RISCVSelectionDAGInfo::hasPassthruOp(), isTargetMemoryOpcode(), isTargetStrictFPOpcode(), SelectionDAGGenTargetInfo(), and verifyTargetNode().