Changes in directory llvm/lib/Transforms/Scalar:
PredicateSimplifier.cpp updated: 1.6 -> 1.7 --- Log message: Skip the linear search if the answer is already known. --- Diffs of the changes: (+22 -20) PredicateSimplifier.cpp | 42 ++++++++++++++++++++++-------------------- 1 files changed, 22 insertions(+), 20 deletions(-) Index: llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp diff -u llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.6 llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.7 --- llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp:1.6 Sat Sep 9 21:27:07 2006 +++ llvm/lib/Transforms/Scalar/PredicateSimplifier.cpp Mon Sep 11 12:23:34 2006 @@ -501,30 +501,32 @@ Value *SCI0 = resolve(SCI->getOperand(0), KP), *SCI1 = resolve(SCI->getOperand(1), KP); - PropertySet::ConstPropertyIterator NE = - KP.findProperty(PropertySet::NE, SCI0, SCI1); - - if (NE != KP.Properties.end()) { - switch (SCI->getOpcode()) { - case Instruction::SetEQ: - return ConstantBool::False; - case Instruction::SetNE: - return ConstantBool::True; - case Instruction::SetLE: - case Instruction::SetGE: - case Instruction::SetLT: - case Instruction::SetGT: - break; - default: - assert(0 && "Unknown opcode in SetCondInst."); - break; - } - } ConstantIntegral *CI1 = dyn_cast<ConstantIntegral>(SCI0), *CI2 = dyn_cast<ConstantIntegral>(SCI1); - if (!CI1 || !CI2) return SCI; + if (!CI1 || !CI2) { + PropertySet::ConstPropertyIterator NE = + KP.findProperty(PropertySet::NE, SCI0, SCI1); + + if (NE != KP.Properties.end()) { + switch (SCI->getOpcode()) { + case Instruction::SetEQ: + return ConstantBool::False; + case Instruction::SetNE: + return ConstantBool::True; + case Instruction::SetLE: + case Instruction::SetGE: + case Instruction::SetLT: + case Instruction::SetGT: + break; + default: + assert(0 && "Unknown opcode in SetCondInst."); + break; + } + } + return SCI; + } switch(SCI->getOpcode()) { case Instruction::SetLE: _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits