diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2007-09-06 02:40:25 +0000 | 
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2007-09-06 02:40:25 +0000 | 
| commit | 0c5c47944a9fbfc9739918ac2cbd4d87aa5a2678 (patch) | |
| tree | 9af04e60969641f9a495499805b08214353268c9 /llvm/lib | |
| parent | b0b066eaaa4c77a8f50deca513d094f49922d2a8 (diff) | |
| download | bcm5719-llvm-0c5c47944a9fbfc9739918ac2cbd4d87aa5a2678.tar.gz bcm5719-llvm-0c5c47944a9fbfc9739918ac2cbd4d87aa5a2678.zip  | |
Use isTrueWhenEqual. Thanks Chris!
llvm-svn: 41741
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/InstructionCombining.cpp | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp index 58eb3bc2750..4902fb710ad 100644 --- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp @@ -1663,16 +1663,22 @@ Value *InstCombiner::SimplifyDemandedVectorElts(Value *V, uint64_t DemandedElts,    return MadeChange ? I : 0;  } -/// @returns true if the specified compare instruction is +/// @returns true if the specified compare predicate is  /// true when both operands are equal... -/// @brief Determine if the ICmpInst returns true if both operands are equal -static bool isTrueWhenEqual(ICmpInst &ICI) { -  ICmpInst::Predicate pred = ICI.getPredicate(); +/// @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 @@ -4562,10 +4568,9 @@ Instruction *InstCombiner::FoldGEPICmp(User *GEPLHS, Value *RHS,        if (NumDifferences == 0)   // SAME GEP?          return ReplaceInstUsesWith(I, // No comparison is needed here. -                                   ConstantInt::get(Type::Int1Ty,  -                                                    Cond == ICmpInst::ICMP_EQ || -                     Cond == ICmpInst::ICMP_ULE || Cond == ICmpInst::ICMP_UGE || -                     Cond == ICmpInst::ICMP_SLE || Cond == ICmpInst::ICMP_SGE)); +                                   ConstantInt::get(Type::Int1Ty, +                                                    isTrueWhenEqual(Cond))); +        else if (NumDifferences == 1) {          Value *LHSV = GEPLHS->getOperand(DiffOperand);          Value *RHSV = GEPRHS->getOperand(DiffOperand);  | 

