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 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);

View File

@ -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