[llvm-commits] [llvm] r41741 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Nick Lewycky nicholas at mxc.ca
Wed Sep 5 19:40:28 PDT 2007


Author: nicholas
Date: Wed Sep  5 21:40:25 2007
New Revision: 41741

URL: http://llvm.org/viewvc/llvm-project?rev=41741&view=rev
Log:
Use isTrueWhenEqual. Thanks Chris!

Modified:
    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=41741&r1=41740&r2=41741&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Wed Sep  5 21:40:25 2007
@@ -1663,16 +1663,22 @@
   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 @@
 
       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);





More information about the llvm-commits mailing list