From 39d7f8f3383552868b3ea2f3fa8cabca78decfbd Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 12 May 2005 02:02:21 +0000 Subject: [PATCH] Add a little hook git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21883 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetLowering.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 5aa8ae1a606..96305c2b6a2 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -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;