[llvm-commits] CVS: llvm/include/llvm/Target/TargetLowering.h

Chris Lattner lattner at cs.uiuc.edu
Sun Jan 16 15:59:46 PST 2005



Changes in directory llvm/include/llvm/Target:

TargetLowering.h updated: 1.5 -> 1.6
---
Log message:

Add comments
Add fields to hold the result type of setcc operations and shift amounts.


---
Diffs of the changes:  (+28 -3)

Index: llvm/include/llvm/Target/TargetLowering.h
diff -u llvm/include/llvm/Target/TargetLowering.h:1.5 llvm/include/llvm/Target/TargetLowering.h:1.6
--- llvm/include/llvm/Target/TargetLowering.h:1.5	Sun Jan 16 01:27:49 2005
+++ llvm/include/llvm/Target/TargetLowering.h	Sun Jan 16 17:59:30 2005
@@ -45,10 +45,23 @@
 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 @@
   
   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 @@
 
 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.






More information about the llvm-commits mailing list