summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-08-24 17:55:32 +0000
committerChris Lattner <sabre@nondot.org>2005-08-24 17:55:32 +0000
commit8ca5b2a6d2a599161500c8403bc95823beebf877 (patch)
tree6a2c9bef2fb19b676832b8a432809e6439c17db0 /llvm/lib/Transforms
parent347f5cb985ac93852e81666013c8b1f24809b0c2 (diff)
downloadbcm5719-llvm-8ca5b2a6d2a599161500c8403bc95823beebf877.tar.gz
bcm5719-llvm-8ca5b2a6d2a599161500c8403bc95823beebf877.zip
Fix Regression/Transforms/Reassociate/2005-08-24-Crash.ll
llvm-svn: 23019
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/Reassociate.cpp8
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;
}
OpenPOWER on IntegriCloud