[llvm] r374918 - [MemorySSA] Update DomTree before applying MSSA updates.
Alina Sbirlea via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 15 10:15:20 PDT 2019
Author: asbirlea
Date: Tue Oct 15 10:15:19 2019
New Revision: 374918
URL: http://llvm.org/viewvc/llvm-project?rev=374918&view=rev
Log:
[MemorySSA] Update DomTree before applying MSSA updates.
Update on the fix in rL374850.
Modified:
llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp?rev=374918&r1=374917&r2=374918&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp Tue Oct 15 10:15:19 2019
@@ -2140,25 +2140,22 @@ static void unswitchNontrivialInvariants
// the branch in the split block.
buildPartialUnswitchConditionalBranch(*SplitBB, Invariants, Direction,
*ClonedPH, *LoopPH);
+ DTUpdates.push_back({DominatorTree::Insert, SplitBB, ClonedPH});
+
if (MSSAU) {
+ DT.applyUpdates(DTUpdates);
+ DTUpdates.clear();
+
// Perform MSSA cloning updates.
for (auto &VMap : VMaps)
MSSAU->updateForClonedLoop(LBRPO, ExitBlocks, *VMap,
/*IgnoreIncomingWithNoClones=*/true);
MSSAU->updateExitBlocksForClonedLoop(ExitBlocks, VMaps, DT);
}
- DTUpdates.push_back({DominatorTree::Insert, SplitBB, ClonedPH});
}
// Apply the updates accumulated above to get an up-to-date dominator tree.
DT.applyUpdates(DTUpdates);
- if (!FullUnswitch && MSSAU) {
- // Update MSSA for partial unswitch, after DT update.
- SmallVector<CFGUpdate, 1> Updates;
- Updates.push_back(
- {cfg::UpdateKind::Insert, SplitBB, ClonedPHs.begin()->second});
- MSSAU->applyInsertUpdates(Updates, DT);
- }
// Now that we have an accurate dominator tree, first delete the dead cloned
// blocks so that we can accurately build any cloned loops. It is important to
More information about the llvm-commits
mailing list