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

Vikram Adve vadve at psmith.cs.uiuc.edu
Thu Sep 19 19:51:00 PDT 2002


Changes in directory llvm/include/llvm/Target:

MachineInstrInfo.h updated: 1.20 -> 1.21
TargetMachine.h updated: 1.12 -> 1.13

---
Log message:

Added class MachineOptInfo as interface to target-specific
routines supporting machine code optimization.
Also added method MachineInstrInfo::getNOPOpCode().


---
Diffs of the changes:

Index: llvm/include/llvm/Target/MachineInstrInfo.h
diff -u llvm/include/llvm/Target/MachineInstrInfo.h:1.20 llvm/include/llvm/Target/MachineInstrInfo.h:1.21
--- llvm/include/llvm/Target/MachineInstrInfo.h:1.20	Mon Sep 16 10:56:01 2002
+++ llvm/include/llvm/Target/MachineInstrInfo.h	Thu Sep 19 19:50:44 2002
@@ -191,7 +191,7 @@
   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 @@
   //-------------------------------------------------------------------------
   // 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.


Index: llvm/include/llvm/Target/TargetMachine.h
diff -u llvm/include/llvm/Target/TargetMachine.h:1.12 llvm/include/llvm/Target/TargetMachine.h:1.13
--- llvm/include/llvm/Target/TargetMachine.h:1.12	Mon Sep 16 10:39:35 2002
+++ llvm/include/llvm/Target/TargetMachine.h	Thu Sep 19 19:50:44 2002
@@ -16,6 +16,7 @@
 class MachineRegInfo;
 class MachineFrameInfo;
 class MachineCacheInfo;
+class MachineOptInfo;
 class PassManager;
 class Pass;
 
@@ -56,13 +57,17 @@
   // -- 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;





More information about the llvm-commits mailing list