[llvm-commits] CVS: llvm/lib/Analysis/LoopInfo.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed Feb 19 18:29:01 PST 2003


Changes in directory llvm/lib/Analysis:

LoopInfo.cpp updated: 1.28 -> 1.29

---
Log message:

Fix the requisite bug that I introduced


---
Diffs of the changes:

Index: llvm/lib/Analysis/LoopInfo.cpp
diff -u llvm/lib/Analysis/LoopInfo.cpp:1.28 llvm/lib/Analysis/LoopInfo.cpp:1.29
--- llvm/lib/Analysis/LoopInfo.cpp:1.28	Wed Feb 19 18:18:07 2003
+++ llvm/lib/Analysis/LoopInfo.cpp	Wed Feb 19 18:28:00 2003
@@ -155,17 +155,19 @@
           // now by moving the loop into the correct subloop.
           //
           Loop *SubLoop = BBMI->second;
-          Loop *OldSubLoopParent = SubLoop->getParentLoop();
-          if (OldSubLoopParent != L) {
-            // Remove SubLoop from OldSubLoopParent's list of subloops...
-            std::vector<Loop*>::iterator I =
-              std::find(OldSubLoopParent->SubLoops.begin(),
-                        OldSubLoopParent->SubLoops.end(), SubLoop);
-            assert(I != OldSubLoopParent->SubLoops.end()
-                   && "Loop parent doesn't contain loop?");
-            OldSubLoopParent->SubLoops.erase(I);
-            SubLoop->ParentLoop = L;
-            L->SubLoops.push_back(SubLoop);
+          if (SubLoop->getHeader() == *I) { // Only do this once for the loop...
+            Loop *OldSubLoopParent = SubLoop->getParentLoop();
+            if (OldSubLoopParent != L) {
+              // Remove SubLoop from OldSubLoopParent's list of subloops...
+              std::vector<Loop*>::iterator I =
+                std::find(OldSubLoopParent->SubLoops.begin(),
+                          OldSubLoopParent->SubLoops.end(), SubLoop);
+              assert(I != OldSubLoopParent->SubLoops.end()
+                     && "Loop parent doesn't contain loop?");
+              OldSubLoopParent->SubLoops.erase(I);
+              SubLoop->ParentLoop = L;
+              L->SubLoops.push_back(SubLoop);
+            }
           }
         }
       }





More information about the llvm-commits mailing list