LLVM  3.7.0
CPPTargetMachine.h
Go to the documentation of this file.
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"
20 
21 namespace llvm {
22 
23 class formatted_raw_ostream;
24 
26  CPPTargetMachine(const Target &T, const Triple &TT, StringRef CPU,
29  : TargetMachine(T, "", TT, CPU, FS, Options) {}
30 
31 public:
32  bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out,
33  CodeGenFileType FileType, bool DisableVerify,
34  AnalysisID StartBefore, AnalysisID StartAfter,
36  MachineFunctionInitializer *MFInitializer) override;
37 };
38 
39 extern Target TheCppBackendTarget;
40 
41 } // End llvm namespace
42 
43 
44 #endif
bool addPassesToEmitFile(PassManagerBase &PM, raw_pwrite_stream &Out, CodeGenFileType FileType, bool DisableVerify, AnalysisID StartBefore, AnalysisID StartAfter, AnalysisID StopAfter, MachineFunctionInitializer *MFInitializer) override
Add passes to the specified pass manager to get the specified file emitted.
Target TheCppBackendTarget
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:44
CPPTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
Target - Wrapper for Target specific information.
cl::opt< std::string > StopAfter("stop-after", cl::desc("Stop compilation after a specific pass"), cl::value_desc("pass-name"), cl::init(""))
cl::opt< std::string > StartAfter("start-after", cl::desc("Resume compilation after a specific pass"), cl::value_desc("pass-name"), cl::init(""))
cl::opt< TargetMachine::CodeGenFileType > FileType("filetype", cl::init(TargetMachine::CGFT_AssemblyFile), cl::desc("Choose a file type (not all types are supported by all targets):"), cl::values(clEnumValN(TargetMachine::CGFT_AssemblyFile,"asm","Emit an assembly ('.s') file"), clEnumValN(TargetMachine::CGFT_ObjectFile,"obj","Emit a native object ('.o') file"), clEnumValN(TargetMachine::CGFT_Null,"null","Emit nothing, for performance testing"), clEnumValEnd))
const void * AnalysisID
Definition: Pass.h:47
An abstract base class for streams implementations that also support a pwrite operation.
Definition: raw_ostream.h:321
Primary interface to the complete machine description for the target machine.
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:40
This interface provides a way to initialize machine functions after they are created by the machine f...
CodeGenFileType
These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit...