Lines Matching defs:MSSAU
177 MemorySSAUpdater &MSSAU, ScalarEvolution *SE,
181 MemorySSAUpdater &MSSAU, OptimizationRemarkEmitter *ORE);
196 MemorySSAUpdater &MSSAU, AssumptionCache *AC,
200 const LoopSafetyInfo *SafetyInfo, MemorySSAUpdater &MSSAU);
203 MemorySSAUpdater &MSSAU);
207 MemorySSAUpdater &MSSAU, ScalarEvolution *SE);
441 MemorySSAUpdater MSSAU(MSSA);
465 TLI, TTI, L, MSSAU, &SafetyInfo, Flags, ORE)
467 MSSAU, &SafetyInfo, Flags, ORE);
471 MSSAU, SE, &SafetyInfo, Flags, ORE, LoopNestMode,
514 DT, AC, TLI, TTI, L, MSSAU, &SafetyInfo, ORE,
556 MemorySSAUpdater &MSSAU, ICFLoopSafetyInfo *SafetyInfo,
588 eraseInstruction(I, *SafetyInfo, MSSAU);
604 canSinkOrHoistInst(I, AA, DT, CurLoop, MSSAU, true, Flags, ORE)) {
605 if (sink(I, LI, DT, CurLoop, SafetyInfo, MSSAU, ORE)) {
609 eraseInstruction(I, *SafetyInfo, MSSAU);
617 MSSAU.getMemorySSA()->verifyMemorySSA();
624 MemorySSAUpdater &MSSAU,
636 MSSAU, SafetyInfo, Flags, ORE, CurLoop);
655 MemorySSAUpdater &MSSAU;
667 MemorySSAUpdater &MSSAU)
668 : LI(LI), DT(DT), CurLoop(CurLoop), MSSAU(MSSAU) {}
843 MSSAU.wireOldPredecessorsToNewImmediatePredecessor(
877 MemorySSAUpdater &MSSAU, ScalarEvolution *SE,
887 ControlFlowHoister CFH(LI, DT, CurLoop, MSSAU);
915 canSinkOrHoistInst(I, AA, DT, CurLoop, MSSAU, true, Flags, ORE) &&
920 MSSAU, SE, ORE);
945 eraseInstruction(I, *SafetyInfo, MSSAU);
948 SafetyInfo, MSSAU, SE, ORE);
967 MSSAU, SE, ORE);
981 MSSAU, SE, ORE);
990 if (hoistArithmetics(I, *CurLoop, *SafetyInfo, MSSAU, AC, DT)) {
1025 moveInstructionBefore(*I, HoistPoint->getIterator(), *SafetyInfo, MSSAU,
1033 MSSAU.getMemorySSA()->verifyMemorySSA();
1121 bool isReadOnly(const MemorySSAUpdater &MSSAU, const Loop *L) {
1123 if (MSSAU.getMemorySSA()->getBlockDefs(BB))
1130 const MemorySSAUpdater &MSSAU) {
1132 if (auto *Accs = MSSAU.getMemorySSA()->getBlockAccesses(BB)) {
1161 Loop *CurLoop, MemorySSAUpdater &MSSAU,
1169 MemorySSA *MSSA = MSSAU.getMemorySSA();
1257 if (isReadOnly(MSSAU, CurLoop))
1268 return isOnlyMemoryAccess(FI, CurLoop, MSSAU);
1278 if (isOnlyMemoryAccess(SI, CurLoop, MSSAU))
1428 const LoopSafetyInfo *SafetyInfo, MemorySSAUpdater &MSSAU) {
1465 if (MSSAU.getMemorySSA()->getMemoryAccess(&I)) {
1469 MemoryAccess *NewMemAcc = MSSAU.createMemoryAccessInBB(
1474 MSSAU.insertDef(MemDef, /*RenameUses=*/true);
1477 MSSAU.insertUse(MemUse, /*RenameUses=*/true);
1504 MemorySSAUpdater &MSSAU) {
1505 MSSAU.removeMemoryAccess(&I);
1512 MemorySSAUpdater &MSSAU,
1518 MSSAU.getMemorySSA()->getMemoryAccess(&I)))
1519 MSSAU.moveToPlace(OldMemAcc, Dest->getParent(),
1529 MemorySSAUpdater &MSSAU) {
1539 *I, *ExitBlock, *TPN, LI, SafetyInfo, MSSAU);
1563 MemorySSAUpdater *MSSAU) {
1613 ExitBB, PredBB, ".split.loop.exit", DT, LI, MSSAU, true);
1634 MemorySSAUpdater &MSSAU, OptimizationRemarkEmitter *ORE) {
1677 splitPredecessorsOfLoopExit(PN, DT, LI, CurLoop, SafetyInfo, &MSSAU);
1726 PN, &I, LI, SunkCopies, SafetyInfo, CurLoop, MSSAU);
1730 eraseInstruction(*PN, *SafetyInfo, MSSAU);
1741 MemorySSAUpdater &MSSAU, ScalarEvolution *SE,
1767 moveInstructionBefore(I, Dest->getFirstNonPHIIt(), *SafetyInfo, MSSAU, SE);
1771 MSSAU, SE);
1818 MemorySSAUpdater &MSSAU;
1851 MemorySSAUpdater &MSSAU, LoopInfo &li, DebugLoc dl,
1855 LoopInsertPts(LIP), MSSAInsertPts(MSSAIP), PredCache(PIC), MSSAU(MSSAU),
1899 NewMemAcc = MSSAU.createMemoryAccessInBB(
1903 MSSAU.createMemoryAccessAfter(NewSI, nullptr, MSSAInsertPoint);
1906 MSSAU.insertDef(cast<MemoryDef>(NewMemAcc), true);
1918 MSSAU.removeMemoryAccess(I);
1974 MemorySSAUpdater &MSSAU, ICFLoopSafetyInfo *SafetyInfo,
2233 MSSAInsertPts, PIC, MSSAU, *LI, DL, Alignment,
2251 MemoryAccess *PreheaderLoadMemoryAccess = MSSAU.createMemoryAccessInBB(
2254 MSSAU.insertUse(NewMemUse, /*RenameUses=*/true);
2261 MSSAU.getMemorySSA()->verifyMemorySSA();
2267 MSSAU.getMemorySSA()->verifyMemorySSA();
2270 eraseInstruction(*PreheaderLoad, *SafetyInfo, MSSAU);
2413 MemorySSAUpdater &MSSAU) {
2478 eraseInstruction(I, SafetyInfo, MSSAU);
2479 eraseInstruction(*cast<Instruction>(Cond1), SafetyInfo, MSSAU);
2480 eraseInstruction(*cast<Instruction>(Cond2), SafetyInfo, MSSAU);
2487 MemorySSAUpdater &MSSAU, AssumptionCache *AC,
2530 eraseInstruction(*GEP, SafetyInfo, MSSAU);
2531 eraseInstruction(*Src, SafetyInfo, MSSAU);
2539 ICFLoopSafetyInfo &SafetyInfo, MemorySSAUpdater &MSSAU,
2577 eraseInstruction(cast<Instruction>(*VariantLHS), SafetyInfo, MSSAU);
2586 ICFLoopSafetyInfo &SafetyInfo, MemorySSAUpdater &MSSAU,
2640 eraseInstruction(cast<Instruction>(*VariantLHS), SafetyInfo, MSSAU);
2646 MemorySSAUpdater &MSSAU, AssumptionCache *AC,
2670 if (hoistAdd(Pred, LHS, RHS, cast<ICmpInst>(I), L, SafetyInfo, MSSAU, AC, DT))
2673 if (hoistSub(Pred, LHS, RHS, cast<ICmpInst>(I), L, SafetyInfo, MSSAU, AC, DT))
2696 MemorySSAUpdater &MSSAU, AssumptionCache *AC,
2777 eraseInstruction(*Ins, SafetyInfo, MSSAU);
2781 eraseInstruction(I, SafetyInfo, MSSAU);
2787 MemorySSAUpdater &MSSAU, AssumptionCache *AC,
2792 if (hoistMinMax(I, L, SafetyInfo, MSSAU)) {
2799 if (hoistGEP(I, L, SafetyInfo, MSSAU, AC, DT)) {
2806 if (hoistAddSub(I, L, SafetyInfo, MSSAU, AC, DT)) {
2813 if (hoistMulAddAssociation(I, L, SafetyInfo, MSSAU, AC, DT)) {