Go to the documentation of this file.
24 #define DEBUG_TYPE "spirv-subtarget"
26 #define GET_SUBTARGETINFO_TARGET_DESC
27 #define GET_SUBTARGETINFO_CTOR
28 #include "SPIRVGenSubtargetInfo.inc"
36 const auto Arch = TT.getArch();
43 const std::string &
FS,
47 FrameLowering(initSubtargetDependencies(CPU,
FS)), TLInfo(
TM, *
this) {
48 GR = std::make_unique<SPIRVGlobalRegistry>(PointerSize);
50 std::make_unique<SPIRVCallLowering>(TLInfo, *
this, GR.get());
51 Legalizer = std::make_unique<SPIRVLegalizerInfo>(*
this);
52 RegBankInfo = std::make_unique<SPIRVRegisterBankInfo>();
60 if (SPIRVVersion == 0)
This is an optimization pass for GlobalISel generic memory operations.
bool canDirectlyComparePointers() const
Target - Wrapper for Target specific information.
Triple - Helper class for working with autoconf configuration names.
SPIRVSubtarget & initSubtargetDependencies(StringRef CPU, StringRef FS)
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
static unsigned computePointerSize(const Triple &TT)
SPIRVSubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const SPIRVTargetMachine &TM)
constexpr uint64_t PointerSize
x86_64 pointer size.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
StringRef - Represent a constant reference to a string, i.e.
Analysis the ScalarEvolution expression for r is this
InstructionSelector * createSPIRVInstructionSelector(const SPIRVTargetMachine &TM, const SPIRVSubtarget &Subtarget, const RegisterBankInfo &RBI)
const char LLVMTargetMachineRef TM
static bool isAtLeastVer(uint32_t Target, uint32_t VerToCompareTo)