[PATCH] D66918: [LoopUnrollAndJam] Use Lazy strategy for DTU.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 10:48:48 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL370391: [LoopUnrollAndJam] Use Lazy strategy for DTU. (authored by fhahn, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D66918?vs=217750&id=217939#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66918/new/

https://reviews.llvm.org/D66918

Files:
  llvm/trunk/lib/Transforms/Utils/LoopUnrollAndJam.cpp


Index: llvm/trunk/lib/Transforms/Utils/LoopUnrollAndJam.cpp
===================================================================
--- llvm/trunk/lib/Transforms/Utils/LoopUnrollAndJam.cpp
+++ llvm/trunk/lib/Transforms/Utils/LoopUnrollAndJam.cpp
@@ -517,6 +517,7 @@
     movePHIs(AftBlocksFirst[It], AftBlocksFirst[0]);
   }
 
+  DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
   // Dominator Tree. Remove the old links between Fore, Sub and Aft, adding the
   // new ones required.
   if (Count != 1) {
@@ -530,7 +531,7 @@
                            ForeBlocksLast.back(), SubLoopBlocksFirst[0]);
     DTUpdates.emplace_back(DominatorTree::UpdateKind::Insert,
                            SubLoopBlocksLast.back(), AftBlocksFirst[0]);
-    DT->applyUpdates(DTUpdates);
+    DTU.applyUpdatesPermissive(DTUpdates);
   }
 
   // Merge adjacent basic blocks, if possible.
@@ -538,7 +539,6 @@
   MergeBlocks.insert(ForeBlocksLast.begin(), ForeBlocksLast.end());
   MergeBlocks.insert(SubLoopBlocksLast.begin(), SubLoopBlocksLast.end());
   MergeBlocks.insert(AftBlocksLast.begin(), AftBlocksLast.end());
-  DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager);
   while (!MergeBlocks.empty()) {
     BasicBlock *BB = *MergeBlocks.begin();
     BranchInst *Term = dyn_cast<BranchInst>(BB->getTerminator());
@@ -555,6 +555,8 @@
     } else
       MergeBlocks.erase(BB);
   }
+  // Apply updates to the DomTree.
+  DT = &DTU.getDomTree();
 
   // At this point, the code is well formed.  We now do a quick sweep over the
   // inserted code, doing constant propagation and dead code elimination as we


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66918.217939.patch
Type: text/x-patch
Size: 1614 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190829/8bc95cfb/attachment.bin>


More information about the llvm-commits mailing list