Lines Matching refs:MAI
56 MAI.MaxID = 0; in setBaseInfo()
58 MAI.MS[i].clear(); in setBaseInfo()
59 MAI.RegisterAliasTable.clear(); in setBaseInfo()
60 MAI.InstrsToDelete.clear(); in setBaseInfo()
61 MAI.FuncNameMap.clear(); in setBaseInfo()
62 MAI.GlobalVarList.clear(); in setBaseInfo()
63 MAI.ExtInstSetMap.clear(); in setBaseInfo()
68 MAI.Addr = static_cast<SPIRV::AddressingModel>(getMetadataUInt(MemMD, 0)); in setBaseInfo()
69 MAI.Mem = static_cast<SPIRV::MemoryModel>(getMetadataUInt(MemMD, 1)); in setBaseInfo()
71 MAI.Mem = SPIRV::MemoryModel::OpenCL; in setBaseInfo()
73 MAI.Addr = PtrSize == 32 ? SPIRV::AddressingModel::Physical32 in setBaseInfo()
80 MAI.SrcLang = SPIRV::SourceLanguage::OpenCL_C; in setBaseInfo()
88 MAI.SrcLangVersion = (MajorNum * 100 + MinorNum) * 1000 + RevNum; in setBaseInfo()
90 MAI.SrcLang = SPIRV::SourceLanguage::Unknown; in setBaseInfo()
91 MAI.SrcLangVersion = 0; in setBaseInfo()
100 MAI.SrcExt.insert(cast<MDString>(MD->getOperand(J))->getString()); in setBaseInfo()
105 MAI.ExtInstSetMap[static_cast<unsigned>(SPIRV::InstructionSet::OpenCL_std)] = in setBaseInfo()
106 Register::index2VirtReg(MAI.getNextID()); in setBaseInfo()
111 SPIRV::ModuleAnalysisInfo *MAI, in collectDefInstr() argument
114 assert(MAI->hasRegisterAlias(MF, Reg) && "Cannot find register alias"); in collectDefInstr()
117 MAI->setSkipEmission(MI); in collectDefInstr()
119 MAI->MS[MSType].push_back(MI); in collectDefInstr()
146 Register GlobalReg = Register::index2VirtReg(MAI.getNextID()); in collectGlobalEntities()
151 MAI.setRegisterAlias(MF, Reg, GlobalReg); in collectGlobalEntities()
154 collectDefInstr(Reg, MF, &MAI, MSType, IsFirst); in collectGlobalEntities()
157 MAI.GlobalVarList.push_back(MF->getRegInfo().getUniqueVRegDef(Reg)); in collectGlobalEntities()
191 SPIRV::ModuleAnalysisInfo &MAI, in findSameInstrInMS() argument
193 for (const auto *B : MAI.MS[MSType]) { in findSameInstrInMS()
202 AllOpsMatch = MAI.getRegisterAlias(A.getMF(), RegA) == in findSameInstrInMS()
203 MAI.getRegisterAlias(B->getMF(), RegB); in findSameInstrInMS()
230 MAI.FuncNameMap[Name] = MAI.getRegisterAlias(MI.getMF(), Target); in collectFuncNames()
236 Register GlobalReg = MAI.getRegisterAlias(MI.getMF(), Reg); in collectFuncNames()
239 MAI.FuncNameMap[F.getGlobalIdentifier()] = GlobalReg; in collectFuncNames()
246 static void collectOtherInstr(MachineInstr &MI, SPIRV::ModuleAnalysisInfo &MAI, in collectOtherInstr() argument
249 MAI.setSkipEmission(&MI); in collectOtherInstr()
250 if (findSameInstrInMS(MI, MSType, MAI)) in collectOtherInstr()
254 MAI.MS[MSType].push_back(&MI); in collectOtherInstr()
256 MAI.MS[MSType].insert(MAI.MS[MSType].begin(), &MI); in collectOtherInstr()
269 if (MAI.getSkipEmission(&MI)) in processOtherInstrs()
273 collectOtherInstr(MI, MAI, SPIRV::MB_DebugNames); in processOtherInstrs()
275 collectOtherInstr(MI, MAI, SPIRV::MB_EntryPoints); in processOtherInstrs()
277 collectOtherInstr(MI, MAI, SPIRV::MB_Annotations); in processOtherInstrs()
282 collectOtherInstr(MI, MAI, SPIRV::MB_TypeConstVars); in processOtherInstrs()
286 collectOtherInstr(MI, MAI, SPIRV::MB_TypeConstVars, false); in processOtherInstrs()
307 if (MAI.hasRegisterAlias(MF, Reg)) in numberRegistersGlobally()
309 Register NewReg = Register::index2VirtReg(MAI.getNextID()); in numberRegistersGlobally()
310 MAI.setRegisterAlias(MF, Reg, NewReg); in numberRegistersGlobally()
315 if (MAI.ExtInstSetMap.find(Set) == MAI.ExtInstSetMap.end()) in numberRegistersGlobally()
316 MAI.ExtInstSetMap[Set] = Register::index2VirtReg(MAI.getNextID()); in numberRegistersGlobally()
325 static void processSwitches(const Module &M, SPIRV::ModuleAnalysisInfo &MAI, in processSwitches() argument
334 if (MAI.getSkipEmission(&MI)) in processSwitches()
348 MAI.setSkipEmission(&MI); in processSwitches()
349 MAI.setSkipEmission(CBr); in processSwitches()
351 MAI.MBBsToSkip.insert(&MBB); in processSwitches()
356 struct SPIRV::ModuleAnalysisInfo SPIRVModuleAnalysis::MAI; member in SPIRVModuleAnalysis
374 processSwitches(M, MAI, MMI); in runOnModule()