forked from OSchip/llvm-project
Remove the RegisterInfo class in favor of a general Target class. Add instrinfo stuff
llvm-svn: 7521
This commit is contained in:
parent
7ec26cfa3b
commit
6a7439fb42
|
@ -75,30 +75,10 @@ class RegisterClass<ValueType regType, int alignment, list<Register> regList> {
|
|||
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 @@ class Instruction {
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue