[llvm-commits] CVS: llvm/lib/Target/Target.td

Chris Lattner lattner at cs.uiuc.edu
Mon Aug 4 00:01:35 PDT 2003


Changes in directory llvm/lib/Target:

Target.td updated: 1.8 -> 1.9

---
Log message:

Remove the RegisterInfo class in favor of a general Target class.  Add instrinfo stuff


---
Diffs of the changes:

Index: llvm/lib/Target/Target.td
diff -u llvm/lib/Target/Target.td:1.8 llvm/lib/Target/Target.td:1.9
--- llvm/lib/Target/Target.td:1.8	Fri Aug  1 17:21:49 2003
+++ llvm/lib/Target/Target.td	Sun Aug  3 13:18:31 2003
@@ -75,30 +75,10 @@
   code Methods = [{}];
 }
 
-// RegisterInfo - This class should only be instantiated once to provide
-// parameters which are global to the the target machine, such as callee safed
-// registers.
-//
-class RegisterInfo {
-  // ClassName - Specify the name of the class that should be generated by the
-  // register info emitter.  This class may be further subclasses by custom
-  // target code to implement virtual methods as necessary.  Targets must
-  // specify a value for this.
-  //
-  string ClassName;
-
-  // CalleeSavedRegisters - As you might guess, this is a list of the callee
-  // saved registers for a target.
-  list<Register> CalleeSavedRegisters = [];
-  
-  // PointerType - Specify the value type to be used to represent pointers in
-  // this target.  Typically this is an i32 or i64 type.
-  ValueType PointerType;
-}
-
 
 //===----------------------------------------------------------------------===//
-// Instruction set description - 
+// Instruction set description - These classes correspond to the C++ classes in
+// the Target/TargetInstrInfo.h file.
 //
 
 class Instruction {
@@ -115,4 +95,35 @@
   bit isCall       = 0;     // Is this instruction a call instruction?
   bit isTwoAddress = 0;     // Is this a two address instruction?
   bit isTerminator = 0;     // Is this part of the terminator for a basic block?
+
+  // If the target wants to associate some target-specific information with each
+  // instruction, it should provide these two lists to indicate how to assemble
+  // the target specific information into the 32 bits available.
+  list<string> TargetInfoFields = [];
+  list<int>    TargetInfoPositions = [];
+}
+
+// InstrInfo - This class should only be instantiated once to provide parameters
+// which are global to the the target machine.
+//
+class InstrInfo {
+  Instruction PHIInst;
+  Instruction NOOPInst;
+}
+
+
+//===----------------------------------------------------------------------===//
+// Target - This class contains the "global" target information
+//
+class Target {
+  // CalleeSavedRegisters - As you might guess, this is a list of the callee
+  // saved registers for a target.
+  list<Register> CalleeSavedRegisters = [];
+  
+  // PointerType - Specify the value type to be used to represent pointers in
+  // this target.  Typically this is an i32 or i64 type.
+  ValueType PointerType;
+
+  // InstructionSet - Instruction set description for this target
+  InstrInfo InstructionSet;
 }





More information about the llvm-commits mailing list