1//===-- CPPTargetMachine.h - TargetMachine for the C++ backend --*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file declares the TargetMachine that is used by the C++ backend.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_LIB_TARGET_CPPBACKEND_CPPTARGETMACHINE_H
15#define LLVM_LIB_TARGET_CPPBACKEND_CPPTARGETMACHINE_H
16
17#include "llvm/IR/DataLayout.h"
18#include "llvm/Target/TargetMachine.h"
19#include "llvm/Target/TargetSubtargetInfo.h"
20
21namespace llvm {
22
23class formatted_raw_ostream;
24
25struct CPPTargetMachine : public TargetMachine {
26  CPPTargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS,
27                   const TargetOptions &Options, Reloc::Model RM,
28                   CodeModel::Model CM, CodeGenOpt::Level OL)
29      : TargetMachine(T, "", TT, CPU, FS, Options) {}
30
31public:
32  bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out,
33                           CodeGenFileType FileType, bool DisableVerify,
34                           AnalysisID StartAfter,
35                           AnalysisID StopAfter) override;
36};
37
38extern Target TheCppBackendTarget;
39
40} // End llvm namespace
41
42
43#endif
44