//===-- 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