15 #ifndef LLVM_LIB_TARGET_XCORE_XCOREISELLOWERING_H 16 #define LLVM_LIB_TARGET_XCORE_XCOREISELLOWERING_H 26 class XCoreTargetMachine;
100 bool isZExtFree(
SDValue Val,
EVT VT2)
const override;
103 unsigned getJumpTableEncoding()
const override;
119 const char *getTargetNodeName(
unsigned Opcode)
const override;
126 Type *Ty,
unsigned AS,
164 SDValue lowerLoadWordFromAlignedBasePlusOffset(
const SDLoc &DL,
193 std::pair<unsigned, const TargetRegisterClass *>
203 void computeKnownBitsForTargetNode(
const SDValue Op,
205 const APInt &DemandedElts,
207 unsigned Depth = 0)
const override;
229 bool shouldInsertFencesForAtomic(
const Instruction *
I)
const override {
static SDValue LowerADJUST_TRAMPOLINE(SDValue Op, SelectionDAG &DAG)
BUILTIN_OP_END - This must be the last enum value in this list.
A parsed version of the target data layout string in and methods for querying it. ...
This represents an addressing mode of: BaseGV + BaseOffs + BaseReg + Scale*ScaleReg If BaseGV is null...
This class represents lattice values for constants.
static SDValue LowerATOMIC_FENCE(SDValue Op, SelectionDAG &DAG, const ARMSubtarget *Subtarget)
Function Alias Analysis Results
unsigned const TargetRegisterInfo * TRI
virtual bool isZExtFree(Type *FromTy, Type *ToTy) const
Return true if any actual instruction that defines a value of type FromTy implicitly zero-extends the...
unsigned getExceptionPointerRegister(const Constant *PersonalityFn) const override
If a physical register, this returns the register that receives the exception address on entry to an ...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
static SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, const SparcSubtarget *Subtarget)
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
amdgpu Simplify well known AMD library false Value * Callee
static SDValue LowerSTORE(SDValue Op, SelectionDAG &DAG)
static SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG)
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important class for using LLVM in a threaded context.
This is an important base class in LLVM.
unsigned getExceptionSelectorRegister(const Constant *PersonalityFn) const override
If a physical register, this returns the register that receives the exception typeid on entry to a la...
static SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG, const SparcSubtarget *Subtarget)
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
This structure contains all information that is necessary for lowering calls.
static SDValue LowerATOMIC_STORE(SDValue Op, SelectionDAG &DAG)
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
Represents one node in the SelectionDAG.
Class for arbitrary precision integers.
static SDValue LowerVAARG(SDValue Op, SelectionDAG &DAG)
Representation of each machine instruction.
static SDValue LowerLOAD(SDValue Op, SelectionDAG &DAG)
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...
MVT getScalarShiftAmountTy(const DataLayout &DL, EVT) const override
EVT is not used in-tree, but is used by out-of-tree target.
This file describes how to lower LLVM code to machine code.