[llvm] [Offload] Refactor device/platform info queries (PR #146345)
Jan Patrick Lehr via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 30 05:49:15 PDT 2025
================
@@ -277,36 +277,68 @@ Error olGetPlatformInfoSize_impl(ol_platform_handle_t Platform,
Error olGetDeviceInfoImplDetail(ol_device_handle_t Device,
ol_device_info_t PropName, size_t PropSize,
void *PropValue, size_t *PropSizeRet) {
+ assert(Device != OffloadContext::get().HostDevice());
+ InfoWriter Info(PropSize, PropValue, PropSizeRet);
- ReturnHelper ReturnValue(PropSize, PropValue, PropSizeRet);
+ auto makeError = [&](ErrorCode Code, StringRef Err) {
+ std::string ErrBuffer;
+ llvm::raw_string_ostream(ErrBuffer) << PropName << ": " << Err;
+ return Plugin::error(ErrorCode::UNIMPLEMENTED, ErrBuffer.c_str());
+ };
// Find the info if it exists under any of the given names
- auto GetInfoString = [&](std::vector<std::string> Names) {
- if (Device == OffloadContext::get().HostDevice())
- return "Host";
-
+ auto getInfoString =
+ [&](std::vector<std::string> Names) -> llvm::Expected<const char *> {
for (auto Name : Names) {
----------------
jplehr wrote:
Is this string copy here? Do we want that or is vector small enough so we do not care?
https://github.com/llvm/llvm-project/pull/146345
More information about the llvm-commits
mailing list