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:
Chris Lattner 2003-12-20 10:18:58 +00:00
parent 9068574a29
commit 3e200e6c3b
2 changed files with 48 additions and 45 deletions

View File

@ -26,14 +26,11 @@ namespace llvm {
class Function;
class TargetMachine;
class FunctionPass;
class SSARegMap;
class MachineFunctionInfo;
class MachineFrameInfo;
class MachineConstantPool;
FunctionPass *createMachineFunctionPrinterPass();
class MachineFunction : private Annotation {
const Function *Fn;
const TargetMachine &Target;
@ -103,7 +100,6 @@ public:
// get() -- Returns a handle to the object.
// This should not be called before "construct()"
// for a given Method.
// destruct() -- Destroy the MachineFunction object
//
static MachineFunction& construct(const Function *F, const TargetMachine &TM);
static void destruct(const Function *F);

View File

@ -17,53 +17,60 @@
namespace llvm {
class FunctionPass;
class PassInfo;
class TargetMachine;
class FunctionPass;
class PassInfo;
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
// 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;
/// TwoAddressInstruction pass - This pass reduces two-address instructions to
/// use two operands. This destroys SSA information but it is desired by
/// register allocators.
extern const PassInfo *TwoAddressInstructionPassID;
// TwoAddressInstruction pass - This pass reduces two-address
// instructions to use two operands. This destroys SSA information but
// it is desired by register allocators.
extern const PassInfo *TwoAddressInstructionPassID;
/// Creates a register allocator as the user specified on the command line.
///
FunctionPass *createRegisterAllocator();
/// Creates a register allocator as the user specified on the command
/// line.
FunctionPass *createRegisterAllocator();
/// SimpleRegisterAllocation Pass - This pass converts the input machine code
/// from SSA form to use explicit registers by spilling every register. Wow,
/// great policy huh?
///
FunctionPass *createSimpleRegisterAllocator();
/// SimpleRegisterAllocation Pass - This pass converts the input machine code
/// from SSA form to use explicit registers by spilling every register. Wow,
/// great policy huh?
///
FunctionPass *createSimpleRegisterAllocator();
/// LocalRegisterAllocation Pass - This pass register allocates the input code
/// a basic block at a time, yielding code better than the simple register
/// allocator, but not as good as a global allocator.
///
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
/// basic block at a time, yielding code better than the simple register
/// allocator, but not as good as a global allocator.
///
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);
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
/// and eliminates abstract frame references.
///
FunctionPass *createPrologEpilogCodeInserter();
/// 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
#endif