diff options
author | Lang Hames <lhames@gmail.com> | 2018-10-01 00:59:28 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-10-01 00:59:28 +0000 |
commit | 47d0a37704ebc529ad2ab8a46e12a06e88df3207 (patch) | |
tree | cdd23207f9f71204487625e1bc2e6889535fb740 /llvm/lib/ExecutionEngine | |
parent | d89c273a2ee4349704dc2e21b7037f01f6bde60a (diff) | |
download | bcm5719-llvm-47d0a37704ebc529ad2ab8a46e12a06e88df3207.tar.gz bcm5719-llvm-47d0a37704ebc529ad2ab8a46e12a06e88df3207.zip |
[ORC] Add convenience methods for creating DynamicLibraryFallbackGenerators for
libraries on disk, and for the current process.
Avoids more boilerplate during JIT construction.
llvm-svn: 343430
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp index e9e27453c32..29c3f4e5636 100644 --- a/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp @@ -174,6 +174,15 @@ DynamicLibraryFallbackGenerator::DynamicLibraryFallbackGenerator( : Dylib(std::move(Dylib)), Allow(std::move(Allow)), GlobalPrefix(DL.getGlobalPrefix()) {} +Expected<DynamicLibraryFallbackGenerator> DynamicLibraryFallbackGenerator::Load( + const char *FileName, const DataLayout &DL, SymbolPredicate Allow) { + std::string ErrMsg; + auto Lib = sys::DynamicLibrary::getPermanentLibrary(FileName, &ErrMsg); + if (!Lib.isValid()) + return make_error<StringError>(std::move(ErrMsg), inconvertibleErrorCode()); + return DynamicLibraryFallbackGenerator(std::move(Lib), DL, std::move(Allow)); +} + SymbolNameSet DynamicLibraryFallbackGenerator:: operator()(JITDylib &JD, const SymbolNameSet &Names) { orc::SymbolNameSet Added; |