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

@ -21,20 +21,24 @@ class FunctionPass;
class PassInfo; class PassInfo;
class TargetMachine; class TargetMachine;
// PHIElimination pass - This pass eliminates machine instruction PHI nodes by /// MachineFunctionPrinter pass - This pass prints out the machine function to
// inserting copy instructions. This destroys SSA information, but is the /// standard error, as a debugging tool.
// desired input for some register allocators. This pass is "required" by these FunctionPass *createMachineFunctionPrinterPass();
// register allocator like this: AU.addRequiredID(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; extern const PassInfo *PHIEliminationID;
// TwoAddressInstruction pass - This pass reduces two-address /// TwoAddressInstruction pass - This pass reduces two-address instructions to
// instructions to use two operands. This destroys SSA information but /// use two operands. This destroys SSA information but it is desired by
// it is desired by register allocators. /// register allocators.
extern const PassInfo *TwoAddressInstructionPassID; extern const PassInfo *TwoAddressInstructionPassID;
/// Creates a register allocator as the user specified on the command /// Creates a register allocator as the user specified on the command line.
/// line. ///
FunctionPass *createRegisterAllocator(); FunctionPass *createRegisterAllocator();
/// SimpleRegisterAllocation Pass - This pass converts the input machine code /// SimpleRegisterAllocation Pass - This pass converts the input machine code
@ -43,15 +47,14 @@ FunctionPass *createRegisterAllocator();
/// ///
FunctionPass *createSimpleRegisterAllocator(); FunctionPass *createSimpleRegisterAllocator();
/// LocalRegisterAllocation Pass - This pass register allocates the input code a /// LocalRegisterAllocation Pass - This pass register allocates the input code
/// basic block at a time, yielding code better than the simple register /// a basic block at a time, yielding code better than the simple register
/// allocator, but not as good as a global allocator. /// allocator, but not as good as a global allocator.
/// ///
FunctionPass *createLocalRegisterAllocator(); FunctionPass *createLocalRegisterAllocator();
/// LinearScanRegisterAllocation Pass - This pass implements the /// LinearScanRegisterAllocation Pass - This pass implements the linear scan
/// linear scan register allocation algorithm, a global register /// register allocation algorithm, a global register allocator.
/// allocator.
/// ///
FunctionPass *createLinearScanRegisterAllocator(); FunctionPass *createLinearScanRegisterAllocator();
@ -60,10 +63,14 @@ FunctionPass *createLinearScanRegisterAllocator();
/// ///
FunctionPass *createPrologEpilogCodeInserter(); 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 /// getRegisterAllocator - This creates an instance of the register allocator
/// for the Sparc. /// for the Sparc.
FunctionPass *getRegisterAllocator(TargetMachine &T); FunctionPass *getRegisterAllocator(TargetMachine &T);
} // End llvm namespace } // End llvm namespace
#endif #endif