[PATCH] D130392: [Orc][JITLink] Slab based memory allocator to reduce RPC calls

Anubhab Ghosh via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 7 05:19:03 PDT 2022


argentite added inline comments.


================
Comment at: llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h:55-58
+  // Ranges that have been reserved in executor and usable
+  std::vector<ExecutorAddrRange> AvailableMemory;
+  // Ranges that have been reserved on both side
+  DenseMap<ExecutorAddr, ExecutorAddrDiff> UsedMemory;
----------------
lhames wrote:
> >  // Ranges that have been reserved on both side
> >  DenseMap<ExecutorAddr, ExecutorAddrDiff> UsedMemory;
> 
> I didn't understand this comment? This is just the used memory list, right? Whether or not there's any memory associated with it on the controller side should be up to the mapper, rather than the allocator.
I have tried to make the language clearer.


================
Comment at: llvm/lib/ExecutionEngine/Orc/MapperJITLinkMemoryManager.cpp:164
+
+    AvailableMemory.push_back({Addr, Addr + Size});
     FA.release();
----------------
lhames wrote:
> There's no coalescing of the `AvailableMemory` list yet, so you'll get fragmentation in the allocator. I think that should be addressed in a follow-up patch though.
I plan to do a more efficient implementation as a follow up.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130392/new/

https://reviews.llvm.org/D130392



More information about the llvm-commits mailing list