Small optimization to speed up replacementPreservesLCSSAForm.
authorDuncan Sands <baldrick@free.fr>
Tue, 28 Dec 2010 18:00:24 +0000 (18:00 +0000)
committerDuncan Sands <baldrick@free.fr>
Tue, 28 Dec 2010 18:00:24 +0000 (18:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122600 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/LoopInfo.h

index 612b7b8cc49a27955b01deb669ac15cd71b6f9f0..a35b125d6f55b7f628738aeb012fe0776a1593e2 100644 (file)
@@ -1029,6 +1029,10 @@ public:
     // instruction.
     Instruction *I = dyn_cast<Instruction>(To);
     if (!I) return true;
+    // If both instructions are defined in the same basic block then replacement
+    // cannot break LCSSA form.
+    if (I->getParent() == From->getParent())
+      return true;
     // If the instruction is not defined in a loop then it can safely replace
     // anything.
     Loop *ToLoop = getLoopFor(I->getParent());