mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 22:24:07 +00:00
Rearrange code, indent for the namespace, add the createMachineFunctionPrinterPass
to passes.h, and add the machien destruction pass to Passes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -26,14 +26,11 @@ namespace llvm {
|
|||||||
|
|
||||||
class Function;
|
class Function;
|
||||||
class TargetMachine;
|
class TargetMachine;
|
||||||
class FunctionPass;
|
|
||||||
class SSARegMap;
|
class SSARegMap;
|
||||||
class MachineFunctionInfo;
|
class MachineFunctionInfo;
|
||||||
class MachineFrameInfo;
|
class MachineFrameInfo;
|
||||||
class MachineConstantPool;
|
class MachineConstantPool;
|
||||||
|
|
||||||
FunctionPass *createMachineFunctionPrinterPass();
|
|
||||||
|
|
||||||
class MachineFunction : private Annotation {
|
class MachineFunction : private Annotation {
|
||||||
const Function *Fn;
|
const Function *Fn;
|
||||||
const TargetMachine &Target;
|
const TargetMachine &Target;
|
||||||
@ -103,7 +100,6 @@ public:
|
|||||||
// get() -- Returns a handle to the object.
|
// get() -- Returns a handle to the object.
|
||||||
// This should not be called before "construct()"
|
// This should not be called before "construct()"
|
||||||
// for a given Method.
|
// for a given Method.
|
||||||
// destruct() -- Destroy the MachineFunction object
|
|
||||||
//
|
//
|
||||||
static MachineFunction& construct(const Function *F, const TargetMachine &TM);
|
static MachineFunction& construct(const Function *F, const TargetMachine &TM);
|
||||||
static void destruct(const Function *F);
|
static void destruct(const Function *F);
|
||||||
|
@ -17,53 +17,60 @@
|
|||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
class FunctionPass;
|
class FunctionPass;
|
||||||
class PassInfo;
|
class PassInfo;
|
||||||
class TargetMachine;
|
class TargetMachine;
|
||||||
|
|
||||||
|
/// MachineFunctionPrinter pass - This pass prints out the machine function to
|
||||||
|
/// standard error, as a debugging tool.
|
||||||
|
FunctionPass *createMachineFunctionPrinterPass();
|
||||||
|
|
||||||
|
/// PHIElimination pass - This pass eliminates machine instruction PHI nodes
|
||||||
|
/// by inserting copy instructions. This destroys SSA information, but is the
|
||||||
|
/// desired input for some register allocators. This pass is "required" by
|
||||||
|
/// these register allocator like this: AU.addRequiredID(PHIEliminationID);
|
||||||
|
///
|
||||||
|
extern const PassInfo *PHIEliminationID;
|
||||||
|
|
||||||
// PHIElimination pass - This pass eliminates machine instruction PHI nodes by
|
/// TwoAddressInstruction pass - This pass reduces two-address instructions to
|
||||||
// inserting copy instructions. This destroys SSA information, but is the
|
/// use two operands. This destroys SSA information but it is desired by
|
||||||
// desired input for some register allocators. This pass is "required" by these
|
/// register allocators.
|
||||||
// register allocator like this: AU.addRequiredID(PHIEliminationID);
|
extern const PassInfo *TwoAddressInstructionPassID;
|
||||||
//
|
|
||||||
extern const PassInfo *PHIEliminationID;
|
|
||||||
|
|
||||||
// TwoAddressInstruction pass - This pass reduces two-address
|
/// Creates a register allocator as the user specified on the command line.
|
||||||
// instructions to use two operands. This destroys SSA information but
|
///
|
||||||
// it is desired by register allocators.
|
FunctionPass *createRegisterAllocator();
|
||||||
extern const PassInfo *TwoAddressInstructionPassID;
|
|
||||||
|
|
||||||
/// Creates a register allocator as the user specified on the command
|
/// SimpleRegisterAllocation Pass - This pass converts the input machine code
|
||||||
/// line.
|
/// from SSA form to use explicit registers by spilling every register. Wow,
|
||||||
FunctionPass *createRegisterAllocator();
|
/// great policy huh?
|
||||||
|
///
|
||||||
|
FunctionPass *createSimpleRegisterAllocator();
|
||||||
|
|
||||||
/// SimpleRegisterAllocation Pass - This pass converts the input machine code
|
/// LocalRegisterAllocation Pass - This pass register allocates the input code
|
||||||
/// from SSA form to use explicit registers by spilling every register. Wow,
|
/// a basic block at a time, yielding code better than the simple register
|
||||||
/// great policy huh?
|
/// allocator, but not as good as a global allocator.
|
||||||
///
|
///
|
||||||
FunctionPass *createSimpleRegisterAllocator();
|
FunctionPass *createLocalRegisterAllocator();
|
||||||
|
|
||||||
|
/// LinearScanRegisterAllocation Pass - This pass implements the linear scan
|
||||||
|
/// register allocation algorithm, a global register allocator.
|
||||||
|
///
|
||||||
|
FunctionPass *createLinearScanRegisterAllocator();
|
||||||
|
|
||||||
/// LocalRegisterAllocation Pass - This pass register allocates the input code a
|
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
|
||||||
/// basic block at a time, yielding code better than the simple register
|
/// and eliminates abstract frame references.
|
||||||
/// allocator, but not as good as a global allocator.
|
///
|
||||||
///
|
FunctionPass *createPrologEpilogCodeInserter();
|
||||||
FunctionPass *createLocalRegisterAllocator();
|
|
||||||
|
|
||||||
/// LinearScanRegisterAllocation Pass - This pass implements the
|
|
||||||
/// linear scan register allocation algorithm, a global register
|
|
||||||
/// allocator.
|
|
||||||
///
|
|
||||||
FunctionPass *createLinearScanRegisterAllocator();
|
|
||||||
|
|
||||||
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
|
|
||||||
/// and eliminates abstract frame references.
|
|
||||||
///
|
|
||||||
FunctionPass *createPrologEpilogCodeInserter();
|
|
||||||
|
|
||||||
/// getRegisterAllocator - This creates an instance of the register allocator
|
|
||||||
/// for the Sparc.
|
|
||||||
FunctionPass *getRegisterAllocator(TargetMachine &T);
|
|
||||||
|
|
||||||
|
/// MachineCodeDeletion Pass - This pass deletes all of the machine code for
|
||||||
|
/// the current function, which should happen after the function has been
|
||||||
|
/// emitted to a .s file or to memory.
|
||||||
|
FunctionPass *createMachineCodeDeleter();
|
||||||
|
|
||||||
|
/// getRegisterAllocator - This creates an instance of the register allocator
|
||||||
|
/// for the Sparc.
|
||||||
|
FunctionPass *getRegisterAllocator(TargetMachine &T);
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user