From 3e200e6c3b22610ef27eb5364bb10a485b1e8e2c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 20 Dec 2003 10:18:58 +0000 Subject: [PATCH] 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 --- include/llvm/CodeGen/MachineFunction.h | 4 -- 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 2eb6fa798c5..4f255598d38 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 3aee4ce6946..409f900a137 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 -- 2.34.1