diff options
author | Chris Lattner <sabre@nondot.org> | 2002-10-29 22:37:54 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-10-29 22:37:54 +0000 |
commit | b4f68ed32ede4cf7d31ce9e516e4074dad0a24ee (patch) | |
tree | bb4d2d8830f9cb5d0904e93950221dbce528b873 /lib/Target/X86/X86.h | |
parent | c66583ef3b08abf73cd527d299d978e38a5254ef (diff) | |
download | llvm-b4f68ed32ede4cf7d31ce9e516e4074dad0a24ee.tar.gz llvm-b4f68ed32ede4cf7d31ce9e516e4074dad0a24ee.tar.bz2 llvm-b4f68ed32ede4cf7d31ce9e516e4074dad0a24ee.tar.xz |
Convert backend to use passes, implement X86TargetMachine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4421 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86.h')
-rw-r--r-- | lib/Target/X86/X86.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/lib/Target/X86/X86.h b/lib/Target/X86/X86.h index 5c5133ebf5..d94ec28f3e 100644 --- a/lib/Target/X86/X86.h +++ b/lib/Target/X86/X86.h @@ -11,34 +11,32 @@ #define TARGET_X86_H #include <iosfwd> -class MachineFunction; -class Function; class TargetMachine; +class Pass; -/// X86PrintCode - Print out the specified machine code function to the -/// specified stream. This function should work regardless of whether or not -/// the function is in SSA form or not. -/// -void X86PrintCode(const MachineFunction *MF, std::ostream &O); - -/// X86SimpleInstructionSelection - This function converts an LLVM function into -/// a machine code representation is a very simple peep-hole fashion. The +/// createSimpleX86InstructionSelector - This pass converts an LLVM function +/// into a machine code representation is a very simple peep-hole fashion. The /// generated code sucks but the implementation is nice and simple. /// -MachineFunction *X86SimpleInstructionSelection(Function &F, TargetMachine &TM); +Pass *createSimpleX86InstructionSelector(TargetMachine &TM); /// X86SimpleRegisterAllocation - This function converts the specified machine /// code function from SSA form to use explicit registers by spilling every /// register. Wow, great policy huh? /// -inline void X86SimpleRegisterAllocation(MachineFunction *MF) {} +Pass *createSimpleX86RegisterAllocator(TargetMachine &TM); + +/// createX86CodePrinterPass - Print out the specified machine code function to +/// the specified stream. This function should work regardless of whether or +/// not the function is in SSA form or not. +/// +Pass *createX86CodePrinterPass(TargetMachine &TM, std::ostream &O); /// X86EmitCodeToMemory - This function converts a register allocated function /// into raw machine code in a dynamically allocated chunk of memory. A pointer /// to the start of the function is returned. /// -inline void *X86EmitCodeToMemory(MachineFunction *MF) { return 0; } - +Pass *createEmitX86CodeToMemory(TargetMachine &TM); // Put symbolic names in a namespace to avoid causing these to clash with all // kinds of other things... |