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

Chris Lattner lattner at cs.uiuc.edu
Tue Jun 24 15:31:01 PDT 2003


Changes in directory llvm/lib/Transforms/Scalar:

SCCP.cpp updated: 1.69 -> 1.70

---
Log message:

Fix bug: SCCP/2003-06-24-OverdefinedPHIValue.ll


---
Diffs of the changes:

Index: llvm/lib/Transforms/Scalar/SCCP.cpp
diff -u llvm/lib/Transforms/Scalar/SCCP.cpp:1.69 llvm/lib/Transforms/Scalar/SCCP.cpp:1.70
--- llvm/lib/Transforms/Scalar/SCCP.cpp:1.69	Tue May 20 16:01:16 2003
+++ llvm/lib/Transforms/Scalar/SCCP.cpp	Tue Jun 24 15:29:52 2003
@@ -420,12 +420,13 @@
   for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i) {
     InstVal &IV = getValueState(PN.getIncomingValue(i));
     if (IV.isUndefined()) continue;  // Doesn't influence PHI node.
-    if (IV.isOverdefined()) {   // PHI node becomes overdefined!
-      markOverdefined(&PN);
-      return;
-    }
     
     if (isEdgeFeasible(PN.getIncomingBlock(i), PN.getParent())) {
+      if (IV.isOverdefined()) {   // PHI node becomes overdefined!
+        markOverdefined(&PN);
+        return;
+      }
+
       if (OperandVal == 0) {   // Grab the first value...
         OperandVal = IV.getConstant();
       } else {                // Another value is being merged in!





More information about the llvm-commits mailing list