LLVM API Documentation
#include <TargetMachine.h>


Public Member Functions | |
| virtual void | addAnalysisPasses (PassManagerBase &PM) |
| Register analysis passes for this target with a pass manager. | |
| 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 &) |
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 () |
LLVMTargetMachine - This class describes a target machine that is implemented with the LLVM target-independent code generator.
Definition at line 291 of file Target/TargetMachine.h.
| LLVMTargetMachine::LLVMTargetMachine | ( | const Target & | T, |
| StringRef | TargetTriple, | ||
| StringRef | CPU, | ||
| StringRef | FS, | ||
| TargetOptions | Options, | ||
| Reloc::Model | RM, | ||
| CodeModel::Model | CM, | ||
| CodeGenOpt::Level | OL | ||
| ) | [protected] |
Definition at line 76 of file LLVMTargetMachine.cpp.
References llvm::TargetMachine::CodeGenInfo, and llvm::Target::createMCCodeGenInfo().
| void LLVMTargetMachine::addAnalysisPasses | ( | PassManagerBase & | PM | ) | [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::ARMBaseTargetMachine, and llvm::MipsTargetMachine.
Definition at line 85 of file LLVMTargetMachine.cpp.
References llvm::PassManagerBase::add(), llvm::createBasicTargetTransformInfoPass(), and llvm::TargetMachine::getTargetLowering().
| virtual bool llvm::LLVMTargetMachine::addCodeEmitter | ( | PassManagerBase & | , |
| JITCodeEmitter & | |||
| ) | [inline, virtual] |
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, and llvm::ARMBaseTargetMachine.
Definition at line 342 of file Target/TargetMachine.h.
Referenced by addPassesToEmitMachineCode().
| bool LLVMTargetMachine::addPassesToEmitFile | ( | PassManagerBase & | PM, |
| formatted_raw_ostream & | Out, | ||
| CodeGenFileType | FileType, | ||
| bool | DisableVerify = true, |
||
| AnalysisID | StartAfter = 0, |
||
| AnalysisID | StopAfter = 0 |
||
| ) | [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 140 of file LLVMTargetMachine.cpp.
References llvm::PassManagerBase::add(), 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(), Printer, llvm::MCAsmBackend::reset(), llvm::MCStreamer::reset(), llvm::MCContext::setAllowTemporaryLabels(), ShowMCEncoding, ShowMCInst, and llvm::TargetMachine::TargetCPU.
| bool LLVMTargetMachine::addPassesToEmitMachineCode | ( | PassManagerBase & | PM, |
| JITCodeEmitter & | JCE, | ||
| bool | DisableVerify = true |
||
| ) | [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 returns true if machine code emission is not supported.
Reimplemented from llvm::TargetMachine.
Reimplemented in llvm::NVPTXTargetMachine.
Definition at line 239 of file LLVMTargetMachine.cpp.
References addCodeEmitter(), and addPassesToGenerateCode().
| bool LLVMTargetMachine::addPassesToEmitMC | ( | PassManagerBase & | PM, |
| MCContext *& | Ctx, | ||
| raw_ostream & | Out, | ||
| bool | DisableVerify = true |
||
| ) | [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 257 of file LLVMTargetMachine.cpp.
References llvm::PassManagerBase::add(), 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(), Printer, llvm::OwningPtr< T >::reset(), llvm::MCContext::setAllowTemporaryLabels(), llvm::OwningPtr< T >::take(), and llvm::TargetMachine::TargetCPU.
| TargetPassConfig * LLVMTargetMachine::createPassConfig | ( | PassManagerBase & | PM | ) | [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::MBlazeTargetMachine, llvm::X86TargetMachine, llvm::SystemZTargetMachine, llvm::PPCTargetMachine, llvm::AArch64TargetMachine, llvm::MSP430TargetMachine, llvm::AMDGPUTargetMachine, llvm::ARMBaseTargetMachine, llvm::XCoreTargetMachine, and llvm::SparcTargetMachine.
Definition at line 259 of file Passes.cpp.
Referenced by addPassesToGenerateCode().
| void LLVMTargetMachine::initAsmInfo | ( | ) | [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::MBlazeTargetMachine::MBlazeTargetMachine(), 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().