diff options
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Target/MachineInstrInfo.h | 9 | ||||
-rw-r--r-- | include/llvm/Target/TargetInstrInfo.h | 9 | ||||
-rw-r--r-- | include/llvm/Target/TargetMachine.h | 7 |
3 files changed, 20 insertions, 5 deletions
diff --git a/include/llvm/Target/MachineInstrInfo.h b/include/llvm/Target/MachineInstrInfo.h index 24d1363453..f7780d0a6a 100644 --- a/include/llvm/Target/MachineInstrInfo.h +++ b/include/llvm/Target/MachineInstrInfo.h @@ -191,7 +191,7 @@ public: bool isPseudoInstr(const MachineOpCode opCode) const { return getDescriptor(opCode).iclass & M_PSEUDO_FLAG; } - + // Check if an instruction can be issued before its operands are ready, // or if a subsequent instruction that uses its result can be issued // before the results are ready. @@ -265,7 +265,12 @@ public: //------------------------------------------------------------------------- // Code generation support for creating individual machine instructions //------------------------------------------------------------------------- - + + // Get certain common op codes for the current target. this and all the + // Create* methods below should be moved to a machine code generation class + // + virtual MachineOpCode getNOPOpCode() const = 0; + // Create an instruction sequence to put the constant `val' into // the virtual register `dest'. `val' may be a Constant or a // GlobalValue, viz., the constant address of a global variable or function. diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index 24d1363453..f7780d0a6a 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -191,7 +191,7 @@ public: bool isPseudoInstr(const MachineOpCode opCode) const { return getDescriptor(opCode).iclass & M_PSEUDO_FLAG; } - + // Check if an instruction can be issued before its operands are ready, // or if a subsequent instruction that uses its result can be issued // before the results are ready. @@ -265,7 +265,12 @@ public: //------------------------------------------------------------------------- // Code generation support for creating individual machine instructions //------------------------------------------------------------------------- - + + // Get certain common op codes for the current target. this and all the + // Create* methods below should be moved to a machine code generation class + // + virtual MachineOpCode getNOPOpCode() const = 0; + // Create an instruction sequence to put the constant `val' into // the virtual register `dest'. `val' may be a Constant or a // GlobalValue, viz., the constant address of a global variable or function. diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 1a2abff27a..13c7a0240b 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -16,6 +16,7 @@ class MachineSchedInfo; class MachineRegInfo; class MachineFrameInfo; class MachineCacheInfo; +class MachineOptInfo; class PassManager; class Pass; @@ -56,13 +57,17 @@ public: // -- Instruction opcode and operand information // -- Pipelines and scheduling information // -- Register information + // -- Stack frame information + // -- Cache hierarchy information + // -- Machine-level optimization information (peephole only) // virtual const MachineInstrInfo& getInstrInfo() const = 0; virtual const MachineSchedInfo& getSchedInfo() const = 0; virtual const MachineRegInfo& getRegInfo() const = 0; virtual const MachineFrameInfo& getFrameInfo() const = 0; virtual const MachineCacheInfo& getCacheInfo() const = 0; - + virtual const MachineOptInfo& getOptInfo() const = 0; + // Data storage information // virtual unsigned int findOptimalStorageSize (const Type* ty) const; |