LLVM API Documentation
#include <TargetMachine.h>
Public Member Functions | |
virtual void | addAnalysisPasses (PassManagerBase &PM) |
Register analysis passes for this target with a pass manager. More... | |
virtual TargetPassConfig * | createPassConfig (PassManagerBase &PM) |
virtual bool | addPassesToEmitFile (PassManagerBase &PM, formatted_raw_ostream &Out, CodeGenFileType FileType, bool DisableVerify=true, AnalysisID StartAfter=0, AnalysisID StopAfter=0) |
virtual bool | addPassesToEmitMachineCode (PassManagerBase &PM, JITCodeEmitter &MCE, bool DisableVerify=true) |
virtual bool | addPassesToEmitMC (PassManagerBase &PM, MCContext *&Ctx, raw_ostream &OS, bool DisableVerify=true) |
virtual bool | addCodeEmitter (PassManagerBase &, JITCodeEmitter &) |
![]() | |
virtual | ~TargetMachine () |
const Target & | getTarget () const |
const StringRef | getTargetTriple () const |
const StringRef | getTargetCPU () const |
const StringRef | getTargetFeatureString () const |
virtual const TargetSubtargetInfo * | getSubtargetImpl () const |
void | resetTargetOptions (const MachineFunction *MF) const |
Reset the target options based on the function's attributes. More... | |
virtual const TargetInstrInfo * | getInstrInfo () const |
virtual const TargetFrameLowering * | getFrameLowering () const |
virtual const TargetLowering * | getTargetLowering () const |
virtual const TargetSelectionDAGInfo * | getSelectionDAGInfo () const |
virtual const DataLayout * | getDataLayout () const |
const MCAsmInfo * | getMCAsmInfo () const |
template<typename STC > | |
const STC & | getSubtarget () const |
virtual const TargetRegisterInfo * | getRegisterInfo () const |
virtual const TargetIntrinsicInfo * | getIntrinsicInfo () const |
virtual TargetJITInfo * | getJITInfo () |
virtual const InstrItineraryData * | getInstrItineraryData () const |
bool | hasMCRelaxAll () const |
void | setMCRelaxAll (bool Value) |
bool | hasMCSaveTempLabels () const |
void | setMCSaveTempLabels (bool Value) |
bool | hasMCNoExecStack () const |
hasMCNoExecStack - Check whether an executable stack is not needed. More... | |
void | setMCNoExecStack (bool Value) |
setMCNoExecStack - Set whether an executabel stack is not needed. More... | |
bool | hasMCUseLoc () const |
hasMCUseLoc - Check whether we should use dwarf's .loc directive. More... | |
void | setMCUseLoc (bool Value) |
setMCUseLoc - Set whether all we should use dwarf's .loc directive. More... | |
bool | hasMCUseCFI () const |
hasMCUseCFI - Check whether we should use dwarf's .cfi_* directives. More... | |
void | setMCUseCFI (bool Value) |
setMCUseCFI - Set whether all we should use dwarf's .cfi_* directives. More... | |
bool | hasMCUseDwarfDirectory () const |
void | setMCUseDwarfDirectory (bool Value) |
Reloc::Model | getRelocationModel () const |
CodeModel::Model | getCodeModel () const |
TLSModel::Model | getTLSModel (const GlobalValue *GV) const |
CodeGenOpt::Level | getOptLevel () const |
void | setOptLevel (CodeGenOpt::Level Level) const |
Overrides the optimization level. More... | |
void | setFastISel (bool Enable) |
bool | shouldPrintMachineCode () const |
Protected Member Functions | |
LLVMTargetMachine (const Target &T, StringRef TargetTriple, StringRef CPU, StringRef FS, TargetOptions Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL) | |
void | initAsmInfo () |
![]() | |
TargetMachine (const Target &T, StringRef TargetTriple, StringRef CPU, StringRef FS, const TargetOptions &Options) | |
LLVMTargetMachine - This class describes a target machine that is implemented with the LLVM target-independent code generator.
Definition at line 300 of file Target/TargetMachine.h.
|
protected |
Definition at line 76 of file LLVMTargetMachine.cpp.
References llvm::TargetMachine::CodeGenInfo, and llvm::Target::createMCCodeGenInfo().
|
virtual |
Register analysis passes for this target with a pass manager.
This registers target independent analysis passes.
Reimplemented from llvm::TargetMachine.
Reimplemented in llvm::PPCTargetMachine, llvm::X86TargetMachine, llvm::AMDGPUTargetMachine, llvm::XCoreTargetMachine, llvm::MipsTargetMachine, and llvm::ARMBaseTargetMachine.
Definition at line 85 of file LLVMTargetMachine.cpp.
References llvm::createBasicTargetTransformInfoPass().
Referenced by llvm::MipsTargetMachine::addAnalysisPasses().
|
inlinevirtual |
addCodeEmitter - This pass should be overridden by the target to add a code emitter, if supported. If this is not supported, 'true' should be returned.
Reimplemented in llvm::MipsTargetMachine, llvm::X86TargetMachine, llvm::PPCTargetMachine, llvm::SparcTargetMachine, and llvm::ARMBaseTargetMachine.
Definition at line 351 of file Target/TargetMachine.h.
Referenced by addPassesToEmitMachineCode().
|
virtual |
addPassesToEmitFile - Add passes to the specified pass manager to get the specified file emitted. Typically this will involve several steps of code generation.
Reimplemented from llvm::TargetMachine.
Definition at line 139 of file LLVMTargetMachine.cpp.
References addPassesToGenerateCode(), llvm::TargetMachine::CGFT_AssemblyFile, llvm::TargetMachine::CGFT_Null, llvm::TargetMachine::CGFT_ObjectFile, llvm::Target::createAsmPrinter(), llvm::Target::createAsmStreamer(), llvm::Target::createMCAsmBackend(), llvm::Target::createMCCodeEmitter(), llvm::Target::createMCInstPrinter(), llvm::createNullStreamer(), llvm::createPrintModulePass(), llvm::MCAsmInfo::getAssemblerDialect(), llvm::TargetMachine::getInstrInfo(), llvm::TargetMachine::getMCAsmInfo(), llvm::TargetMachine::getRegisterInfo(), llvm::TargetMachine::getTarget(), llvm::TargetMachine::getTargetTriple(), getVerboseAsm(), llvm::TargetMachine::hasMCNoExecStack(), llvm::TargetMachine::hasMCRelaxAll(), llvm::TargetMachine::hasMCSaveTempLabels(), llvm::TargetMachine::hasMCUseCFI(), llvm::TargetMachine::hasMCUseDwarfDirectory(), llvm::TargetMachine::hasMCUseLoc(), MII, MRI, Printer, llvm::MCAsmBackend::reset(), llvm::MCStreamer::reset(), llvm::MCContext::setAllowTemporaryLabels(), ShowMCEncoding, ShowMCInst, and llvm::TargetMachine::TargetCPU.
|
virtual |
addPassesToEmitMachineCode - Add passes to the specified pass manager to get machine code emitted. This uses a JITCodeEmitter object to handle actually outputting the machine code and resolving things like the address of functions. This method returns true if machine code emission is not supported.
addPassesToEmitMachineCode - Add passes to the specified pass manager to get machine code emitted. This uses a JITCodeEmitter object to handle actually outputting the machine code and resolving things like the address of functions. This method should return true if machine code emission is not supported.
Reimplemented from llvm::TargetMachine.
Reimplemented in llvm::NVPTXTargetMachine.
Definition at line 237 of file LLVMTargetMachine.cpp.
References addCodeEmitter(), and addPassesToGenerateCode().
|
virtual |
addPassesToEmitMC - Add passes to the specified pass manager to get machine code emitted with the MCJIT. This method returns true if machine code is not supported. It fills the MCContext Ctx pointer which can be used to build custom MCStreamer.
Reimplemented from llvm::TargetMachine.
Reimplemented in llvm::NVPTXTargetMachine.
Definition at line 255 of file LLVMTargetMachine.cpp.
References addPassesToGenerateCode(), llvm::Target::createAsmPrinter(), llvm::Target::createMCAsmBackend(), llvm::Target::createMCCodeEmitter(), llvm::OwningPtr< T >::get(), llvm::TargetMachine::getInstrInfo(), llvm::TargetMachine::getRegisterInfo(), llvm::TargetMachine::getTarget(), llvm::TargetMachine::getTargetTriple(), llvm::TargetMachine::hasMCNoExecStack(), llvm::TargetMachine::hasMCRelaxAll(), llvm::TargetMachine::hasMCSaveTempLabels(), llvm::MCStreamer::InitSections(), MRI, Printer, llvm::OwningPtr< T >::reset(), llvm::MCContext::setAllowTemporaryLabels(), llvm::OwningPtr< T >::take(), and llvm::TargetMachine::TargetCPU.
|
virtual |
createPassConfig - Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.
createPassConfig - Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.
Targets may override this to extend TargetPassConfig.
Reimplemented in llvm::MipsTargetMachine, llvm::NVPTXTargetMachine, llvm::HexagonTargetMachine, llvm::X86TargetMachine, llvm::SystemZTargetMachine, llvm::PPCTargetMachine, llvm::AArch64TargetMachine, llvm::MSP430TargetMachine, llvm::AMDGPUTargetMachine, llvm::SparcTargetMachine, llvm::ARMBaseTargetMachine, and llvm::XCoreTargetMachine.
Definition at line 257 of file Passes.cpp.
Referenced by addPassesToGenerateCode().
|
protected |
Definition at line 65 of file LLVMTargetMachine.cpp.
References llvm::TargetMachine::AsmInfo, llvm::Target::createMCAsmInfo(), llvm::TargetMachine::getRegisterInfo(), llvm::TargetMachine::TargetTriple, and llvm::TargetMachine::TheTarget.
Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine(), llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), llvm::ARMTargetMachine::ARMTargetMachine(), llvm::HexagonTargetMachine::HexagonTargetMachine(), llvm::MipsTargetMachine::MipsTargetMachine(), llvm::MSP430TargetMachine::MSP430TargetMachine(), llvm::NVPTXTargetMachine::NVPTXTargetMachine(), llvm::PPCTargetMachine::PPCTargetMachine(), llvm::SparcTargetMachine::SparcTargetMachine(), llvm::SystemZTargetMachine::SystemZTargetMachine(), llvm::ThumbTargetMachine::ThumbTargetMachine(), llvm::X86_32TargetMachine::X86_32TargetMachine(), llvm::X86_64TargetMachine::X86_64TargetMachine(), and llvm::XCoreTargetMachine::XCoreTargetMachine().