diff options
author | Chris Lattner <sabre@nondot.org> | 2003-12-20 10:18:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-12-20 10:18:58 +0000 |
commit | 3e200e6c3b22610ef27eb5364bb10a485b1e8e2c (patch) | |
tree | 33663e602306c8d896e538d39ed30f74c9af625b /include | |
parent | 9068574a290235ba5d4d6b6619b5d5527e1bad2c (diff) | |
download | external_llvm-3e200e6c3b22610ef27eb5364bb10a485b1e8e2c.zip external_llvm-3e200e6c3b22610ef27eb5364bb10a485b1e8e2c.tar.gz external_llvm-3e200e6c3b22610ef27eb5364bb10a485b1e8e2c.tar.bz2 |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/MachineFunction.h | 4 | ||||
-rw-r--r-- | include/llvm/CodeGen/Passes.h | 89 |
2 files changed, 48 insertions, 45 deletions
diff --git a/include/llvm/CodeGen/MachineFunction.h b/include/llvm/CodeGen/MachineFunction.h index 2eb6fa7..4f25559 100644 --- a/include/llvm/CodeGen/MachineFunction.h +++ b/include/llvm/CodeGen/MachineFunction.h @@ -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); diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h index 3aee4ce..409f900 100644 --- a/include/llvm/CodeGen/Passes.h +++ b/include/llvm/CodeGen/Passes.h @@ -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; - -/// 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(); + /// 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; -/// 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(); + /// Creates a register allocator as the user specified on the command line. + /// + FunctionPass *createRegisterAllocator(); -/// LinearScanRegisterAllocation Pass - This pass implements the -/// linear scan register allocation algorithm, a global register -/// allocator. -/// -FunctionPass *createLinearScanRegisterAllocator(); + /// 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(); -/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code, -/// and eliminates abstract frame references. -/// -FunctionPass *createPrologEpilogCodeInserter(); + /// 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(); -/// 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 |