Add a little hook
authorChris Lattner <sabre@nondot.org>
Thu, 12 May 2005 02:02:21 +0000 (02:02 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 12 May 2005 02:02:21 +0000 (02:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21883 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetLowering.h

index 5aa8ae1a606043322af6ed3df5cfe3d189684648..96305c2b6a290d6dc1b4ad1aa8149d1f662a1cf1 100644 (file)
@@ -76,6 +76,10 @@ public:
   MVT::ValueType getShiftAmountTy() const { return ShiftAmountTy; }
   OutOfRangeShiftAmount getShiftAmountFlavor() const {return ShiftAmtHandling; }
 
+  /// isSetCCExpensive - Return true if the setcc operation is expensive for
+  /// this target.
+  bool isSetCCExpensive() const { return SetCCIsExpensive; }
+
   /// getSetCCResultTy - Return the ValueType of the result of setcc operations.
   ///
   MVT::ValueType getSetCCResultTy() const { return SetCCResultTy; }
@@ -207,6 +211,11 @@ protected:
     ShiftAmtHandling = OORSA;
   }
 
+  /// setSetCCIxExpensive - This is a short term hack for targets that codegen
+  /// setcc as a conditional branch.  This encourages the code generator to fold
+  /// setcc operations into other operations if possible.
+  void setSetCCIsExpensive() { SetCCIsExpensive = true; }
+
   /// addRegisterClass - Add the specified register class as an available
   /// regclass for the specified value type.  This indicates the selector can
   /// handle values of that class natively.
@@ -310,6 +319,11 @@ private:
 
   OutOfRangeShiftAmount ShiftAmtHandling;
 
+  /// SetCCIsExpensive - This is a short term hack for targets that codegen
+  /// setcc as a conditional branch.  This encourages the code generator to fold
+  /// setcc operations into other operations if possible.
+  bool SetCCIsExpensive;
+
   /// SetCCResultTy - The type that SetCC operations use.  This defaults to the
   /// PointerTy.
   MVT::ValueType SetCCResultTy;