15 #ifndef SIISELLOWERING_H
16 #define SIISELLOWERING_H
25 SDValue Chain,
unsigned Offset)
const;
37 bool foldImm(
SDValue &Operand, int32_t &Immediate,
38 bool &ScalarSlotUsed)
const;
42 unsigned RegClass)
const;
44 unsigned RegClass,
bool &ScalarSlotUsed)
const;
74 unsigned Reg,
EVT VT)
const;
79 #endif //SIISELLOWERING_H
virtual EVT getSetCCResultType(LLVMContext &Context, EVT VT) const
SITargetLowering(TargetMachine &tm)
virtual bool shouldSplitVectorElementType(EVT VT) const
int32_t analyzeImmediate(const SDNode *N) const
Analyze the possible immediate value Op.
bool allowsUnalignedMemoryAccesses(EVT VT, bool *IsFast) const
Determine if the target supports unaligned memory accesses.
ID
LLVM Calling Convention Representation.
virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const
virtual MVT getScalarShiftAmountTy(EVT VT) const
virtual bool isFMAFasterThanFMulAndFAdd(EVT VT) const
virtual MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *BB) const
virtual SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const
virtual void AdjustInstrPostInstrSelection(MachineInstr *MI, SDNode *Node) const
Assign the register class depending on the number of bits set in the writemask.
Interface definition of the TargetLowering class that is common to all AMD GPUs.
SDValue LowerFormalArguments(SDValue Chain, CallingConv::ID CallConv, bool isVarArg, const SmallVectorImpl< ISD::InputArg > &Ins, SDLoc DL, SelectionDAG &DAG, SmallVectorImpl< SDValue > &InVals) const
Interface definition for SIInstrInfo.
virtual SDNode * PostISelFolding(MachineSDNode *N, SelectionDAG &DAG) const
Fold the instructions after slecting them.
SDValue CreateLiveInRegister(SelectionDAG &DAG, const TargetRegisterClass *RC, unsigned Reg, EVT VT) const
Helper function that adds Reg to the LiveIn list of the DAG's MachineFunction.