[compiler-rt] [scudo] Add EnableMultiRegions mode (PR #98076)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 17 12:14:25 PDT 2024
================
@@ -56,6 +56,17 @@ template <typename Config> class SizeClassAllocator64 {
static_assert(RegionSizeLog >= GroupSizeLog,
"Group size shouldn't be greater than the region size");
static const uptr GroupScale = GroupSizeLog - CompactPtrScale;
+ // Local cache stores the pointers in the type of compacted pointer and the
+ // compaction is done by calculating the offset to the base address of a
+ // region. Currently, we don't support decompacting through multiple regions
+ // because of the concern of performance and so we disable the pointer
+ // compaction.
+ // TODO(chiahungduan): Allow local cache store the raw pointer and keep
+ // storing the compacted pointers in each region to save memory.
+ static const bool DisablePtrCompaction = Config::getEnableMultiRegions();
+ static_assert(!DisablePtrCompaction || sizeof(CompactPtrT) == sizeof(uptr),
+ "Pointer compaction is disabled, `CompactPtrT` needs to be the "
+ "same size of `uptr`");
----------------
ChiaHungDuan wrote:
Done
https://github.com/llvm/llvm-project/pull/98076
More information about the llvm-commits
mailing list