Add special check to avoid isLoop call. Simple, but doesn't seem to speed
authorChris Lattner <sabre@nondot.org>
Wed, 2 Aug 2006 00:16:47 +0000 (00:16 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 2 Aug 2006 00:16:47 +0000 (00:16 +0000)
up lcssa much in practice.

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

lib/Transforms/Utils/LCSSA.cpp

index 43c9678cd0b538695b2e146dbc8b6bd70edc1734..21f9352637341d320286216615b1148d3acba457 100644 (file)
@@ -177,7 +177,7 @@ void LCSSA::ProcessInstruction(Instruction *Instr,
     }
     
     // If the user is in the loop, don't rewrite it!
-    if (inLoop(UserBB)) {
+    if (UserBB == Instr->getParent() || inLoop(UserBB)) {
       ++UI;
       continue;
     }
@@ -215,7 +215,7 @@ SetVector<Instruction*> LCSSA::getLoopValuesUsedOutsideLoop(Loop *L) {
           UserBB = p->getIncomingBlock(OperandNo/2);
         }
         
-        if (!inLoop(UserBB)) {
+        if (*BB != UserBB && !inLoop(UserBB)) {
           AffectedValues.insert(I);
           break;
         }