[PlaceSafepoints] Followup to commit L237172
authorPhilip Reames <listmail@philipreames.com>
Tue, 12 May 2015 23:39:23 +0000 (23:39 +0000)
committerPhilip Reames <listmail@philipreames.com>
Tue, 12 May 2015 23:39:23 +0000 (23:39 +0000)
Responding to review feedback from http://reviews.llvm.org/D9585

1) Remove a variable shadow by converting the outer loop to a range for loop.  We never really used the 'i' variable which was being shadowed.
2) Reduce DominatorTree recalculations by passing the DT to SplitEdge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237212 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/PlaceSafepoints.cpp

index b5124b7adc4aef0ef3880c9135828aa53574dea1..ff3d67a65481a298a4a8a7fb91a65396a3cd44c6 100644 (file)
@@ -606,13 +606,11 @@ bool PlaceSafepoints::runOnFunction(Function &F) {
                         PollLocations.end());
 
     // Insert a poll at each point the analysis pass identified
-    for (size_t i = 0; i < PollLocations.size(); i++) {
+    // The poll location must be the terminator of a loop latch block.
+    for (TerminatorInst *Term : PollLocations) {
       // We are inserting a poll, the function is modified
       modified = true;
-
-      // The poll location must be the terminator of a loop latch block.
-      TerminatorInst *Term = PollLocations[i];
-
+      
       std::vector<CallSite> ParsePoints;
       if (SplitBackedge) {
         // Split the backedge of the loop and insert the poll within that new
@@ -639,11 +637,8 @@ bool PlaceSafepoints::runOnFunction(Function &F) {
         // date and use a more natural merged loop.
         SetVector<BasicBlock *> SplitBackedges;
         for (BasicBlock *Header : Headers) {
-          BasicBlock *NewBB = SplitEdge(Term->getParent(), Header, nullptr);
-          SplitBackedges.insert(NewBB);
-        }
-        DT.recalculate(F);
-        for (BasicBlock *NewBB : SplitBackedges) {
+          BasicBlock *NewBB = SplitEdge(Term->getParent(), Header, &DT);
+          
           std::vector<CallSite> RuntimeCalls;
           InsertSafepointPoll(DT, NewBB->getTerminator(), RuntimeCalls);
           NumBackedgeSafepoints++;