Go to the documentation of this file.
14 #ifndef LLVM_LIB_TARGET_CSKY_CSKYISELLOWERING_H
15 #define LLVM_LIB_TARGET_CSKY_CSKYISELLOWERING_H
52 EVT VT)
const override;
74 const char *getTargetNodeName(
unsigned Opcode)
const override;
79 getExceptionPointerRegister(
const Constant *PersonalityFn)
const override;
84 getExceptionSelectorRegister(
const Constant *PersonalityFn)
const override;
93 std::pair<unsigned, const TargetRegisterClass *>
108 unsigned Flags)
const;
125 template <
class NodeTy,
bool IsCall = false>
138 SDValue TCPV = getTargetConstantPoolValue(
N, Ty, DAG,
Flag);
173 #endif // LLVM_LIB_TARGET_CSKY_CSKYISELLOWERING_H
SDValue getGLOBAL_OFFSET_TABLE(EVT VT)
Return a GLOBAL_OFFSET_TABLE node. This does not have a useful SDLoc.
This is an optimization pass for GlobalISel generic memory operations.
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
A parsed version of the target data layout string in and methods for querying it.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
bool isPositionIndependent() const
unsigned const TargetRegisterInfo * TRI
EVT getSetCCResultType(const DataLayout &DL, LLVMContext &Context, EVT VT) const override
Return the ValueType of the result of SETCC operations.
SDValue getLoad(EVT VT, const SDLoc &dl, SDValue Chain, SDValue Ptr, MachinePointerInfo PtrInfo, MaybeAlign Alignment=MaybeAlign(), MachineMemOperand::Flags MMOFlags=MachineMemOperand::MONone, const AAMDNodes &AAInfo=AAMDNodes(), const MDNode *Ranges=nullptr)
Loads are not normal binary operators: their result type is not determined by their operands,...
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
static MachinePointerInfo getGOT(MachineFunction &MF)
Return a MachinePointerInfo record that refers to a GOT entry.
Flag
These should be considered private to the implementation of the MCInstrDesc class.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
bool CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
CCAssignFn - This function assigns a location for Val, updating State to reflect the change.
This is an important base class in LLVM.
SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override
This callback is invoked for operations that are unsupported by the target, which are registered to u...
Representation of each machine instruction.
This is an important class for using LLVM in a threaded context.
SDValue getNode(unsigned Opcode, const SDLoc &DL, EVT VT, ArrayRef< SDUse > Ops)
Gets or creates the specified node.
This structure contains all information that is necessary for lowering calls.
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
@ BUILTIN_OP_END
BUILTIN_OP_END - This must be the last enum value in this list.
Wrapper class representing virtual and physical registers.
SDValue getEntryNode() const
Return the token chain corresponding to the entry of the function.
const DataLayout & getDataLayout() const
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.
@ ADD
Simple integer binary arithmetic operators.
CSKYTargetLowering(const TargetMachine &TM, const CSKYSubtarget &STI)
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
const char LLVMTargetMachineRef TM
MachineFunction & getMachineFunction() const
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
SelectSupportKind
Enum that describes what type of support for selects the target has.
virtual MVT getPointerTy(const DataLayout &DL, uint32_t AS=0) const
Return the pointer type for the given address space, defaults to the pointer type from the data layou...