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

vadve at cs.uiuc.edu vadve at cs.uiuc.edu
Mon Sep 16 10:45:03 PDT 2002


Changes in directory llvm/include/llvm/Target:

TargetMachine.h updated: 1.11 -> 1.12

---
Log message:


---
Diffs of the changes:

Index: llvm/include/llvm/Target/TargetMachine.h
diff -u llvm/include/llvm/Target/TargetMachine.h:1.11 llvm/include/llvm/Target/TargetMachine.h:1.12
--- llvm/include/llvm/Target/TargetMachine.h:1.11	Sun May 19 10:44:07 2002
+++ llvm/include/llvm/Target/TargetMachine.h	Mon Sep 16 10:39:35 2002
@@ -17,6 +17,7 @@
 class MachineFrameInfo;
 class MachineCacheInfo;
 class PassManager;
+class Pass;
 
 //---------------------------------------------------------------------------
 // class TargetMachine
@@ -62,17 +63,35 @@
   virtual const MachineFrameInfo&       getFrameInfo() const = 0;
   virtual const MachineCacheInfo&       getCacheInfo() const = 0;
   
-  //
   // Data storage information
   // 
   virtual unsigned int	findOptimalStorageSize	(const Type* ty) const;
   
-  //
   // addPassesToEmitAssembly - Add passes to the specified pass manager to get
   // assembly langage code emited.  Typically this will involve several steps of
-  // code generation.
+  // code generation.  This provides a default ordering of passes that could
+  // be overridden for a particular target.
   //
-  virtual void addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) = 0;
+  virtual void addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
+
+  // getPrologEpilogCodeInserter - Create pass to insert prolog/epilog code.
+  // 
+  virtual Pass* getPrologEpilogInsertionPass() = 0;
+
+  // getFunctionAsmPrinterPass - Create a pass to write out the generated
+  // machine code for a single function to the generated assembly file.
+  // 
+  virtual Pass* getFunctionAsmPrinterPass(std::ostream &Out) = 0;
+
+  // getModuleAsmPrinterPass - Create a pass to write out module-level
+  // information to the generated assembly file.
+  // 
+  virtual Pass* getModuleAsmPrinterPass(std::ostream &Out) = 0;
+
+  // getEmitBytecodeToAsmPass - Create a pass to emit the final LLVM bytecode
+  // to the generated assembly file.
+  // 
+  virtual Pass* getEmitBytecodeToAsmPass(std::ostream &Out) = 0;
 };
 
 #endif





More information about the llvm-commits mailing list