[llvm] [OFFLOAD] Add missing device properties for libomptarget migration (PR #172222)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 14 12:47:15 PST 2025
https://github.com/fineg74 created https://github.com/llvm/llvm-project/pull/172222
Add missing liboffload device properties for libomptarget migration
This PR adds liboffload device properties that needed to make libomptarget to use liboffload
>From 9a4296a98040872b3d09b60e91ad56e2481a3d27 Mon Sep 17 00:00:00 2001
From: "Fine, Gregory" <gregory.fine at intel.com>
Date: Sun, 14 Dec 2025 12:29:35 -0800
Subject: [PATCH] Add device properties for libomptarget migration
---
offload/liboffload/API/Device.td | 2 ++
offload/liboffload/src/OffloadImpl.cpp | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/offload/liboffload/API/Device.td b/offload/liboffload/API/Device.td
index 6ada191089674..da47d161b0ace 100644
--- a/offload/liboffload/API/Device.td
+++ b/offload/liboffload/API/Device.td
@@ -44,6 +44,8 @@ def ol_device_info_t : Enum {
TaggedEtor<"MAX_MEM_ALLOC_SIZE", "uint64_t", "The maximum size of memory object allocation in bytes">,
TaggedEtor<"GLOBAL_MEM_SIZE", "uint64_t", "The size of global device memory in bytes">,
TaggedEtor<"WORK_GROUP_LOCAL_MEM_SIZE", "uint64_t", "The maximum size of local shared memory per work group in bytes">,
+ TaggedEtor<"ID", "int32_t", "Device ID">,
+ TaggedEtor<"USE_AUTO_ZERO_COPY", "bool", "Use Auto Zero Copy">,
];
list<TaggedEtor> fp_configs = !foreach(type, ["Single", "Double", "Half"], TaggedEtor<type # "_FP_CONFIG", "ol_device_fp_capability_flags_t", type # " precision floating point capability">);
list<TaggedEtor> native_vec_widths = !foreach(type, ["char","short","int","long","float","double","half"], TaggedEtor<"NATIVE_VECTOR_WIDTH_" # type, "uint32_t", "Native vector width for " # type>);
diff --git a/offload/liboffload/src/OffloadImpl.cpp b/offload/liboffload/src/OffloadImpl.cpp
index eab9627217ca8..babf5f5f03d3c 100644
--- a/offload/liboffload/src/OffloadImpl.cpp
+++ b/offload/liboffload/src/OffloadImpl.cpp
@@ -449,6 +449,11 @@ Error olGetDeviceInfoImplDetail(ol_device_handle_t Device,
return Info.write<uint64_t>(Mem);
} break;
+ case OL_DEVICE_INFO_ID:
+ return Info.write<int32_t>(Device->DeviceNum);
+ case OL_DEVICE_INFO_USE_AUTO_ZERO_COPY:
+ return Info.write<bool>(Device->Device->useAutoZeroCopy());
+
default:
break;
}
@@ -599,6 +604,10 @@ Error olGetDeviceInfoImplDetailHost(ol_device_handle_t Device,
case OL_DEVICE_INFO_GLOBAL_MEM_SIZE:
case OL_DEVICE_INFO_WORK_GROUP_LOCAL_MEM_SIZE:
return Info.write<uint64_t>(0);
+ case OL_DEVICE_INFO_ID:
+ return Info.write<int32_t>(Device->DeviceNum);
+ case OL_DEVICE_INFO_USE_AUTO_ZERO_COPY:
+ return Info.write<bool>(Device->Device->useAutoZeroCopy());
default:
return createOffloadError(ErrorCode::INVALID_ENUMERATION,
"getDeviceInfo enum '%i' is invalid", PropName);
More information about the llvm-commits
mailing list