Lines Matching refs:MSSA
172 static bool pointerInvalidatedByLoopWithMSSA(MemorySSA *MSSA, MemoryUse *MU,
175 static bool pointerInvalidatedByBlockWithMSSA(BasicBlock &BB, MemorySSA &MSSA,
192 TargetTransformInfo *TTI, ScalarEvolution *SE, MemorySSA *MSSA,
225 MemorySSA *MSSA = EnableMSSALoopDependency in runOnLoop() local
244 SE ? &SE->getSE() : nullptr, MSSA, &ORE); in runOnLoop()
279 &AR.SE, AR.MSSA, &ORE)) in run()
286 if (AR.MSSA) in run()
310 MemorySSA *MSSA) in SinkAndHoistLICMFlags() argument
312 IsSink, L, MSSA) {} in SinkAndHoistLICMFlags()
316 Loop *L, MemorySSA *MSSA) in SinkAndHoistLICMFlags() argument
320 assert(((L != nullptr) == (MSSA != nullptr)) && in SinkAndHoistLICMFlags()
322 if (!MSSA) in SinkAndHoistLICMFlags()
327 if (const auto *Accesses = MSSA->getBlockAccesses(BB)) in SinkAndHoistLICMFlags()
344 ScalarEvolution *SE, MemorySSA *MSSA, OptimizationRemarkEmitter *ORE) { in runOnLoop() argument
359 if (!MSSA) { in runOnLoop()
366 MSSAU = std::make_unique<MemorySSAUpdater>(MSSA); in runOnLoop()
368 LicmMssaOptCap, LicmMssaNoAccForPromotionCap, /*IsSink=*/true, L, MSSA); in runOnLoop()
1138 MemorySSA *MSSA = MSSAU ? MSSAU->getMemorySSA() : nullptr; in canSinkOrHoistInst() local
1139 if (MSSA) in canSinkOrHoistInst()
1167 MSSA, cast<MemoryUse>(MSSA->getMemoryAccess(LI)), CurLoop, I, *Flags); in canSinkOrHoistInst()
1222 MSSA, cast<MemoryUse>(MSSA->getMemoryAccess(CI)), CurLoop, I, in canSinkOrHoistInst()
1291 auto *SIMD = MSSA->getMemoryAccess(SI); in canSinkOrHoistInst()
1293 if (auto *Accesses = MSSA->getBlockAccesses(BB)) { in canSinkOrHoistInst()
1297 if (!MSSA->isLiveOnEntryDef(MD) && in canSinkOrHoistInst()
1304 if (!Flags->getIsSink() && !MSSA->dominates(SIMD, MU)) in canSinkOrHoistInst()
1323 auto *Source = MSSA->getSkipSelfWalker()->getClobberingMemoryAccess(SI); in canSinkOrHoistInst()
1326 return MSSA->isLiveOnEntryDef(Source) || in canSinkOrHoistInst()
2241 auto *MSSA = MSSAU->getMemorySSA(); in collectAliasInfoForLoopWithMSSA() local
2242 auto CurAST = std::make_unique<AliasSetTracker>(*AA, MSSA, L); in collectAliasInfoForLoopWithMSSA()
2294 bool pointerInvalidatedByLoopWithMSSA(MemorySSA *MSSA, MemoryUse *MU, in pointerInvalidatedByLoopWithMSSA() argument
2304 Source = MSSA->getSkipSelfWalker()->getClobberingMemoryAccess(MU); in pointerInvalidatedByLoopWithMSSA()
2307 return !MSSA->isLiveOnEntryDef(Source) && in pointerInvalidatedByLoopWithMSSA()
2331 if (pointerInvalidatedByBlockWithMSSA(*BB, *MSSA, *MU)) in pointerInvalidatedByLoopWithMSSA()
2335 return pointerInvalidatedByBlockWithMSSA(*I.getParent(), *MSSA, *MU); in pointerInvalidatedByLoopWithMSSA()
2340 bool pointerInvalidatedByBlockWithMSSA(BasicBlock &BB, MemorySSA &MSSA, in pointerInvalidatedByBlockWithMSSA() argument
2342 if (const auto *Accesses = MSSA.getBlockDefs(&BB)) in pointerInvalidatedByBlockWithMSSA()
2345 if (MU.getBlock() != MD->getBlock() || !MSSA.locallyDominates(MD, &MU)) in pointerInvalidatedByBlockWithMSSA()