OSDN Git Service

Don't back past debug info intrinsics; SCEVExpander's strategy
authorDan Gohman <gohman@apple.com>
Tue, 23 Mar 2010 21:53:22 +0000 (21:53 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 23 Mar 2010 21:53:22 +0000 (21:53 +0000)
for ignoring debug info intrinsics everywhere else is to advance
past them, and it needs to be consistent.

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

lib/Analysis/ScalarEvolutionExpander.cpp

index 138cdc6..2e18cea 100644 (file)
@@ -1268,19 +1268,8 @@ Value *SCEVExpander::expand(const SCEV *S) {
        L = L->getParentLoop())
     if (S->isLoopInvariant(L)) {
       if (!L) break;
-      if (BasicBlock *Preheader = L->getLoopPreheader()) {
+      if (BasicBlock *Preheader = L->getLoopPreheader())
         InsertPt = Preheader->getTerminator();
-        BasicBlock::iterator IP = InsertPt;
-        // Back past any debug info instructions.  Sometimes we inserted
-        // something earlier before debug info but after any real instructions.
-        // This should behave the same as if debug info was not present.
-        while (IP != Preheader->begin()) {
-          --IP;
-          if (!isa<DbgInfoIntrinsic>(IP))
-            break;
-          InsertPt = IP;
-        }
-      }
     } else {
       // If the SCEV is computable at this level, insert it into the header
       // after the PHIs (and after any other instructions that we've inserted