class DynamicLibrarySearchGenerator
Declaration
class DynamicLibrarySearchGenerator : public DefinitionGenerator { /* full declaration omitted */ };
Description
A utility class to expose symbols found via dlsym to the JIT. If an instance of this class is attached to a JITDylib as a fallback definition generator, then any symbol found in the given DynamicLibrary that passes the 'Allow' predicate will be added to the JITDylib.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h:216
Inherits from: DefinitionGenerator
Member Variables
- private sys::DynamicLibrary Dylib
- private llvm::orc::DynamicLibrarySearchGenerator:: SymbolPredicate Allow
- private char GlobalPrefix
Method Overview
- public DynamicLibrarySearchGenerator(sys::DynamicLibrary Dylib, char GlobalPrefix, llvm::orc::DynamicLibrarySearchGenerator::SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>())
- public static Expected<std::unique_ptr<DynamicLibrarySearchGenerator>> GetForCurrentProcess(char GlobalPrefix, llvm::orc::DynamicLibrarySearchGenerator::SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>())
- public static Expected<std::unique_ptr<DynamicLibrarySearchGenerator>> Load(const char * FileName, char GlobalPrefix, llvm::orc::DynamicLibrarySearchGenerator::SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>())
- public llvm::Error tryToGenerate(llvm::orc::LookupState & LS, llvm::orc::LookupKind K, llvm::orc::JITDylib & JD, llvm::orc::JITDylibLookupFlags JDLookupFlags, const llvm::orc::SymbolLookupSet & Symbols)
Inherited from DefinitionGenerator:
Methods
¶DynamicLibrarySearchGenerator(
sys::DynamicLibrary Dylib,
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
DynamicLibrarySearchGenerator(
sys::DynamicLibrary Dylib,
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
Description
Create a DynamicLibrarySearchGenerator that searches for symbols in the given sys::DynamicLibrary. If the Allow predicate is given then only symbols matching the predicate will be searched for. If the predicate is not given then all symbols will be searched for.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h:226
Parameters
- sys::DynamicLibrary Dylib
- char GlobalPrefix
- llvm::orc::DynamicLibrarySearchGenerator:: SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>()
¶static Expected<std::unique_ptr<
DynamicLibrarySearchGenerator>>
GetForCurrentProcess(
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
static Expected<std::unique_ptr<
DynamicLibrarySearchGenerator>>
GetForCurrentProcess(
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
Description
Creates a DynamicLibrarySearchGenerator that searches for symbols in the current process.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h:239
Parameters
- char GlobalPrefix
- llvm::orc::DynamicLibrarySearchGenerator:: SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>()
¶static Expected<std::unique_ptr<
DynamicLibrarySearchGenerator>>
Load(const char* FileName,
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
static Expected<std::unique_ptr<
DynamicLibrarySearchGenerator>>
Load(const char* FileName,
char GlobalPrefix,
llvm::orc::DynamicLibrarySearchGenerator::
SymbolPredicate Allow = std::function<
bool(const llvm::orc::
SymbolStringPtr&)>())
Description
Permanently loads the library at the given path and, on success, returns a DynamicLibrarySearchGenerator that will search it for symbol definitions in the library. On failure returns the reason the library failed to load.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h:233
Parameters
- const char* FileName
- char GlobalPrefix
- llvm::orc::DynamicLibrarySearchGenerator:: SymbolPredicate Allow = std::function<bool (const llvm::orc::SymbolStringPtr &)>()
¶llvm::Error tryToGenerate(
llvm::orc::LookupState& LS,
llvm::orc::LookupKind K,
llvm::orc::JITDylib& JD,
llvm::orc::JITDylibLookupFlags JDLookupFlags,
const llvm::orc::SymbolLookupSet& Symbols)
llvm::Error tryToGenerate(
llvm::orc::LookupState& LS,
llvm::orc::LookupKind K,
llvm::orc::JITDylib& JD,
llvm::orc::JITDylibLookupFlags JDLookupFlags,
const llvm::orc::SymbolLookupSet& Symbols)
Description
DefinitionGenerators should override this method to insert new definitions into the parent JITDylib. K specifies the kind of this lookup. JD specifies the target JITDylib being searched, and JDLookupFlags specifies whether the search should match against hidden symbols. Finally, Symbols describes the set of unresolved symbols and their associated lookup flags.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h:244
Parameters
- llvm::orc::LookupState& LS
- llvm::orc::LookupKind K
- llvm::orc::JITDylib& JD
- llvm::orc::JITDylibLookupFlags JDLookupFlags
- const llvm::orc::SymbolLookupSet& Symbols