Lines Matching refs: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) {
791 if (MSSAU && VerifyMemorySSA)
792 MSSAU->getMemorySSA()->verifyMemorySSA();
864 BasicBlock *NewPH = SplitEdge(OldPH, L.getHeader(), &DT, &LI, MSSAU);
891 SplitBlock(DefaultExitBB, DefaultExitBB->begin(), &DT, &LI, MSSAU);
918 SplitExitBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
1013 if (MSSAU) {
1014 MSSAU->applyUpdates(DTUpdates, DT, /*UpdateDT=*/true);
1016 MSSAU->getMemorySSA()->verifyMemorySSA();
1025 hoistLoopToNewParent(L, *NewPH, DT, LI, MSSAU, SE);
1027 if (MSSAU && VerifyMemorySSA)
1028 MSSAU->getMemorySSA()->verifyMemorySSA();
1050 MemorySSAUpdater *MSSAU) {
1071 if (MSSAU) // Possible early exit with MSSA
1072 if (auto *Defs = MSSAU->getMemorySSA()->getBlockDefs(CurrentBB))
1088 if (!unswitchTrivialSwitch(L, *SI, DT, LI, SE, MSSAU))
1121 if (!unswitchTrivialBranch(L, *BI, DT, LI, SE, MSSAU))
1174 DominatorTree &DT, LoopInfo &LI, MemorySSAUpdater *MSSAU,
1220 auto *MergeBB = SplitBlock(ExitBB, ExitBB->begin(), &DT, &LI, MSSAU);
1326 MSSAU);
1675 DominatorTree &DT, MemorySSAUpdater *MSSAU) {
1688 if (MSSAU) {
1691 MSSAU->removeBlocks(DeadBlockSet);
1705 MemorySSAUpdater *MSSAU,
1729 if (MSSAU)
1730 MSSAU->removeBlocks(DeadBlockSet);
2179 AssumptionCache &AC, ScalarEvolution *SE, MemorySSAUpdater *MSSAU,
2205 if (MSSAU && VerifyMemorySSA)
2206 MSSAU->getMemorySSA()->verifyMemorySSA();
2255 if (MSSAU)
2311 BasicBlock *LoopPH = SplitEdge(SplitBB, L.getHeader(), &DT, &LI, MSSAU);
2324 DominatingSucc, *VMaps.back(), DTUpdates, AC, DT, LI, MSSAU, SE);
2398 if (MSSAU) {
2405 MSSAU->removeDuplicatePhiEdgesBetween(ParentBB, RetainedSuccBB);
2407 MSSAU->removeDuplicatePhiEdgesBetween(ParentBB, SuccBB);
2410 MSSAU->updateForClonedLoop(LBRPO, ExitBlocks, *VMap,
2412 MSSAU->updateExitBlocksForClonedLoop(ExitBlocks, VMaps, DT);
2416 MSSAU->removeEdge(ParentBB, SuccBB);
2457 // After MSSAU update, remove the cloned terminator instruction NewTI.
2468 *SplitBB, Invariants, Direction, *ClonedPH, *LoopPH, L, MSSAU);
2476 if (MSSAU) {
2482 MSSAU->updateForClonedLoop(LBRPO, ExitBlocks, *VMap,
2484 MSSAU->updateExitBlocksForClonedLoop(ExitBlocks, VMaps, DT);
2495 deleteDeadClonedBlocks(L, ExitBlocks, VMaps, DT, MSSAU);
2507 deleteDeadBlocksFromLoop(L, ExitBlocks, DT, LI, MSSAU, SE, LoopUpdater);
2509 if (MSSAU && VerifyMemorySSA)
2510 MSSAU->getMemorySSA()->verifyMemorySSA();
2516 if (MSSAU && VerifyMemorySSA)
2517 MSSAU->getMemorySSA()->verifyMemorySSA();
2603 formDedicatedExitBlocks(&UpdateL, &DT, &LI, MSSAU, /*PreserveLCSSA*/ true);
2646 if (MSSAU && VerifyMemorySSA)
2647 MSSAU->getMemorySSA()->verifyMemorySSA();
2713 LoopInfo &LI, MemorySSAUpdater *MSSAU,
2724 if (MSSAU)
2725 MSSAU->moveAllAfterSpliceBlocks(HeadBB, TailBB, SI);
2735 if (MSSAU && VerifyMemorySSA)
2736 MSSAU->getMemorySSA()->verifyMemorySSA();
2765 MemorySSAUpdater *MSSAU) {
2770 if (MSSAU && VerifyMemorySSA)
2771 MSSAU->getMemorySSA()->verifyMemorySSA();
2787 if (MSSAU)
2788 MSSAU->moveAllAfterSpliceBlocks(CheckBB, GuardedBlock, GI);
2793 if (MSSAU) {
2794 MemoryDef *MD = cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(GI));
2795 MSSAU->moveToPlace(MD, DeoptBlock, MemorySSA::BeforeTerminator);
2797 MSSAU->getMemorySSA()->verifyMemorySSA();
2902 const MemorySSAUpdater *MSSAU) {
2967 if (MSSAU && !findOptionMDForLoop(&L, "llvm.loop.unswitch.partial.disable") &&
2971 MemorySSA *MSSA = MSSAU->getMemorySSA();
3084 AssumptionCache &AC, MemorySSAUpdater *MSSAU) {
3148 if (MSSAU)
3149 MSSAU->applyUpdates(DTUpdates, DT);
3155 if (MSSAU && VerifyMemorySSA)
3156 MSSAU->getMemorySSA()->verifyMemorySSA();
3222 const MemorySSAUpdater *MSSAU) {
3496 MemorySSAUpdater *MSSAU,
3504 PartialIVCondBranch, L, LI, AA, MSSAU);
3508 MSSAU);
3531 Best = injectPendingInvariantConditions(Best, L, DT, LI, AC, MSSAU);
3548 Best.TI = turnSelectIntoBranch(SI, DT, LI, MSSAU, &AC);
3553 turnGuardIntoBranch(cast<IntrinsicInst>(Best.TI), L, DT, LI, MSSAU);
3560 LI, AC, SE, MSSAU, LoopUpdater, InsertFreeze,
3590 MemorySSAUpdater *MSSAU, ProfileSummaryInfo *PSI,
3600 if (Trivial && unswitchAllTrivialConditions(L, DT, LI, SE, MSSAU)) {
3674 if (unswitchBestCondition(L, DT, LI, AC, AA, TTI, SE, MSSAU, LoopUpdater))
3694 std::optional<MemorySSAUpdater> MSSAU;
3696 MSSAU = MemorySSAUpdater(AR.MSSA);
3701 &AR.SE, MSSAU ? &*MSSAU : nullptr, PSI, AR.BFI, U))