[llvm] [Offload] Allow querying the size of globals (PR #147698)
Ross Brunton via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 9 06:35:47 PDT 2025
================
@@ -37,20 +37,33 @@ using namespace llvm::object;
/// Common abstraction for globals that live on the host and device.
/// It simply encapsulates the symbol name, symbol size, and symbol address
/// (which might be host or device depending on the context).
+/// Both size and address may be absent, and can be populated with
+// getGlobalMetadataFromDevice/Image.
class GlobalTy {
// NOTE: Maybe we can have a pointer to the offload entry name instead of
// holding a private copy of the name as a std::string.
std::string Name;
- uint32_t Size;
- void *Ptr;
+ std::optional<uint32_t> Size;
+ std::optional<void *> Ptr;
----------------
RossBrunton wrote:
I'm actually not sure whether a global can have an address of 0. If the AMD or Cuda drivers report it as such for whatever reason, should we pass it through to the caller of offload?
Likewise with a size of 0 (which I assume you meant); I don't know if that's a legal size or not.
In both cases, I think using std::optional makes the intent more clear anyway.
https://github.com/llvm/llvm-project/pull/147698
More information about the llvm-commits
mailing list