diff options
Diffstat (limited to 'lib/Transforms/LevelRaise.cpp')
-rw-r--r-- | lib/Transforms/LevelRaise.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Transforms/LevelRaise.cpp b/lib/Transforms/LevelRaise.cpp index 54a2930fc0..1defda4d84 100644 --- a/lib/Transforms/LevelRaise.cpp +++ b/lib/Transforms/LevelRaise.cpp @@ -68,7 +68,9 @@ static bool HandleCastToPointer(BasicBlock::iterator BI, for (Value::use_iterator I = CI.use_begin(), E = CI.use_end(); I != E; ++I) { if (BinaryOperator *BO = dyn_cast<BinaryOperator>(*I)) { - if (BO->getOpcode() != Instruction::Add) + if (BO->getOpcode() != Instruction::Add || + // Avoid add sbyte* %X, %X cases... + BO->getOperand(0) == BO->getOperand(1)) return false; } else { return false; |