[compiler-rt] [scudo] Store more blocks in each TransferBatch (PR #70390)
Christopher Ferris via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 1 10:50:50 PST 2024
================
@@ -746,33 +726,57 @@ template <typename Config> class SizeClassAllocator32 {
// Block used by `BatchGroup` is from BatchClassId. Turn the block into
// `TransferBatch` with single block.
TransferBatchT *TB = reinterpret_cast<TransferBatchT *>(BG);
- TB->clear();
- TB->add(
- compactPtr(SizeClassMap::BatchClassId, reinterpret_cast<uptr>(TB)));
+ ToArray[0] =
+ compactPtr(SizeClassMap::BatchClassId, reinterpret_cast<uptr>(TB));
Sci->FreeListInfo.PoppedBlocks += 1;
- return TB;
+ return 1U;
}
+ // So far, instead of always fill blocks to `MaxBlockCount`, we only examine
+ // single `TransferBatch` to minimize the time spent in the primary
+ // allocator. Besides, the sizes of `TransferBatch` and
+ // `CacheT::getMaxCached()` may also impact the times of accessing the
----------------
cferris1000 wrote:
times of -> time spent
https://github.com/llvm/llvm-project/pull/70390
More information about the llvm-commits
mailing list