Lines Matching refs:MAI

92   MAI.MaxID = 0;  in setBaseInfo()
94 MAI.MS[i].clear(); in setBaseInfo()
95 MAI.RegisterAliasTable.clear(); in setBaseInfo()
96 MAI.InstrsToDelete.clear(); in setBaseInfo()
97 MAI.FuncMap.clear(); in setBaseInfo()
98 MAI.GlobalVarList.clear(); in setBaseInfo()
99 MAI.ExtInstSetMap.clear(); in setBaseInfo()
100 MAI.Reqs.clear(); in setBaseInfo()
101 MAI.Reqs.initAvailableCapabilities(*ST); in setBaseInfo()
106 MAI.Addr = static_cast<SPIRV::AddressingModel::AddressingModel>( in setBaseInfo()
108 MAI.Mem = in setBaseInfo()
112 MAI.Mem = ST->isOpenCLEnv() ? SPIRV::MemoryModel::OpenCL in setBaseInfo()
114 if (MAI.Mem == SPIRV::MemoryModel::OpenCL) { in setBaseInfo()
116 MAI.Addr = PtrSize == 32 ? SPIRV::AddressingModel::Physical32 in setBaseInfo()
121 MAI.Addr = SPIRV::AddressingModel::Logical; in setBaseInfo()
127 MAI.SrcLang = SPIRV::SourceLanguage::OpenCL_C; in setBaseInfo()
135 MAI.SrcLangVersion = (MajorNum * 100 + MinorNum) * 1000 + RevNum; in setBaseInfo()
137 MAI.SrcLang = SPIRV::SourceLanguage::Unknown; in setBaseInfo()
138 MAI.SrcLangVersion = 0; in setBaseInfo()
147 MAI.SrcExt.insert(cast<MDString>(MD->getOperand(J))->getString()); in setBaseInfo()
153 MAI.Reqs.getAndAddRequirements(SPIRV::OperandCategory::MemoryModelOperand, in setBaseInfo()
154 MAI.Mem, *ST); in setBaseInfo()
155 MAI.Reqs.getAndAddRequirements(SPIRV::OperandCategory::SourceLanguageOperand, in setBaseInfo()
156 MAI.SrcLang, *ST); in setBaseInfo()
157 MAI.Reqs.getAndAddRequirements(SPIRV::OperandCategory::AddressingModelOperand, in setBaseInfo()
158 MAI.Addr, *ST); in setBaseInfo()
162 MAI.ExtInstSetMap[static_cast<unsigned>( in setBaseInfo()
164 Register::index2VirtReg(MAI.getNextID()); in setBaseInfo()
170 SPIRV::ModuleAnalysisInfo *MAI, in collectDefInstr() argument
173 assert(MAI->hasRegisterAlias(MF, Reg) && "Cannot find register alias"); in collectDefInstr()
176 MAI->setSkipEmission(MI); in collectDefInstr()
178 MAI->MS[MSType].push_back(MI); in collectDefInstr()
205 Register GlobalReg = Register::index2VirtReg(MAI.getNextID()); in collectGlobalEntities()
210 MAI.setRegisterAlias(MF, Reg, GlobalReg); in collectGlobalEntities()
213 collectDefInstr(Reg, MF, &MAI, MSType, IsFirst); in collectGlobalEntities()
216 MAI.GlobalVarList.push_back(MF->getRegInfo().getUniqueVRegDef(Reg)); in collectGlobalEntities()
250 MAI.Reqs.addExtension(Ext); in processDefInstrs()
251 MAI.setSkipEmission(&MI); in processDefInstrs()
254 MAI.Reqs.addCapability(Cap); in processDefInstrs()
255 MAI.setSkipEmission(&MI); in processDefInstrs()
282 MAI.FuncMap[ImportedFunc] = MAI.getRegisterAlias(MI.getMF(), Target); in collectFuncNames()
288 Register GlobalReg = MAI.getRegisterAlias(MI.getMF(), Reg); in collectFuncNames()
290 MAI.FuncMap[F] = GlobalReg; in collectFuncNames()
302 SPIRV::ModuleAnalysisInfo &MAI) { in instrToSignature() argument
308 Register RegAlias = MAI.getRegisterAlias(MI.getMF(), MO.getReg()); in instrToSignature()
323 static void collectOtherInstr(MachineInstr &MI, SPIRV::ModuleAnalysisInfo &MAI, in collectOtherInstr() argument
326 MAI.setSkipEmission(&MI); in collectOtherInstr()
327 InstrSignature MISign = instrToSignature(MI, MAI); in collectOtherInstr()
333 MAI.MS[MSType].push_back(&MI); in collectOtherInstr()
335 MAI.MS[MSType].insert(MAI.MS[MSType].begin(), &MI); in collectOtherInstr()
349 if (MAI.getSkipEmission(&MI)) in processOtherInstrs()
353 collectOtherInstr(MI, MAI, SPIRV::MB_DebugNames, IS); in processOtherInstrs()
355 collectOtherInstr(MI, MAI, SPIRV::MB_EntryPoints, IS); in processOtherInstrs()
357 collectOtherInstr(MI, MAI, SPIRV::MB_Annotations, IS); in processOtherInstrs()
362 collectOtherInstr(MI, MAI, SPIRV::MB_TypeConstVars, IS); in processOtherInstrs()
366 collectOtherInstr(MI, MAI, SPIRV::MB_TypeConstVars, IS, false); in processOtherInstrs()
387 if (MAI.hasRegisterAlias(MF, Reg)) in numberRegistersGlobally()
389 Register NewReg = Register::index2VirtReg(MAI.getNextID()); in numberRegistersGlobally()
390 MAI.setRegisterAlias(MF, Reg, NewReg); in numberRegistersGlobally()
395 if (!MAI.ExtInstSetMap.contains(Set)) in numberRegistersGlobally()
396 MAI.ExtInstSetMap[Set] = Register::index2VirtReg(MAI.getNextID()); in numberRegistersGlobally()
929 static void collectReqs(const Module &M, SPIRV::ModuleAnalysisInfo &MAI, in collectReqs() argument
938 addInstrRequirements(MI, MAI.Reqs, ST); in collectReqs()
950 MAI.Reqs.getAndAddRequirements( in collectReqs()
961 MAI.Reqs.getAndAddRequirements( in collectReqs()
965 MAI.Reqs.getAndAddRequirements( in collectReqs()
970 MAI.Reqs.getAndAddRequirements( in collectReqs()
974 MAI.Reqs.getAndAddRequirements( in collectReqs()
978 MAI.Reqs.getAndAddRequirements( in collectReqs()
985 MAI.Reqs.addExtension(SPIRV::Extension::SPV_INTEL_optnone); in collectReqs()
986 MAI.Reqs.addCapability(SPIRV::Capability::OptNoneINTEL); in collectReqs()
1036 SPIRV::ModuleAnalysisInfo &MAI) { in addDecorations() argument
1043 handleMIFlagDecoration(MI, ST, TII, MAI.Reqs); in addDecorations()
1047 struct SPIRV::ModuleAnalysisInfo SPIRVModuleAnalysis::MAI; member in SPIRVModuleAnalysis
1065 addDecorations(M, *TII, MMI, *ST, MAI); in runOnModule()
1067 collectReqs(M, MAI, MMI, *ST); in runOnModule()
1080 if (MAI.MS[SPIRV::MB_EntryPoints].empty()) in runOnModule()
1081 MAI.Reqs.addCapability(SPIRV::Capability::Linkage); in runOnModule()