class EngineBuilder

Declaration

class EngineBuilder { /* full declaration omitted */ };

Description

Builder class for ExecutionEngines. Use this by stack-allocating a builder, chaining the various set* methods, and terminating it with a .create() call.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:534

Member Variables

private std::unique_ptr<Module> M
private EngineKind::Kind WhichEngine
private std::string* ErrorStr
private CodeGenOpt::Level OptLevel
private std::shared_ptr<MCJITMemoryManager> MemMgr
private std::shared_ptr<LegacyJITSymbolResolver> Resolver
private llvm::TargetOptions Options
private Optional<Reloc::Model> RelocModel
private Optional<CodeModel::Model> CMModel
private std::string MArch
private std::string MCPU
private SmallVector<std::string, 4> MAttrs
private bool VerifyModules
private bool EmulatedTLS = true

Method Overview

  • public EngineBuilder(std::unique_ptr<Module> M)
  • public EngineBuilder()
  • public llvm::ExecutionEngine * create(llvm::TargetMachine * TM)
  • public llvm::ExecutionEngine * create()
  • public llvm::TargetMachine * selectTarget(const llvm::Triple & TargetTriple, llvm::StringRef MArch, llvm::StringRef MCPU, const SmallVectorImpl<std::string> & MAttrs)
  • public llvm::TargetMachine * selectTarget()
  • public llvm::EngineBuilder & setCodeModel(CodeModel::Model M)
  • public void setEmulatedTLS(bool EmulatedTLS)
  • public llvm::EngineBuilder & setEngineKind(EngineKind::Kind w)
  • public llvm::EngineBuilder & setErrorStr(std::string * e)
  • public llvm::EngineBuilder & setMArch(llvm::StringRef march)
  • public template <typename StringSequence>llvm::EngineBuilder & setMAttrs(const StringSequence & mattrs)
  • public llvm::EngineBuilder & setMCJITMemoryManager(std::unique_ptr<RTDyldMemoryManager> mcjmm)
  • public llvm::EngineBuilder & setMCPU(llvm::StringRef mcpu)
  • public llvm::EngineBuilder & setMemoryManager(std::unique_ptr<MCJITMemoryManager> MM)
  • public llvm::EngineBuilder & setOptLevel(CodeGenOpt::Level l)
  • public llvm::EngineBuilder & setRelocationModel(Reloc::Model RM)
  • public llvm::EngineBuilder & setSymbolResolver(std::unique_ptr<LegacyJITSymbolResolver> SR)
  • public llvm::EngineBuilder & setTargetOptions(const llvm::TargetOptions & Opts)
  • public llvm::EngineBuilder & setVerifyModules(bool Verify)
  • public ~EngineBuilder()

Methods

EngineBuilder(std::unique_ptr<Module> M)

Description

Constructor for EngineBuilder.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:556

Parameters

std::unique_ptr<Module> M

EngineBuilder()

Description

Default constructor for EngineBuilder.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:553

llvm::ExecutionEngine* create(
    llvm::TargetMachine* TM)

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:661

Parameters

llvm::TargetMachine* TM

llvm::ExecutionEngine* create()

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:657

llvm::TargetMachine* selectTarget(
    const llvm::Triple& TargetTriple,
    llvm::StringRef MArch,
    llvm::StringRef MCPU,
    const SmallVectorImpl<std::string>& MAttrs)

Description

selectTarget - Pick a target either via -march or by guessing the native arch. Add any CPU features specified via -mcpu or -mattr.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:652

Parameters

const llvm::Triple& TargetTriple
llvm::StringRef MArch
llvm::StringRef MCPU
const SmallVectorImpl<std::string>& MAttrs

llvm::TargetMachine* selectTarget()

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:648

llvm::EngineBuilder& setCodeModel(
    CodeModel::Model M)

Description

setCodeModel - Set the CodeModel that the ExecutionEngine target data is using. Defaults to target specific default "CodeModel::JITDefault".

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:612

Parameters

CodeModel::Model M

void setEmulatedTLS(bool EmulatedTLS)

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:644

Parameters

bool EmulatedTLS

llvm::EngineBuilder& setEngineKind(
    EngineKind::Kind w)

Description

setEngineKind - Controls whether the user wants the interpreter, the JIT, or whichever engine works. This option defaults to EngineKind::Either.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:563

Parameters

EngineKind::Kind w

llvm::EngineBuilder& setErrorStr(std::string* e)

Description

setErrorStr - Set the error string to write to on error. This option defaults to NULL.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:583

Parameters

std::string* e

llvm::EngineBuilder& setMArch(
    llvm::StringRef march)

Description

setMArch - Override the architecture set by the Module's triple.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:618

Parameters

llvm::StringRef march

template <typename StringSequence>
llvm::EngineBuilder& setMAttrs(
    const StringSequence& mattrs)

Description

setMAttrs - Set cpu-specific attributes.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:638

Templates

StringSequence

Parameters

const StringSequence& mattrs

llvm::EngineBuilder& setMCJITMemoryManager(
    std::unique_ptr<RTDyldMemoryManager> mcjmm)

Description

setMCJITMemoryManager - Sets the MCJIT memory manager to use. This allows clients to customize their memory allocation policies for the MCJIT. This is only appropriate for the MCJIT; setting this and configuring the builder to create anything other than MCJIT will cause a runtime error. If create() is called and is successful, the created engine takes ownership of the memory manager. This option defaults to NULL.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:574

Parameters

std::unique_ptr<RTDyldMemoryManager> mcjmm

llvm::EngineBuilder& setMCPU(llvm::StringRef mcpu)

Description

setMCPU - Target a specific cpu type.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:624

Parameters

llvm::StringRef mcpu

llvm::EngineBuilder& setMemoryManager(
    std::unique_ptr<MCJITMemoryManager> MM)

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:577

Parameters

std::unique_ptr<MCJITMemoryManager> MM

llvm::EngineBuilder& setOptLevel(
    CodeGenOpt::Level l)

Description

setOptLevel - Set the optimization level for the JIT. This option defaults to CodeGenOpt::Default.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:590

Parameters

CodeGenOpt::Level l

llvm::EngineBuilder& setRelocationModel(
    Reloc::Model RM)

Description

setRelocationModel - Set the relocation model that the ExecutionEngine target is using. Defaults to target specific default "Reloc::Default".

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:604

Parameters

Reloc::Model RM

llvm::EngineBuilder& setSymbolResolver(
    std::unique_ptr<LegacyJITSymbolResolver> SR)

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:579

Parameters

std::unique_ptr<LegacyJITSymbolResolver> SR

llvm::EngineBuilder& setTargetOptions(
    const llvm::TargetOptions& Opts)

Description

setTargetOptions - Set the target options that the ExecutionEngine target is using. Defaults to TargetOptions().

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:597

Parameters

const llvm::TargetOptions& Opts

llvm::EngineBuilder& setVerifyModules(bool Verify)

Description

setVerifyModules - Set whether the JIT implementation should verify IR modules during compilation.

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:631

Parameters

bool Verify

~EngineBuilder()

Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:559