[Lldb-commits] [PATCH] D47551: [IRMemoryMap] Fix the alignment adjustment in Malloc
Vedant Kumar via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu May 31 13:58:14 PDT 2018
vsk added a comment.
In https://reviews.llvm.org/D47551#1117086, @lhames wrote:
> I haven't looked at process memory management. How hard would your FIXME be to implement?
After looking at this more carefully, I think the FIXME makes a bad prescription. It's based on the assumption that each platform-specific allocator makes use of an efficient API to make aligned allocations. This doesn't generally seem to be true, because the platform-specific allocators rely on mmap().
A better alternative might be to add a new API, `AllocatedMemoryCache::AllocateAlignedMemory(size, alignment)`. You could implement an alignment-aware allocator here, say, by splitting up free memory into a list of buckets (one list per alignment). Next, you could surface the API from `Process`, provided there's a fallback strategy when the allocated memory cache is disabled.
One caveat to all of this is that it might not be worth doing unless fragmentation-related overhead is identified as a bottleneck.
I'll remove the FIXME.
More information about the lldb-commits