19 llvm::sys::DynamicLibrary::getPermanentLibrary(filename.c_str(), &error);
20 if (!library.isValid())
21 return llvm::make_error<llvm::StringError>(
22 Twine(
"Could not load library '") + filename +
"': " + error,
23 llvm::inconvertibleErrorCode());
25 DialectPlugin plugin{filename, library};
29 intptr_t getDetailsFn =
30 (intptr_t)library.getAddressOfSymbol(
"mlirGetDialectPluginInfo");
33 return llvm::make_error<llvm::StringError>(
34 Twine(
"Plugin entry point not found in '") + filename,
35 llvm::inconvertibleErrorCode());
41 return llvm::make_error<llvm::StringError>(
42 Twine(
"Wrong API version on plugin '") + filename +
"'. Got version " +
43 Twine(plugin.info.
apiVersion) +
", supported version is " +
45 llvm::inconvertibleErrorCode());
48 return llvm::make_error<llvm::StringError>(
49 Twine(
"Empty entry callback in plugin '") + filename +
"'.'",
50 llvm::inconvertibleErrorCode());