Lines Matching defs:MSSAU
295 MemorySSAUpdater *MSSAU) {
305 if (!MSSAU)
308 MemorySSA *MSSA = MSSAU->getMemorySSA();
322 MSSAU->createMemoryAccessInBB(NewInst, DefiningAccess,
411 MemorySSAUpdater *MSSAU, ScalarEvolution *SE) {
472 formDedicatedExitBlocks(OldContainingL, &DT, &LI, MSSAU,
511 MemorySSAUpdater *MSSAU) {
592 if (MSSAU && VerifyMemorySSA)
593 MSSAU->getMemorySSA()->verifyMemorySSA();
599 BasicBlock *NewPH = SplitEdge(OldPH, L.getHeader(), &DT, &LI, MSSAU);
612 SplitBlock(LoopExitBB, LoopExitBB->begin(), &DT, &LI, MSSAU, "", false);
615 if (MSSAU && VerifyMemorySSA)
616 MSSAU->getMemorySSA()->verifyMemorySSA();
628 if (MSSAU) {
661 if (MSSAU) {
664 MSSAU->applyInsertUpdates(Updates, DT);
669 if (MSSAU) {
676 MSSAU->removeEdge(ParentBB, LoopExitBB);
681 if (MSSAU && VerifyMemorySSA)
682 MSSAU->getMemorySSA()->verifyMemorySSA();
706 hoistLoopToNewParent(L, *NewPH, DT, LI, MSSAU, SE);
708 if (MSSAU && VerifyMemorySSA)
709 MSSAU->getMemorySSA()->verifyMemorySSA();
745 MemorySSAUpdater *MSSAU) {
790 if (MSSAU && VerifyMemorySSA)
791 MSSAU->getMemorySSA()->verifyMemorySSA();
863 BasicBlock *NewPH = SplitEdge(OldPH, L.getHeader(), &DT, &LI, MSSAU);
890 SplitBlock(DefaultExitBB, DefaultExitBB->begin(), &DT, &LI, MSSAU);
917 SplitExitBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
1012 if (MSSAU) {
1013 MSSAU->applyUpdates(DTUpdates, DT, /*UpdateDT=*/true);
1015 MSSAU->getMemorySSA()->verifyMemorySSA();
1024 hoistLoopToNewParent(L, *NewPH, DT, LI, MSSAU, SE);
1026 if (MSSAU && VerifyMemorySSA)
1027 MSSAU->getMemorySSA()->verifyMemorySSA();
1049 MemorySSAUpdater *MSSAU) {
1070 if (MSSAU) // Possible early exit with MSSA
1071 if (auto *Defs = MSSAU->getMemorySSA()->getBlockDefs(CurrentBB))
1087 if (!unswitchTrivialSwitch(L, *SI, DT, LI, SE, MSSAU))
1120 if (!unswitchTrivialBranch(L, *BI, DT, LI, SE, MSSAU))
1173 DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU,
1219 auto *MergeBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
1325 MSSAU);
1674 DominatorTree &DT, MemorySSAUpdater *MSSAU) {
1687 if (MSSAU) {
1690 MSSAU->removeBlocks(DeadBlockSet);
1704 MemorySSAUpdater *MSSAU,
1728 if (MSSAU)
1729 MSSAU->removeBlocks(DeadBlockSet);
2178 AssumptionCache &AC, ScalarEvolution *SE, MemorySSAUpdater *MSSAU,
2204 if (MSSAU && VerifyMemorySSA)
2205 MSSAU->getMemorySSA()->verifyMemorySSA();
2254 if (MSSAU)
2310 BasicBlock *LoopPH = SplitEdge(SplitBB, L.getHeader(), &DT, &LI, MSSAU);
2323 DominatingSucc, *VMaps.back(), DTUpdates, AC, DT, LI, MSSAU, SE);
2397 if (MSSAU) {
2404 MSSAU->removeDuplicatePhiEdgesBetween(ParentBB, RetainedSuccBB);
2406 MSSAU->removeDuplicatePhiEdgesBetween(ParentBB, SuccBB);
2409 MSSAU->updateForClonedLoop(LBRPO, ExitBlocks, *VMap,
2411 MSSAU->updateExitBlocksForClonedLoop(ExitBlocks, VMaps, DT);
2415 MSSAU->removeEdge(ParentBB, SuccBB);
2456 // After MSSAU update, remove the cloned terminator instruction NewTI.
2467 *SplitBB, Invariants, Direction, *ClonedPH, *LoopPH, L, MSSAU);
2475 if (MSSAU) {
2481 MSSAU->updateForClonedLoop(LBRPO, ExitBlocks, *VMap,
2483 MSSAU->updateExitBlocksForClonedLoop(ExitBlocks, VMaps, DT);
2494 deleteDeadClonedBlocks(L, ExitBlocks, VMaps, DT, MSSAU);
2506 deleteDeadBlocksFromLoop(L, ExitBlocks, DT, LI, MSSAU, SE, LoopUpdater);
2508 if (MSSAU && VerifyMemorySSA)
2509 MSSAU->getMemorySSA()->verifyMemorySSA();
2515 if (MSSAU && VerifyMemorySSA)
2516 MSSAU->getMemorySSA()->verifyMemorySSA();
2602 formDedicatedExitBlocks(&UpdateL, &DT, &LI, MSSAU, /*PreserveLCSSA*/ true);
2645 if (MSSAU && VerifyMemorySSA)
2646 MSSAU->getMemorySSA()->verifyMemorySSA();
2712 LoopInfo &LI, MemorySSAUpdater *MSSAU,
2723 if (MSSAU)
2724 MSSAU->moveAllAfterSpliceBlocks(HeadBB, TailBB, SI);
2734 if (MSSAU && VerifyMemorySSA)
2735 MSSAU->getMemorySSA()->verifyMemorySSA();
2764 MemorySSAUpdater *MSSAU) {
2769 if (MSSAU && VerifyMemorySSA)
2770 MSSAU->getMemorySSA()->verifyMemorySSA();
2786 if (MSSAU)
2787 MSSAU->moveAllAfterSpliceBlocks(CheckBB, GuardedBlock, GI);
2792 if (MSSAU) {
2793 MemoryDef *MD = cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(GI));
2794 MSSAU->moveToPlace(MD, DeoptBlock, MemorySSA::BeforeTerminator);
2796 MSSAU->getMemorySSA()->verifyMemorySSA();
2901 const MemorySSAUpdater *MSSAU) {
2966 if (MSSAU && !findOptionMDForLoop(&L, "llvm.loop.unswitch.partial.disable") &&
2970 MemorySSA *MSSA = MSSAU->getMemorySSA();
3085 AssumptionCache &AC, MemorySSAUpdater *MSSAU) {
3149 if (MSSAU)
3150 MSSAU->applyUpdates(DTUpdates, DT);
3156 if (MSSAU && VerifyMemorySSA)
3157 MSSAU->getMemorySSA()->verifyMemorySSA();
3223 const MemorySSAUpdater *MSSAU) {
3497 MemorySSAUpdater *MSSAU,
3505 PartialIVCondBranch, L, LI, AA, MSSAU);
3509 MSSAU);
3532 Best = injectPendingInvariantConditions(Best, L, DT, LI, AC, MSSAU);
3549 Best.TI = turnSelectIntoBranch(SI, DT, LI, MSSAU, &AC);
3554 turnGuardIntoBranch(cast<IntrinsicInst>(Best.TI), L, DT, LI, MSSAU);
3561 LI, AC, SE, MSSAU, LoopUpdater, InsertFreeze,
3591 MemorySSAUpdater *MSSAU, ProfileSummaryInfo *PSI,
3601 if (Trivial && unswitchAllTrivialConditions(L, DT, LI, SE, MSSAU)) {
3675 if (unswitchBestCondition(L, DT, LI, AC, AA, TTI, SE, MSSAU, LoopUpdater))
3695 std::optional<MemorySSAUpdater> MSSAU;
3697 MSSAU = MemorySSAUpdater(AR.MSSA);
3702 &AR.SE, MSSAU ? &*MSSAU : nullptr, PSI, AR.BFI, U))