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

Chris Lattner lattner at cs.uiuc.edu
Wed Aug 24 10:55:43 PDT 2005



Changes in directory llvm/lib/Transforms/Scalar:

Reassociate.cpp updated: 1.51 -> 1.52
---
Log message:

Fix Regression/Transforms/Reassociate/2005-08-24-Crash.ll


---
Diffs of the changes:  (+7 -1)

 Reassociate.cpp |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletion(-)


Index: llvm/lib/Transforms/Scalar/Reassociate.cpp
diff -u llvm/lib/Transforms/Scalar/Reassociate.cpp:1.51 llvm/lib/Transforms/Scalar/Reassociate.cpp:1.52
--- llvm/lib/Transforms/Scalar/Reassociate.cpp:1.51	Mon Aug  8 14:11:57 2005
+++ llvm/lib/Transforms/Scalar/Reassociate.cpp	Wed Aug 24 12:55:32 2005
@@ -496,9 +496,15 @@
           ++NumAnnihil;
         } else {
           assert(Opcode == Instruction::Xor);
+          if (e == 2) {
+            Ops[0].Op = Constant::getNullValue(Ops[0].Op->getType());
+            Ops.erase(Ops.begin()+1, Ops.end());
+            ++NumAnnihil;
+            return;
+          }
           // ... X^X -> ...
           Ops.erase(Ops.begin()+i, Ops.begin()+i+2);
-          i -= 2; e -= 2;
+          i -= 1; e -= 2;
           IterateOptimization = true;
           ++NumAnnihil;
         }






More information about the llvm-commits mailing list