diff options
author | Chris Lattner <sabre@nondot.org> | 2010-12-13 04:18:32 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-12-13 04:18:32 +0000 |
commit | 662269d2abb2f220c3a9b727c2a948246128cd05 (patch) | |
tree | 04dcd3d2e8d6ce20c3dd442f8993b7bd3714c066 | |
parent | 803a29d19f8e2564fe93e6c43eff2cb7f5934c6f (diff) | |
download | external_llvm-662269d2abb2f220c3a9b727c2a948246128cd05.zip external_llvm-662269d2abb2f220c3a9b727c2a948246128cd05.tar.gz external_llvm-662269d2abb2f220c3a9b727c2a948246128cd05.tar.bz2 |
don't bother handling non-canonical icmp's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121676 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Utils/SimplifyCFG.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index d3181b1..a1e7486 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -306,11 +306,10 @@ GatherConstantSetEQs(Value *V, std::vector<ConstantInt*> &Values, Values.push_back(C); return Inst->getOperand(0); } - if (ConstantInt *C = GetConstantInt(Inst->getOperand(0), TD)) { - Values.push_back(C); - return Inst->getOperand(1); - } - } else if (Inst->getOpcode() == Instruction::Or) { + return 0; + } + + if (Inst->getOpcode() == Instruction::Or) { if (Value *LHS = GatherConstantSetEQs(Inst->getOperand(0), Values, TD)) if (Value *RHS = GatherConstantSetEQs(Inst->getOperand(1), Values, TD)) if (LHS == RHS) @@ -329,16 +328,15 @@ GatherConstantSetNEs(Value *V, std::vector<ConstantInt*> &Values, if (Inst == 0) return 0; if (Inst->getOpcode() == Instruction::ICmp && - cast<ICmpInst>(Inst)->getPredicate() == ICmpInst::ICMP_NE) { + cast<ICmpInst>(Inst)->getPredicate() == ICmpInst::ICMP_NE) { if (ConstantInt *C = GetConstantInt(Inst->getOperand(1), TD)) { Values.push_back(C); return Inst->getOperand(0); } - if (ConstantInt *C = GetConstantInt(Inst->getOperand(0), TD)) { - Values.push_back(C); - return Inst->getOperand(1); - } - } else if (Inst->getOpcode() == Instruction::And) { + return 0; + } + + if (Inst->getOpcode() == Instruction::And) { if (Value *LHS = GatherConstantSetNEs(Inst->getOperand(0), Values, TD)) if (Value *RHS = GatherConstantSetNEs(Inst->getOperand(1), Values, TD)) if (LHS == RHS) |