[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