[llvm] [Offload] Move (most) global state to an `OffloadContext` struct (PR #144494)

Ross Brunton via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 19 08:31:58 PDT 2025


================
@@ -93,22 +93,34 @@ struct AllocInfo {
   ol_alloc_type_t Type;
 };
 
-using AllocInfoMapT = DenseMap<void *, AllocInfo>;
-AllocInfoMapT &allocInfoMap() {
-  static AllocInfoMapT AllocInfoMap{};
-  return AllocInfoMap;
-}
+// Global shared state for liboffload
+struct OffloadContext;
+static OffloadContext *OffloadContextVal;
+struct OffloadContext {
+  OffloadContext(OffloadContext &) = delete;
+  OffloadContext(OffloadContext &&) = delete;
----------------
RossBrunton wrote:

I've added "deletes" for `operator=`, anything else you want me to add?

In the future, olShutDown will need to destruct this object, so I don't think `~OffloadContext` could be deleted.

https://github.com/llvm/llvm-project/pull/144494


More information about the llvm-commits mailing list