mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1641 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
871b1939b5
commit
88e2fbc4bb
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user