LLVM 22.0.0git
llvm::orc::JITTargetMachineBuilder Class Reference

A utility class for building TargetMachines for JITs. More...

#include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"

Public Member Functions

LLVM_ABI JITTargetMachineBuilder (Triple TT)
 Create a JITTargetMachineBuilder based on the given triple.
LLVM_ABI Expected< std::unique_ptr< TargetMachine > > createTargetMachine ()
 Create a TargetMachine.
Expected< DataLayoutgetDefaultDataLayoutForTarget ()
 Get the default DataLayout for the target.
JITTargetMachineBuildersetCPU (std::string CPU)
 Set the CPU string.
const std::string & getCPU () const
 Returns the CPU string.
JITTargetMachineBuildersetRelocationModel (std::optional< Reloc::Model > RM)
 Set the relocation model.
const std::optional< Reloc::Model > & getRelocationModel () const
 Get the relocation model.
JITTargetMachineBuildersetCodeModel (std::optional< CodeModel::Model > CM)
 Set the code model.
const std::optional< CodeModel::Model > & getCodeModel () const
 Get the code model.
JITTargetMachineBuildersetCodeGenOptLevel (CodeGenOptLevel OptLevel)
 Set the LLVM CodeGen optimization level.
JITTargetMachineBuildersetFeatures (StringRef FeatureString)
 Set subtarget features.
LLVM_ABI JITTargetMachineBuilderaddFeatures (const std::vector< std::string > &FeatureVec)
 Add subtarget features.
SubtargetFeaturesgetFeatures ()
 Access subtarget features.
const SubtargetFeaturesgetFeatures () const
 Access subtarget features.
JITTargetMachineBuildersetOptions (TargetOptions Options)
 Set TargetOptions.
TargetOptionsgetOptions ()
 Access TargetOptions.
const TargetOptionsgetOptions () const
 Access TargetOptions.
TriplegetTargetTriple ()
 Access Triple.
const TriplegetTargetTriple () const
 Access Triple.

Static Public Member Functions

static LLVM_ABI Expected< JITTargetMachineBuilderdetectHost ()
 Create a JITTargetMachineBuilder for the host system.

Friends

class JITTargetMachineBuilderPrinter

Detailed Description

A utility class for building TargetMachines for JITs.

Definition at line 35 of file JITTargetMachineBuilder.h.

Constructor & Destructor Documentation

◆ JITTargetMachineBuilder()

llvm::orc::JITTargetMachineBuilder::JITTargetMachineBuilder ( Triple TT)

Create a JITTargetMachineBuilder based on the given triple.

Note: TargetOptions is default-constructed, then EmulatedTLS is 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::move().

Referenced by addFeatures(), detectHost(), setCodeGenOptLevel(), setCodeModel(), setCPU(), setFeatures(), setOptions(), and setRelocationModel().

Member Function Documentation

◆ addFeatures()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::addFeatures ( const std::vector< std::string > & FeatureVec)

Add subtarget features.

Definition at line 59 of file JITTargetMachineBuilder.cpp.

References F, and JITTargetMachineBuilder().

◆ createTargetMachine()

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 39 of file JITTargetMachineBuilder.cpp.

References llvm::inconvertibleErrorCode(), llvm::TargetRegistry::lookupTarget(), and llvm::make_error().

Referenced by llvm::orc::LLJIT::createCompileFunction(), and getDefaultDataLayoutForTarget().

◆ detectHost()

Expected< JITTargetMachineBuilder > llvm::orc::JITTargetMachineBuilder::detectHost ( )
static

Create a JITTargetMachineBuilder for the host system.

Note: TargetOptions is default-constructed, then EmulatedTLS is set to true. If EmulatedTLS is not required, these values should be reset before calling createTargetMachine.

Definition at line 24 of file JITTargetMachineBuilder.cpp.

References llvm::SubtargetFeatures::AddFeature(), getFeatures(), llvm::sys::getHostCPUFeatures(), llvm::sys::getHostCPUName(), llvm::sys::getProcessTriple(), JITTargetMachineBuilder(), and setCPU().

Referenced by LLVMOrcJITTargetMachineBuilderDetectHost(), and llvm::orc::LLJITBuilderState::prepareForConstruction().

◆ getCodeModel()

const std::optional< CodeModel::Model > & llvm::orc::JITTargetMachineBuilder::getCodeModel ( ) const
inline

Get the code model.

Definition at line 100 of file JITTargetMachineBuilder.h.

◆ getCPU()

const std::string & llvm::orc::JITTargetMachineBuilder::getCPU ( ) const
inline

Returns the CPU string.

Definition at line 82 of file JITTargetMachineBuilder.h.

◆ getDefaultDataLayoutForTarget()

Expected< DataLayout > llvm::orc::JITTargetMachineBuilder::getDefaultDataLayoutForTarget ( )
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 68 of file JITTargetMachineBuilder.h.

References createTargetMachine().

◆ getFeatures() [1/2]

SubtargetFeatures & llvm::orc::JITTargetMachineBuilder::getFeatures ( )
inline

Access subtarget features.

Definition at line 119 of file JITTargetMachineBuilder.h.

Referenced by detectHost().

◆ getFeatures() [2/2]

const SubtargetFeatures & llvm::orc::JITTargetMachineBuilder::getFeatures ( ) const
inline

Access subtarget features.

Definition at line 122 of file JITTargetMachineBuilder.h.

◆ getOptions() [1/2]

TargetOptions & llvm::orc::JITTargetMachineBuilder::getOptions ( )
inline

Access TargetOptions.

Definition at line 136 of file JITTargetMachineBuilder.h.

◆ getOptions() [2/2]

const TargetOptions & llvm::orc::JITTargetMachineBuilder::getOptions ( ) const
inline

Access TargetOptions.

Definition at line 139 of file JITTargetMachineBuilder.h.

◆ getRelocationModel()

const std::optional< Reloc::Model > & llvm::orc::JITTargetMachineBuilder::getRelocationModel ( ) const
inline

Get the relocation model.

Definition at line 91 of file JITTargetMachineBuilder.h.

◆ getTargetTriple() [1/2]

Triple & llvm::orc::JITTargetMachineBuilder::getTargetTriple ( )
inline

Access Triple.

Definition at line 142 of file JITTargetMachineBuilder.h.

◆ getTargetTriple() [2/2]

const Triple & llvm::orc::JITTargetMachineBuilder::getTargetTriple ( ) const
inline

Access Triple.

Definition at line 145 of file JITTargetMachineBuilder.h.

◆ setCodeGenOptLevel()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setCodeGenOptLevel ( CodeGenOptLevel OptLevel)
inline

Set the LLVM CodeGen optimization level.

Definition at line 103 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

◆ setCodeModel()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setCodeModel ( std::optional< CodeModel::Model > CM)
inline

Set the code model.

Definition at line 94 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

◆ setCPU()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setCPU ( std::string CPU)
inline

Set the CPU string.

Definition at line 76 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

Referenced by detectHost().

◆ setFeatures()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setFeatures ( StringRef FeatureString)
inline

Set subtarget features.

Definition at line 109 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

◆ setOptions()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setOptions ( TargetOptions Options)
inline

Set TargetOptions.

Note: This operation will overwrite any previously configured options, including EmulatedTLS and UseInitArray which the JITTargetMachineBuilder sets by default. Clients are responsible for re-enabling these overwritten options.

Definition at line 130 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

◆ setRelocationModel()

JITTargetMachineBuilder & llvm::orc::JITTargetMachineBuilder::setRelocationModel ( std::optional< Reloc::Model > RM)
inline

Set the relocation model.

Definition at line 85 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilder().

◆ JITTargetMachineBuilderPrinter

friend class JITTargetMachineBuilderPrinter
friend

Definition at line 37 of file JITTargetMachineBuilder.h.

References JITTargetMachineBuilderPrinter, and LLVM_ABI.

Referenced by JITTargetMachineBuilderPrinter.


The documentation for this class was generated from the following files: