[llvm-commits] CVS: llvm/lib/Transforms/Scalar/ADCE.cpp

Chris Lattner lattner at cs.uiuc.edu
Fri Apr 25 17:54:07 PDT 2003


Changes in directory llvm/lib/Transforms/Scalar:

ADCE.cpp updated: 1.51 -> 1.52

---
Log message:

Fix bug: ADCE/2003-04-25-PHIPostDominateProblem.ll


---
Diffs of the changes:

Index: llvm/lib/Transforms/Scalar/ADCE.cpp
diff -u llvm/lib/Transforms/Scalar/ADCE.cpp:1.51 llvm/lib/Transforms/Scalar/ADCE.cpp:1.52
--- llvm/lib/Transforms/Scalar/ADCE.cpp:1.51	Wed Apr 23 11:37:42 2003
+++ llvm/lib/Transforms/Scalar/ADCE.cpp	Fri Apr 25 17:53:27 2003
@@ -310,15 +310,16 @@
               // should be identical to the incoming values for LastDead.
               //
               for (BasicBlock::iterator II = NextAlive->begin();
-                   PHINode *PN = dyn_cast<PHINode>(II); ++II) {
-                // Get the incoming value for LastDead...
-                int OldIdx = PN->getBasicBlockIndex(LastDead);
-                assert(OldIdx != -1 && "LastDead is not a pred of NextAlive!");
-                Value *InVal = PN->getIncomingValue(OldIdx);
-                
-                // Add an incoming value for BB now...
-                PN->addIncoming(InVal, BB);
-              }
+                   PHINode *PN = dyn_cast<PHINode>(II); ++II)
+                if (LiveSet.count(PN)) {  // Only modify live phi nodes
+                  // Get the incoming value for LastDead...
+                  int OldIdx = PN->getBasicBlockIndex(LastDead);
+                  assert(OldIdx != -1 &&"LastDead is not a pred of NextAlive!");
+                  Value *InVal = PN->getIncomingValue(OldIdx);
+                  
+                  // Add an incoming value for BB now...
+                  PN->addIncoming(InVal, BB);
+                }
             }
           }
 





More information about the llvm-commits mailing list