LLVM 17.0.0git
|
Builder class for ExecutionEngines. More...
#include "llvm/ExecutionEngine/ExecutionEngine.h"
Public Member Functions | |
EngineBuilder () | |
Default constructor for EngineBuilder. | |
EngineBuilder (std::unique_ptr< Module > M) | |
Constructor for EngineBuilder. | |
~EngineBuilder () | |
EngineBuilder & | setEngineKind (EngineKind::Kind w) |
setEngineKind - Controls whether the user wants the interpreter, the JIT, or whichever engine works. | |
EngineBuilder & | setMCJITMemoryManager (std::unique_ptr< RTDyldMemoryManager > mcjmm) |
setMCJITMemoryManager - Sets the MCJIT memory manager to use. | |
EngineBuilder & | setMemoryManager (std::unique_ptr< MCJITMemoryManager > MM) |
EngineBuilder & | setSymbolResolver (std::unique_ptr< LegacyJITSymbolResolver > SR) |
EngineBuilder & | setErrorStr (std::string *e) |
setErrorStr - Set the error string to write to on error. | |
EngineBuilder & | setOptLevel (CodeGenOpt::Level l) |
setOptLevel - Set the optimization level for the JIT. | |
EngineBuilder & | setTargetOptions (const TargetOptions &Opts) |
setTargetOptions - Set the target options that the ExecutionEngine target is using. | |
EngineBuilder & | setRelocationModel (Reloc::Model RM) |
setRelocationModel - Set the relocation model that the ExecutionEngine target is using. | |
EngineBuilder & | setCodeModel (CodeModel::Model M) |
setCodeModel - Set the CodeModel that the ExecutionEngine target data is using. | |
EngineBuilder & | setMArch (StringRef march) |
setMArch - Override the architecture set by the Module's triple. | |
EngineBuilder & | setMCPU (StringRef mcpu) |
setMCPU - Target a specific cpu type. | |
EngineBuilder & | setVerifyModules (bool Verify) |
setVerifyModules - Set whether the JIT implementation should verify IR modules during compilation. | |
template<typename StringSequence > | |
EngineBuilder & | setMAttrs (const StringSequence &mattrs) |
setMAttrs - Set cpu-specific attributes. | |
void | setEmulatedTLS (bool EmulatedTLS) |
TargetMachine * | selectTarget () |
TargetMachine * | selectTarget (const Triple &TargetTriple, StringRef MArch, StringRef MCPU, const SmallVectorImpl< std::string > &MAttrs) |
selectTarget - Pick a target either via -march or by guessing the native arch. | |
ExecutionEngine * | create () |
ExecutionEngine * | create (TargetMachine *TM) |
Builder class for ExecutionEngines.
Use this by stack-allocating a builder, chaining the various set* methods, and terminating it with a .create() call.
Definition at line 534 of file ExecutionEngine.h.
EngineBuilder::EngineBuilder | ( | ) |
Default constructor for EngineBuilder.
Definition at line 470 of file ExecutionEngine.cpp.
EngineBuilder::EngineBuilder | ( | std::unique_ptr< Module > | M | ) |
Constructor for EngineBuilder.
Definition at line 472 of file ExecutionEngine.cpp.
|
default |
|
inline |
Definition at line 657 of file ExecutionEngine.h.
References create(), and selectTarget().
Referenced by create().
ExecutionEngine * EngineBuilder::create | ( | TargetMachine * | TM | ) |
Definition at line 506 of file ExecutionEngine.cpp.
References llvm::errs(), llvm::ExecutionEngine::InterpCtor, llvm::EngineKind::Interpreter, llvm::EngineKind::JIT, llvm::sys::DynamicLibrary::LoadLibraryPermanently(), llvm::ExecutionEngine::MCJITCtor, llvm::ExecutionEngine::setVerifyModules(), and TM.
TargetMachine * EngineBuilder::selectTarget | ( | ) |
Definition at line 26 of file TargetSelect.cpp.
References llvm::EngineKind::Interpreter, and selectTarget().
Referenced by create(), and selectTarget().
TargetMachine * EngineBuilder::selectTarget | ( | const Triple & | TargetTriple, |
StringRef | MArch, | ||
StringRef | MCPU, | ||
const SmallVectorImpl< std::string > & | MAttrs | ||
) |
selectTarget - Pick a target either via -march or by guessing the native arch.
Add any CPU features specified via -mcpu or -mattr.
Definition at line 39 of file TargetSelect.cpp.
References llvm::SubtargetFeatures::AddFeature(), assert(), llvm::Target::createTargetMachine(), llvm::SmallVectorBase< Size_T >::empty(), llvm::StringRef::empty(), llvm::find_if(), llvm::Triple::getArchTypeForLLVMName(), llvm::sys::getProcessTriple(), llvm::SubtargetFeatures::getString(), llvm::Triple::getTriple(), I, llvm::TargetRegistry::lookupTarget(), llvm::Triple::setArch(), llvm::Triple::setTriple(), llvm::SmallVectorBase< Size_T >::size(), llvm::TargetRegistry::targets(), and llvm::Triple::UnknownArch.
|
inline |
setCodeModel - Set the CodeModel that the ExecutionEngine target data is using.
Defaults to target specific default "CodeModel::JITDefault".
Definition at line 612 of file ExecutionEngine.h.
|
inline |
Definition at line 644 of file ExecutionEngine.h.
|
inline |
setEngineKind - Controls whether the user wants the interpreter, the JIT, or whichever engine works.
This option defaults to EngineKind::Either.
Definition at line 563 of file ExecutionEngine.h.
|
inline |
setErrorStr - Set the error string to write to on error.
This option defaults to NULL.
Definition at line 583 of file ExecutionEngine.h.
|
inline |
setMArch - Override the architecture set by the Module's triple.
Definition at line 618 of file ExecutionEngine.h.
References llvm::StringRef::begin(), and llvm::StringRef::end().
|
inline |
setMAttrs - Set cpu-specific attributes.
Definition at line 638 of file ExecutionEngine.h.
References llvm::SmallVectorImpl< T >::append(), and llvm::SmallVectorImpl< T >::clear().
EngineBuilder & EngineBuilder::setMCJITMemoryManager | ( | std::unique_ptr< RTDyldMemoryManager > | mcjmm | ) |
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.
Definition at line 486 of file ExecutionEngine.cpp.
|
inline |
setMCPU - Target a specific cpu type.
Definition at line 624 of file ExecutionEngine.h.
References llvm::StringRef::begin(), and llvm::StringRef::end().
EngineBuilder & EngineBuilder::setMemoryManager | ( | std::unique_ptr< MCJITMemoryManager > | MM | ) |
Definition at line 495 of file ExecutionEngine.cpp.
|
inline |
setOptLevel - Set the optimization level for the JIT.
This option defaults to CodeGenOpt::Default.
Definition at line 590 of file ExecutionEngine.h.
|
inline |
setRelocationModel - Set the relocation model that the ExecutionEngine target is using.
Defaults to target specific default "Reloc::Default".
Definition at line 604 of file ExecutionEngine.h.
EngineBuilder & EngineBuilder::setSymbolResolver | ( | std::unique_ptr< LegacyJITSymbolResolver > | SR | ) |
Definition at line 501 of file ExecutionEngine.cpp.
|
inline |
setTargetOptions - Set the target options that the ExecutionEngine target is using.
Defaults to TargetOptions().
Definition at line 597 of file ExecutionEngine.h.
References Options.
|
inline |
setVerifyModules - Set whether the JIT implementation should verify IR modules during compilation.
Definition at line 631 of file ExecutionEngine.h.
References Verify.