From 47d0a37704ebc529ad2ab8a46e12a06e88df3207 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Mon, 1 Oct 2018 00:59:28 +0000 Subject: [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 --- llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/lib/ExecutionEngine') 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::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(std::move(ErrMsg), inconvertibleErrorCode()); + return DynamicLibraryFallbackGenerator(std::move(Lib), DL, std::move(Allow)); +} + SymbolNameSet DynamicLibraryFallbackGenerator:: operator()(JITDylib &JD, const SymbolNameSet &Names) { orc::SymbolNameSet Added; -- cgit v1.2.3