LLVM
17.0.0git
|
A utility class for building TargetMachines for JITs. More...
#include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"
Static Public Member Functions | |
static Expected< JITTargetMachineBuilder > | detectHost () |
Create a JITTargetMachineBuilder for the host system. More... | |
Friends | |
class | JITTargetMachineBuilderPrinter |
A utility class for building TargetMachines for JITs.
Definition at line 34 of file JITTargetMachineBuilder.h.
llvm::orc::JITTargetMachineBuilder::JITTargetMachineBuilder | ( | Triple | TT | ) |
Create a JITTargetMachineBuilder based on the given triple.
Note: TargetOptions is default-constructed, then EmulatedTLS and ExplicitEmulatedTLS are set to true. If EmulatedTLS is not required, these values should be reset before calling createTargetMachine.
Definition at line 18 of file JITTargetMachineBuilder.cpp.
References llvm::TargetOptions::EmulatedTLS, llvm::TargetOptions::ExplicitEmulatedTLS, and llvm::TargetOptions::UseInitArray.
JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::addFeatures | ( | const std::vector< std::string > & | FeatureVec | ) |
Add subtarget features.
Definition at line 65 of file JITTargetMachineBuilder.cpp.
References llvm::SubtargetFeatures::AddFeature(), and F.
Expected< std::unique_ptr< TargetMachine > > llvm::orc::JITTargetMachineBuilder::createTargetMachine | ( | ) |
Create a TargetMachine.
This operation will fail if the requested target is not registered, in which case see llvm/Support/TargetSelect.h. To JIT IR the Target and the target's AsmPrinter must both be registered. To JIT assembly (including inline and module level assembly) the target's AsmParser must also be registered.
Definition at line 44 of file JITTargetMachineBuilder.cpp.
References llvm::SubtargetFeatures::getString(), llvm::Triple::getTriple(), llvm::inconvertibleErrorCode(), llvm::TargetRegistry::lookupTarget(), move, and TM.
Referenced by llvm::orc::LLJIT::createCompileFunction(), getDefaultDataLayoutForTarget(), and llvm::orc::ConcurrentIRCompiler::operator()().
|
static |
Create a JITTargetMachineBuilder for the host system.
Note: TargetOptions is default-constructed, then EmulatedTLS and ExplicitEmulatedTLS are set to true. If EmulatedTLS is not required, these values should be reset before calling createTargetMachine.
Definition at line 25 of file JITTargetMachineBuilder.cpp.
References llvm::SubtargetFeatures::AddFeature(), llvm::FeatureMap, getFeatures(), llvm::sys::getHostCPUFeatures(), llvm::sys::getHostCPUName(), llvm::sys::getProcessTriple(), and setCPU().
Referenced by LLVMOrcJITTargetMachineBuilderDetectHost(), and llvm::orc::LLJITBuilderState::prepareForConstruction().
|
inline |
Get the code model.
Definition at line 101 of file JITTargetMachineBuilder.h.
|
inline |
Returns the CPU string.
Definition at line 83 of file JITTargetMachineBuilder.h.
|
inline |
Get the default DataLayout for the target.
Note: This is reasonably expensive, as it creates a temporary TargetMachine instance under the hood. It is only suitable for use during JIT setup.
Definition at line 69 of file JITTargetMachineBuilder.h.
References createTargetMachine(), and TM.
|
inline |
Access subtarget features.
Definition at line 120 of file JITTargetMachineBuilder.h.
Referenced by detectHost().
|
inline |
Access subtarget features.
Definition at line 123 of file JITTargetMachineBuilder.h.
|
inline |
|
inline |
|
inline |
Get the relocation model.
Definition at line 92 of file JITTargetMachineBuilder.h.
References llvm::AArch64::RM.
|
inline |
Access Triple.
Definition at line 143 of file JITTargetMachineBuilder.h.
Access Triple.
Definition at line 146 of file JITTargetMachineBuilder.h.
|
inline |
Set the LLVM CodeGen optimization level.
Definition at line 104 of file JITTargetMachineBuilder.h.
|
inline |
|
inline |
Set the CPU string.
Definition at line 77 of file JITTargetMachineBuilder.h.
References move.
Referenced by detectHost().
|
inline |
Set subtarget features.
Definition at line 110 of file JITTargetMachineBuilder.h.
|
inline |
Set TargetOptions.
Note: This operation will overwrite any previously configured options, including EmulatedTLS, ExplicitEmulatedTLS, and UseInitArray which the JITTargetMachineBuilder sets by default. Clients are responsible for re-enabling these overwritten options.
Definition at line 131 of file JITTargetMachineBuilder.h.
|
inline |
Set the relocation model.
Definition at line 86 of file JITTargetMachineBuilder.h.
References move, and llvm::AArch64::RM.
|
friend |
Definition at line 36 of file JITTargetMachineBuilder.h.