From 4f5bad8d2eb39fd0a3578904c0726b2950548481 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Mon, 16 Sep 2002 15:39:35 +0000 Subject: [PATCH] *** empty log message *** llvm-svn: 3741 --- llvm/include/llvm/Target/TargetMachine.h | 27 ++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/Target/TargetMachine.h b/llvm/include/llvm/Target/TargetMachine.h index db3fc206a96d..1a2abff27a76 100644 --- a/llvm/include/llvm/Target/TargetMachine.h +++ b/llvm/include/llvm/Target/TargetMachine.h @@ -17,6 +17,7 @@ class MachineRegInfo; class MachineFrameInfo; class MachineCacheInfo; class PassManager; +class Pass; //--------------------------------------------------------------------------- // class TargetMachine @@ -62,17 +63,35 @@ public: 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