aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-16 23:59:30 +0000
committerChris Lattner <sabre@nondot.org>2005-01-16 23:59:30 +0000
commit6ae76fcc060e1943c54bb9b07bd3b5cdb3c793bc (patch)
tree0301b8822e15a835e99efdb5d28902e4b610ebc8
parent8ac532c55eb7f8698466f25d1a8a01240c44ec7d (diff)
Add comments
Add fields to hold the result type of setcc operations and shift amounts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19618 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Target/TargetLowering.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h
index 4cdfb39c44..80f40eeae3 100644
--- a/include/llvm/Target/TargetLowering.h
+++ b/include/llvm/Target/TargetLowering.h
@@ -45,10 +45,23 @@ namespace llvm {
class TargetLowering {
TargetMachine &TM;
const TargetData &TD;
-
- MVT::ValueType PointerTy;
+
+ /// IsLittleEndian - True if this is a little endian target.
+ ///
bool IsLittleEndian;
+ /// PointerTy - The type to use for pointers, usually i32 or i64.
+ ///
+ MVT::ValueType PointerTy;
+
+ /// ShiftAmountTy - The type to use for shift amounts, usually i8 or whatever
+ /// PointerTy is.
+ MVT::ValueType ShiftAmountTy;
+
+ /// SetCCResultTy - The type that SetCC operations use. This defaults to the
+ /// PointerTy.
+ MVT::ValueType SetCCResultTy;
+
/// RegClassForVT - This indicates the default register class to use for
/// each ValueType the target supports natively.
TargetRegisterClass *RegClassForVT[MVT::LAST_VALUETYPE];
@@ -95,7 +108,11 @@ public:
bool isLittleEndian() const { return IsLittleEndian; }
MVT::ValueType getPointerTy() const { return PointerTy; }
-
+ MVT::ValueType getShiftAmountTy() const { return ShiftAmountTy; }
+ MVT::ValueType getSetCCResultTy() const { return SetCCResultTy; }
+
+ /// getRegClassFor - Return the register class that should be used for the
+ /// specified value type. This may only be called on legal types.
TargetRegisterClass *getRegClassFor(MVT::ValueType VT) const {
TargetRegisterClass *RC = RegClassForVT[VT];
assert(RC && "This value type is not natively supported!");
@@ -198,6 +215,14 @@ public:
protected:
+ /// setShiftAmountType - Describe the type that should be used for shift
+ /// amounts. This type defaults to the pointer type.
+ void setShiftAmountType(MVT::ValueType VT) { ShiftAmountTy = VT; }
+
+ /// setSetCCResultType - Describe the type that shoudl be used as the result
+ /// of a setcc operation. This defaults to the pointer type.
+ void setSetCCResultType(MVT::ValueType VT) { SetCCResultTy = VT; }
+
/// 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.