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)
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()
EngineBuilder()
Description
Default constructor for EngineBuilder.
Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:553
¶llvm::ExecutionEngine* create(
llvm::TargetMachine* TM)
llvm::ExecutionEngine* create(
llvm::TargetMachine* TM)
Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:661
Parameters
¶llvm::ExecutionEngine* create()
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)
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()
llvm::TargetMachine* selectTarget()
Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:648
¶llvm::EngineBuilder& setCodeModel(
CodeModel::Model M)
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)
void setEmulatedTLS(bool EmulatedTLS)
Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:644
Parameters
- bool EmulatedTLS
¶llvm::EngineBuilder& setEngineKind(
EngineKind::Kind w)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
~EngineBuilder()
Declared at: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:559