Convert backend to use passes, implement X86TargetMachine


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4421 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86TargetMachine.h b/lib/Target/X86/X86TargetMachine.h
new file mode 100644
index 0000000..863eb60
--- /dev/null
+++ b/lib/Target/X86/X86TargetMachine.h
@@ -0,0 +1,32 @@
+//===-- X86TargetMachine.h - Define TargetMachine for the X86 ---*- C++ -*-===//
+// 
+// This file declares the X86 specific subclass of TargetMachine.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef X86TARGETMACHINE_H
+#define X86TARGETMACHINE_H
+
+#include "llvm/Target/TargetMachine.h"
+#include "X86InstrInfo.h"
+
+class X86TargetMachine : public TargetMachine {
+  X86InstrInfo instrInfo;
+public:
+  X86TargetMachine();
+
+  virtual const MachineInstrInfo &getInstrInfo() const { return instrInfo; }
+  virtual const MachineSchedInfo &getSchedInfo() const { abort(); }
+  virtual const MachineRegInfo   &getRegInfo()   const { abort(); }
+  virtual const MachineFrameInfo &getFrameInfo() const { abort(); }
+  virtual const MachineCacheInfo &getCacheInfo() const { abort(); }
+  virtual const MachineOptInfo   &getOptInfo()   const { abort(); }
+
+  /// 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.
+  ///
+  virtual bool addPassesToJITCompile(PassManager &PM);
+};
+
+#endif