- Move CodeModel from a TargetMachine global option to MCCodeGenInfo.
[oota-llvm.git] / lib / Target / CBackend / CTargetMachine.h
index dba714d2ff9b4f493d71d30fade1183f7d5cd03b..4f1ca974ded95ea8cabbbec9fb74384fa0a5906c 100644 (file)
@@ -1,12 +1,12 @@
 //===-- CTargetMachine.h - TargetMachine for the C backend ------*- C++ -*-===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
 //===----------------------------------------------------------------------===//
-// 
+//
 // This file declares the TargetMachine that is used by the C backend.
 //
 //===----------------------------------------------------------------------===//
 #define CTARGETMACHINE_H
 
 #include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetData.h"
 
 namespace llvm {
-class IntrinsicLowering;
 
 struct CTargetMachine : public TargetMachine {
-  CTargetMachine(const Module &M, IntrinsicLowering *IL) :
-    TargetMachine("CBackend", IL) {}
-
-  virtual const TargetInstrInfo &getInstrInfo() const { abort(); }
-  virtual const TargetFrameInfo &getFrameInfo() const { abort(); }
-  virtual const TargetSchedInfo &getSchedInfo() const { abort(); }
-  virtual const TargetRegInfo   &getRegInfo()   const { abort(); }
-
-  // This is the only thing that actually does anything here.
-  virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
+  CTargetMachine(const Target &T, StringRef TT,
+                 StringRef CPU, StringRef FS,
+                 Reloc::Model RM, CodeModel::Model CM)
+    : TargetMachine(T, TT, CPU, FS) {}
+
+  virtual bool addPassesToEmitFile(PassManagerBase &PM,
+                                   formatted_raw_ostream &Out,
+                                   CodeGenFileType FileType,
+                                   CodeGenOpt::Level OptLevel,
+                                   bool DisableVerify);
+  
+  virtual const TargetData *getTargetData() const { return 0; }
 };
 
+extern Target TheCBackendTarget;
+
 } // End llvm namespace