Add methods to TargetMachine to:

* Output assembly code a method at a time instead of building it all up then emitting it as a whole module
* Release memory contained in various annotations.

llvm-svn: 1641
This commit is contained in:
Chris Lattner 2002-02-03 07:24:05 +00:00
parent 7d01ff38e9
commit d4868c6837
1 changed files with 15 additions and 9 deletions

View File

@ -10,21 +10,14 @@
#include "llvm/Target/TargetData.h"
#include "Support/NonCopyable.h"
class TargetMachine;
class MachineInstrInfo;
class MachineInstrDescriptor;
class MachineSchedInfo;
class MachineRegInfo;
class MachineFrameInfo;
class MachineCacheInfo;
//---------------------------------------------------------------------------
// Data types used to define information about a single machine instruction
//---------------------------------------------------------------------------
typedef int MachineOpCode;
typedef int OpCodeMask;
class Module;
class Method;
//---------------------------------------------------------------------------
// class TargetMachine
@ -86,7 +79,20 @@ public:
// method. The specified method must have been compiled before this may be
// used.
//
virtual void emitAssembly(const Method *M, std::ostream &OutStr) const = 0;
//
// emitAssembly - Output assembly language code (a .s file) for global
// components of the specified module. This assumes that methods have been
// previously output.
//
virtual void emitAssembly(const Module *M, std::ostream &OutStr) const = 0;
//
// freeCompiledMethod - Release all memory associated with the compiled image
// for this method.
//
virtual void freeCompiledMethod(Method *M) = 0;
};
#endif