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

Methods

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)

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()

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()

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

Description

Returns the CPU string.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:83

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()

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

Description

Access subtarget features.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:123

llvm::SubtargetFeatures& getFeatures()

Description

Access subtarget features.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:120

const llvm::TargetOptions& getOptions() const

Description

Access TargetOptions.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:140

llvm::TargetOptions& getOptions()

Description

Access TargetOptions.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:137

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

Description

Access Triple.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:146

llvm::Triple& getTargetTriple()

Description

Access Triple.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:143

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)

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)

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)

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)

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)

Description

Set the relocation model.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h:86

Parameters

Optional<Reloc::Model> RM