[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
================
@@ -274,8 +347,24 @@ template <typename Config> class SizeClassAllocator64 {
DCHECK_LT(ClassId, NumClasses);
DCHECK_GT(Size, 0);
- RegionInfo *Region = getRegionInfo(ClassId);
- if (ClassId == SizeClassMap::BatchClassId) {
+ auto IsPtrInRegion = [](RegionInfo *Region,
+ uptr Ptr) NO_THREAD_SAFETY_ANALYSIS {
+ // Thread-safety annotation doesn't support lambda. Use a runtime check
+ // instead.
+ Region->MMLock.assertHeld();
+ const uptr RegionEnd = Region->MemMapInfo.MemMap.getBase() +
+ Region->MemMapInfo.MemMap.getCapacity();
+ return Ptr >= Region->RegionBeg && Ptr < RegionEnd;
+ };
+
+ // When multiple-regions is enabled, we need to sort the array to dispatch
+ // the blocks to different regions efficiently. Thus even we don't put
+ // BatchClass into groups, sorting is still necessary and it'll be handled
+ // later in the function.
+ // TODO: Reorder the use of variable
----------------
ChiaHungDuan wrote:
Sorry, that's some private note for myself and which has been done.
https://github.com/llvm/llvm-project/pull/98076
More information about the llvm-commits
mailing list