[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