Lines Matching refs:ST
59 unsigned i, const SPIRVSubtarget &ST, in getSymbolicOperandRequirements() argument
63 unsigned TargetVer = ST.getSPIRVVersion(); in getSymbolicOperandRequirements()
83 if (llvm::all_of(ReqExts, [&ST](const SPIRV::Extension::Extension &Ext) { in getSymbolicOperandRequirements()
84 return ST.canUseExtension(Ext); in getSymbolicOperandRequirements()
101 MAI.Reqs.initAvailableCapabilities(*ST); in setBaseInfo()
112 MAI.Mem = ST->isOpenCLEnv() ? SPIRV::MemoryModel::OpenCL in setBaseInfo()
115 unsigned PtrSize = ST->getPointerSize(); in setBaseInfo()
154 MAI.Mem, *ST); in setBaseInfo()
156 MAI.SrcLang, *ST); in setBaseInfo()
158 MAI.Addr, *ST); in setBaseInfo()
160 if (ST->isOpenCLEnv()) { in setBaseInfo()
405 const SPIRVSubtarget &ST) { in getAndAddRequirements() argument
406 addRequirements(getSymbolicOperandRequirements(Category, i, ST, *this)); in getAndAddRequirements()
468 const SPIRVSubtarget &ST) const { in checkSatisfiable()
471 auto TargetVer = ST.getSPIRVVersion(); in checkSatisfiable()
508 if (ST.canUseExtension(Ext)) in checkSatisfiable()
538 void RequirementHandler::initAvailableCapabilities(const SPIRVSubtarget &ST) { in initAvailableCapabilities() argument
539 if (ST.isOpenCLEnv()) { in initAvailableCapabilities()
540 initAvailableCapabilitiesForOpenCL(ST); in initAvailableCapabilities()
544 if (ST.isVulkanEnv()) { in initAvailableCapabilities()
545 initAvailableCapabilitiesForVulkan(ST); in initAvailableCapabilities()
553 const SPIRVSubtarget &ST) { in initAvailableCapabilitiesForOpenCL() argument
560 if (ST.hasOpenCLFullProfile()) in initAvailableCapabilitiesForOpenCL()
562 if (ST.hasOpenCLImageSupport()) { in initAvailableCapabilitiesForOpenCL()
566 if (ST.isAtLeastOpenCLVer(20)) in initAvailableCapabilitiesForOpenCL()
569 if (ST.isAtLeastSPIRVVer(11) && ST.isAtLeastOpenCLVer(22)) in initAvailableCapabilitiesForOpenCL()
571 if (ST.isAtLeastSPIRVVer(13)) in initAvailableCapabilitiesForOpenCL()
579 if (ST.isAtLeastSPIRVVer(14)) in initAvailableCapabilitiesForOpenCL()
588 for (auto Extension : ST.getAllAvailableExtensions()) { in initAvailableCapabilitiesForOpenCL()
598 const SPIRVSubtarget &ST) { in initAvailableCapabilitiesForVulkan() argument
613 const SPIRVSubtarget &ST) { in addOpDecorateReqs() argument
617 SPIRV::OperandCategory::DecorationOperand, Dec, ST, Reqs)); in addOpDecorateReqs()
623 SPIRV::OperandCategory::BuiltInOperand, BuiltIn, ST, Reqs)); in addOpDecorateReqs()
630 const SPIRVSubtarget &ST) { in addOpTypeImageReqs() argument
637 ImgFormat, ST); in addOpTypeImageReqs()
683 const SPIRVSubtarget &ST) { in addInstrRequirements() argument
688 Addr, ST); in addInstrRequirements()
691 ST); in addInstrRequirements()
697 Exe, ST); in addInstrRequirements()
704 Exe, ST); in addInstrRequirements()
737 ST); in addInstrRequirements()
740 if (!ST.isOpenCLEnv()) in addInstrRequirements()
754 if (!ST.canUseExtension(SPIRV::Extension::SPV_KHR_bit_instructions)) { in addInstrRequirements()
780 addOpDecorateReqs(MI, 1, Reqs, ST); in addInstrRequirements()
784 addOpDecorateReqs(MI, 2, Reqs, ST); in addInstrRequirements()
793 addOpTypeImageReqs(MI, Reqs, ST); in addInstrRequirements()
913 if (ST.canUseExtension(SPIRV::Extension::SPV_KHR_expect_assume)) { in addInstrRequirements()
930 MachineModuleInfo *MMI, const SPIRVSubtarget &ST) { in collectReqs() argument
938 addInstrRequirements(MI, MAI.Reqs, ST); in collectReqs()
951 SPIRV::OperandCategory::ExecutionModeOperand, EM, ST); in collectReqs()
963 SPIRV::ExecutionMode::LocalSize, ST); in collectReqs()
967 SPIRV::ExecutionMode::LocalSize, ST); in collectReqs()
972 SPIRV::ExecutionMode::LocalSizeHint, ST); in collectReqs()
976 SPIRV::ExecutionMode::SubgroupSize, ST); in collectReqs()
980 SPIRV::ExecutionMode::VecTypeHint, ST); in collectReqs()
983 ST.canUseExtension(SPIRV::Extension::SPV_INTEL_optnone)) { in collectReqs()
1006 static void handleMIFlagDecoration(MachineInstr &I, const SPIRVSubtarget &ST, in handleMIFlagDecoration() argument
1011 SPIRV::Decoration::NoSignedWrap, ST, Reqs) in handleMIFlagDecoration()
1018 SPIRV::Decoration::NoUnsignedWrap, ST, in handleMIFlagDecoration()
1035 MachineModuleInfo *MMI, const SPIRVSubtarget &ST, in addDecorations() argument
1043 handleMIFlagDecoration(MI, ST, TII, MAI.Reqs); in addDecorations()
1057 ST = TM.getSubtargetImpl(); in runOnModule()
1058 GR = ST->getSPIRVGlobalRegistry(); in runOnModule()
1059 TII = ST->getInstrInfo(); in runOnModule()
1065 addDecorations(M, *TII, MMI, *ST, MAI); in runOnModule()
1067 collectReqs(M, MAI, MMI, *ST); in runOnModule()