lib/Target/X86/X86TargetMachine.{cpp,h}: Add initial version
authorBrian Gaeke <gaeke@uiuc.edu>
Wed, 18 Jun 2003 21:43:21 +0000 (21:43 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Wed, 18 Jun 2003 21:43:21 +0000 (21:43 +0000)
 (non-working) of llc guts for X86, and add a prototype for it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6779 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86TargetMachine.cpp
lib/Target/X86/X86TargetMachine.h

index d5a628cb67085958998b75ca7582bd4843a5a090..1673fffd0c1e29efebf4c109d53af47980d3496a 100644 (file)
@@ -41,6 +41,19 @@ X86TargetMachine::X86TargetMachine(unsigned Config)
   FrameInfo(TargetFrameInfo::StackGrowsDown, 8/*16 for SSE*/, 4) {
 }
 
+// llc backend for x86
+bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM,
+                                              std::ostream &Out) {
+  PM.add(createLowerSwitchPass());
+  PM.add(createSimpleX86InstructionSelector(*this));
+  PM.add(createLocalRegisterAllocator());
+  PM.add(createX86FloatingPointStackifierPass());
+  PM.add(createPrologEpilogCodeInserter());
+  PM.add(createX86PeepholeOptimizerPass());
+  PM.add(createX86CodePrinterPass(Out));
+  return false; // success!
+}
+
 /// addPassesToJITCompile - Add passes to the specified pass manager to
 /// implement a fast dynamic compiler for this target.  Return true if this is
 /// not supported for this target.
index 35a3b6a42853559fabf9d3336b5de2bc81902ff1..0b2981d38098e2a3b918f2fd5e42ddb8c33ab45a 100644 (file)
@@ -42,6 +42,8 @@ public:
   ///
   virtual bool addPassesToEmitMachineCode(PassManager &PM,
                                           MachineCodeEmitter &MCE);
+  
+  virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
 };
 
 #endif