[llvm] [offload] add context to olMemAlloc* (PR #222677)
Jan Trusiłło via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 11 04:17:56 PDT 2026
================
@@ -488,6 +490,54 @@ struct GenELF64PluginContextTy final : public PluginContextTy {
Error initAsyncInfoImpl(GenericDeviceTy &, AsyncInfoWrapperTy &) override {
return Plugin::success();
}
+
+ Expected<void *> allocate(GenericDeviceTy &Device, int64_t Size,
+ TargetAllocTy Kind, size_t Alignment) override {
+ auto PtrOrErr = PluginContextTy::allocate(Device, Size, Kind, Alignment);
+ if (!PtrOrErr)
+ return PtrOrErr.takeError();
+ void *Ptr = *PtrOrErr;
+ std::lock_guard<std::mutex> Lock(AllocsMutex);
+ Allocs[Ptr] = Entry{&Device, Kind, static_cast<size_t>(Size)};
+ return Ptr;
+ }
+
+ Error deallocate(GenericDeviceTy &Device, void *Ptr,
+ TargetAllocTy Kind) override {
+ {
+ std::lock_guard<std::mutex> Lock(AllocsMutex);
+ Allocs.erase(Ptr);
+ }
+ return PluginContextTy::deallocate(Device, Ptr, Kind);
+ }
+
+ Expected<PluginAllocInfoTy> getAllocInfo(const void *Ptr) override {
+ std::lock_guard<std::mutex> Lock(AllocsMutex);
+ if (Allocs.empty())
----------------
311Volt wrote:
`upper_bound() == begin()` handles an empty map properly, so this check is not needed
https://github.com/llvm/llvm-project/pull/222677
More information about the llvm-commits
mailing list