llvm.org GIT mirror llvm / 3e200e6
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 Chris Lattner 16 years ago
2 changed file(s) with 48 addition(s) and 45 deletion(s). Raw diff Collapse all Expand all
2525
2626 class Function;
2727 class TargetMachine;
28 class FunctionPass;
2928 class SSARegMap;
3029 class MachineFunctionInfo;
3130 class MachineFrameInfo;
3231 class MachineConstantPool;
33
34 FunctionPass *createMachineFunctionPrinterPass();
3532
3633 class MachineFunction : private Annotation {
3734 const Function *Fn;
10299 // get() -- Returns a handle to the object.
103100 // This should not be called before "construct()"
104101 // for a given Method.
105 // destruct() -- Destroy the MachineFunction object
106102 //
107103 static MachineFunction& construct(const Function *F, const TargetMachine &TM);
108104 static void destruct(const Function *F);
1616
1717 namespace llvm {
1818
19 class FunctionPass;
20 class PassInfo;
21 class TargetMachine;
19 class FunctionPass;
20 class PassInfo;
21 class TargetMachine;
22
23 /// MachineFunctionPrinter pass - This pass prints out the machine function to
24 /// standard error, as a debugging tool.
25 FunctionPass *createMachineFunctionPrinterPass();
26
27 /// PHIElimination pass - This pass eliminates machine instruction PHI nodes
28 /// by inserting copy instructions. This destroys SSA information, but is the
29 /// desired input for some register allocators. This pass is "required" by
30 /// these register allocator like this: AU.addRequiredID(PHIEliminationID);
31 ///
32 extern const PassInfo *PHIEliminationID;
2233
23 // PHIElimination pass - This pass eliminates machine instruction PHI nodes by
24 // inserting copy instructions. This destroys SSA information, but is the
25 // desired input for some register allocators. This pass is "required" by these
26 // register allocator like this: AU.addRequiredID(PHIEliminationID);
27 //
28 extern const PassInfo *PHIEliminationID;
34 /// TwoAddressInstruction pass - This pass reduces two-address instructions to
35 /// use two operands. This destroys SSA information but it is desired by
36 /// register allocators.
37 extern const PassInfo *TwoAddressInstructionPassID;
2938
30 // TwoAddressInstruction pass - This pass reduces two-address
31 // instructions to use two operands. This destroys SSA information but
32 // it is desired by register allocators.
33 extern const PassInfo *TwoAddressInstructionPassID;
39 /// Creates a register allocator as the user specified on the command line.
40 ///
41 FunctionPass *createRegisterAllocator();
3442
35 /// Creates a register allocator as the user specified on the command
36 /// line.
37 FunctionPass *createRegisterAllocator();
43 /// SimpleRegisterAllocation Pass - This pass converts the input machine code
44 /// from SSA form to use explicit registers by spilling every register. Wow,
45 /// great policy huh?
46 ///
47 FunctionPass *createSimpleRegisterAllocator();
3848
39 /// SimpleRegisterAllocation Pass - This pass converts the input machine code
40 /// from SSA form to use explicit registers by spilling every register. Wow,
41 /// great policy huh?
42 ///
43 FunctionPass *createSimpleRegisterAllocator();
49 /// LocalRegisterAllocation Pass - This pass register allocates the input code
50 /// a basic block at a time, yielding code better than the simple register
51 /// allocator, but not as good as a global allocator.
52 ///
53 FunctionPass *createLocalRegisterAllocator();
54
55 /// LinearScanRegisterAllocation Pass - This pass implements the linear scan
56 /// register allocation algorithm, a global register allocator.
57 ///
58 FunctionPass *createLinearScanRegisterAllocator();
4459
45 /// LocalRegisterAllocation Pass - This pass register allocates the input code a
46 /// basic block at a time, yielding code better than the simple register
47 /// allocator, but not as good as a global allocator.
48 ///
49 FunctionPass *createLocalRegisterAllocator();
60 /// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
61 /// and eliminates abstract frame references.
62 ///
63 FunctionPass *createPrologEpilogCodeInserter();
5064
51 /// LinearScanRegisterAllocation Pass - This pass implements the
52 /// linear scan register allocation algorithm, a global register
53 /// allocator.
54 ///
55 FunctionPass *createLinearScanRegisterAllocator();
56
57 /// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
58 /// and eliminates abstract frame references.
59 ///
60 FunctionPass *createPrologEpilogCodeInserter();
61
62 /// getRegisterAllocator - This creates an instance of the register allocator
63 /// for the Sparc.
64 FunctionPass *getRegisterAllocator(TargetMachine &T);
65
65 /// MachineCodeDeletion Pass - This pass deletes all of the machine code for
66 /// the current function, which should happen after the function has been
67 /// emitted to a .s file or to memory.
68 FunctionPass *createMachineCodeDeleter();
69
70 /// getRegisterAllocator - This creates an instance of the register allocator
71 /// for the Sparc.
72 FunctionPass *getRegisterAllocator(TargetMachine &T);
6673 } // End llvm namespace
6774
6875 #endif