Go to the documentation of this file.
14 #ifndef LLVM_LIB_TARGET_SPIRV_SPIRVISELLOWERING_H
15 #define LLVM_LIB_TARGET_SPIRV_SPIRVISELLOWERING_H
41 EVT VT)
const override;
43 EVT VT)
const override;
46 unsigned Intrinsic)
const override;
50 #endif // LLVM_LIB_TARGET_SPIRV_SPIRVISELLOWERING_H
SPIRVTargetLowering(const TargetMachine &TM, const SPIRVSubtarget &STI)
This is an optimization pass for GlobalISel generic memory operations.
A parsed version of the target data layout string in and methods for querying it.
unsigned getNumRegistersForCallingConv(LLVMContext &Context, CallingConv::ID CC, EVT VT) const override
Certain targets require unusual breakdowns of certain types.
bool isFMAFasterThanFMulAndFAdd(const MachineFunction &MF, EVT) const override
Return true if an FMA operation is faster than a pair of fmul and fadd instructions.
bool getTgtMemIntrinsic(IntrinsicInfo &Info, const CallInst &I, MachineFunction &MF, unsigned Intrinsic) const override
Given an intrinsic, checks if on the target the intrinsic will need to map to a MemIntrinsicNode (tou...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
MVT getVectorIdxTy(const DataLayout &DL) const override
Returns the type to be used for the index operand of: ISD::INSERT_VECTOR_ELT, ISD::EXTRACT_VECTOR_ELT...
Analysis containing CSE Info
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an important class for using LLVM in a threaded context.
Primary interface to the complete machine description for the target machine.
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
MVT getRegisterTypeForCallingConv(LLVMContext &Context, CallingConv::ID CC, EVT VT) const override
Certain combinations of ABIs, Targets and features require that types are legal for some operations a...
const char LLVMTargetMachineRef TM
This class represents a function call, abstracting a target machine's calling convention.
static MVT getIntegerVT(unsigned BitWidth)