diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2008-05-17 07:33:39 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2008-05-17 07:33:39 +0000 |
commit | fc1efbbfbcd707c29bdab8a1adf7b649f42e9600 (patch) | |
tree | 91d3fd1aaafda6b1a7cddc9a45f63024ba3b6e1d /lib | |
parent | 1f7580c5ebfb3ab79c4be77cc5b85408bf3a8cf4 (diff) |
Move isTrueWhenEqual to ICmpInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51215 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Transforms/Scalar/InstructionCombining.cpp | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 41282f2650..32f80871ce 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -2056,22 +2056,6 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, uint64_t DemandedElts, return MadeChange ? I : 0; } -/// @returns true if the specified compare predicate is -/// true when both operands are equal... -/// @brief Determine if the icmp Predicate is true when both operands are equal -static bool isTrueWhenEqual(ICmpInst::Predicate pred) { - return pred == ICmpInst::ICMP_EQ || pred == ICmpInst::ICMP_UGE || - pred == ICmpInst::ICMP_SGE || pred == ICmpInst::ICMP_ULE || - pred == ICmpInst::ICMP_SLE; -} - -/// @returns true if the specified compare instruction is -/// true when both operands are equal... -/// @brief Determine if the ICmpInst returns true when both operands are equal -static bool isTrueWhenEqual(ICmpInst &ICI) { - return isTrueWhenEqual(ICI.getPredicate()); -} - /// AssociativeOpt - Perform an optimization on an associative operator. This /// function is designed to check a chain of associative operators for a /// potential to apply a certain optimization. Since the optimization may be @@ -5204,7 +5188,7 @@ Instruction *InstCombiner::FoldGEPICmp(User *GEPLHS, Value *RHS, if (NumDifferences == 0) // SAME GEP? return ReplaceInstUsesWith(I, // No comparison is needed here. ConstantInt::get(Type::Int1Ty, - isTrueWhenEqual(Cond))); + ICmpInst::isTrueWhenEqual(Cond))); else if (NumDifferences == 1) { Value *LHSV = GEPLHS->getOperand(DiffOperand); @@ -5321,7 +5305,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) { // icmp X, X if (Op0 == Op1) return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, - isTrueWhenEqual(I))); + I.isTrueWhenEqual())); if (isa<UndefValue>(Op1)) // X icmp undef -> undef return ReplaceInstUsesWith(I, UndefValue::get(Type::Int1Ty)); @@ -5333,7 +5317,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) { (isa<GlobalValue>(Op1) || isa<AllocaInst>(Op1) || isa<ConstantPointerNull>(Op1))) return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, - !isTrueWhenEqual(I))); + !I.isTrueWhenEqual())); // icmp's with boolean values can always be turned into bitwise operations if (Ty == Type::Int1Ty) { @@ -5614,7 +5598,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) { if (LHSI->hasOneUse() && isa<ConstantPointerNull>(RHSC)) { AddToWorkList(LHSI); return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty, - !isTrueWhenEqual(I))); + !I.isTrueWhenEqual())); } break; } |