diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-08-24 17:55:32 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-08-24 17:55:32 +0000 | 
| commit | 8ca5b2a6d2a599161500c8403bc95823beebf877 (patch) | |
| tree | 6a2c9bef2fb19b676832b8a432809e6439c17db0 | |
| parent | 347f5cb985ac93852e81666013c8b1f24809b0c2 (diff) | |
| download | bcm5719-llvm-8ca5b2a6d2a599161500c8403bc95823beebf877.tar.gz bcm5719-llvm-8ca5b2a6d2a599161500c8403bc95823beebf877.zip  | |
Fix Regression/Transforms/Reassociate/2005-08-24-Crash.ll
llvm-svn: 23019
| -rw-r--r-- | llvm/lib/Transforms/Scalar/Reassociate.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/Reassociate.cpp b/llvm/lib/Transforms/Scalar/Reassociate.cpp index c55bce0d7e8..60722ef68ff 100644 --- a/llvm/lib/Transforms/Scalar/Reassociate.cpp +++ b/llvm/lib/Transforms/Scalar/Reassociate.cpp @@ -496,9 +496,15 @@ void Reassociate::OptimizeExpression(unsigned Opcode,            ++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;          }  | 

