class JITTargetMachineBuilder
Declaration
class JITTargetMachineBuilder { /* full declaration omitted */ };
Description
A utility class for building TargetMachines for JITs.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:34
Member Variables
- private llvm::Triple TT
- private std::string CPU
- private llvm::SubtargetFeatures Features
- private llvm::TargetOptions Options
- private Optional<Reloc::Model> RM
- private Optional<CodeModel::Model> CM
- private CodeGenOpt::Level OptLevel = CodeGenOpt::Default
Method Overview
- public JITTargetMachineBuilder(llvm::Triple TT)
- public llvm::orc::JITTargetMachineBuilder & addFeatures(const std::vector<std::string> & FeatureVec)
- public Expected<std::unique_ptr<TargetMachine>> createTargetMachine()
- public static Expected<llvm::orc::JITTargetMachineBuilder> detectHost()
- public const std::string & getCPU() const
- public const Optional<CodeModel::Model> & getCodeModel() const
- public Expected<llvm::DataLayout> getDefaultDataLayoutForTarget()
- public const llvm::SubtargetFeatures & getFeatures() const
- public llvm::SubtargetFeatures & getFeatures()
- public const llvm::TargetOptions & getOptions() const
- public llvm::TargetOptions & getOptions()
- public const Optional<Reloc::Model> & getRelocationModel() const
- public const llvm::Triple & getTargetTriple() const
- public llvm::Triple & getTargetTriple()
- public llvm::orc::JITTargetMachineBuilder & setCPU(std::string CPU)
- public llvm::orc::JITTargetMachineBuilder & setCodeGenOptLevel(CodeGenOpt::Level OptLevel)
- public llvm::orc::JITTargetMachineBuilder & setCodeModel(Optional<CodeModel::Model> CM)
- public llvm::orc::JITTargetMachineBuilder & setFeatures(llvm::StringRef FeatureString)
- public llvm::orc::JITTargetMachineBuilder & setOptions(llvm::TargetOptions Options)
- public llvm::orc::JITTargetMachineBuilder & setRelocationModel(Optional<Reloc::Model> RM)
Methods
¶JITTargetMachineBuilder(llvm::Triple TT)
JITTargetMachineBuilder(llvm::Triple TT)
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:45
Parameters
- llvm::Triple TT
¶llvm::orc::JITTargetMachineBuilder& addFeatures(
const std::vector<std::string>& FeatureVec)
llvm::orc::JITTargetMachineBuilder& addFeatures(
const std::vector<std::string>& FeatureVec)
Description
Add subtarget features.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:117
Parameters
- const std::vector<std::string>& FeatureVec
¶Expected<std::unique_ptr<TargetMachine>>
createTargetMachine()
Expected<std::unique_ptr<TargetMachine>>
createTargetMachine()
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:62
¶static Expected<
llvm::orc::JITTargetMachineBuilder>
detectHost()
static Expected<
llvm::orc::JITTargetMachineBuilder>
detectHost()
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:53
¶const std::string& getCPU() const
const std::string& getCPU() const
Description
Returns the CPU string.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:83
¶const Optional<CodeModel::Model>& getCodeModel()
const
const Optional<CodeModel::Model>& getCodeModel()
const
Description
Get the code model.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:101
¶Expected<llvm::DataLayout>
getDefaultDataLayoutForTarget()
Expected<llvm::DataLayout>
getDefaultDataLayoutForTarget()
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:69
¶const llvm::SubtargetFeatures& getFeatures() const
const llvm::SubtargetFeatures& getFeatures() const
Description
Access subtarget features.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:123
¶llvm::SubtargetFeatures& getFeatures()
llvm::SubtargetFeatures& getFeatures()
Description
Access subtarget features.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:120
¶const llvm::TargetOptions& getOptions() const
const llvm::TargetOptions& getOptions() const
Description
Access TargetOptions.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:140
¶llvm::TargetOptions& getOptions()
llvm::TargetOptions& getOptions()
Description
Access TargetOptions.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:137
¶const Optional<Reloc::Model>& getRelocationModel()
const
const Optional<Reloc::Model>& getRelocationModel()
const
Description
Get the relocation model.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:92
¶const llvm::Triple& getTargetTriple() const
const llvm::Triple& getTargetTriple() const
Description
Access Triple.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:146
¶llvm::Triple& getTargetTriple()
llvm::Triple& getTargetTriple()
Description
Access Triple.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:143
¶llvm::orc::JITTargetMachineBuilder& setCPU(
std::string CPU)
llvm::orc::JITTargetMachineBuilder& setCPU(
std::string CPU)
Description
Set the CPU string.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:77
Parameters
- std::string CPU
¶llvm::orc::JITTargetMachineBuilder&
setCodeGenOptLevel(CodeGenOpt::Level OptLevel)
llvm::orc::JITTargetMachineBuilder&
setCodeGenOptLevel(CodeGenOpt::Level OptLevel)
Description
Set the LLVM CodeGen optimization level.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:104
Parameters
- CodeGenOpt::Level OptLevel
¶llvm::orc::JITTargetMachineBuilder& setCodeModel(
Optional<CodeModel::Model> CM)
llvm::orc::JITTargetMachineBuilder& setCodeModel(
Optional<CodeModel::Model> CM)
Description
Set the code model.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:95
Parameters
- Optional<CodeModel::Model> CM
¶llvm::orc::JITTargetMachineBuilder& setFeatures(
llvm::StringRef FeatureString)
llvm::orc::JITTargetMachineBuilder& setFeatures(
llvm::StringRef FeatureString)
Description
Set subtarget features.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:110
Parameters
- llvm::StringRef FeatureString
¶llvm::orc::JITTargetMachineBuilder& setOptions(
llvm::TargetOptions Options)
llvm::orc::JITTargetMachineBuilder& setOptions(
llvm::TargetOptions Options)
Description
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.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:131
Parameters
- llvm::TargetOptions Options
¶llvm::orc::JITTargetMachineBuilder&
setRelocationModel(Optional<Reloc::Model> RM)
llvm::orc::JITTargetMachineBuilder&
setRelocationModel(Optional<Reloc::Model> RM)
Description
Set the relocation model.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:86
Parameters
- Optional<Reloc::Model> RM