Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bf96ec01cb51a1cb6d43df161854da51ddcebc6c
https://github.com/WebKit/WebKit/commit/bf96ec01cb51a1cb6d43df161854da51ddcebc6c
Author: David Degazio <[email protected]>
Date: 2025-05-19 (Mon, 19 May 2025)
Changed paths:
M Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp
M Source/bmalloc/bmalloc/CompactAllocationMode.h
M Source/bmalloc/bmalloc/DebugHeap.cpp
M Source/bmalloc/bmalloc/IsoHeap.cpp
M Source/bmalloc/bmalloc/IsoHeap.h
M Source/bmalloc/bmalloc/TZoneHeap.cpp
M Source/bmalloc/bmalloc/TZoneHeap.h
M Source/bmalloc/bmalloc/TZoneHeapInlines.h
M Source/bmalloc/bmalloc/TZoneHeapManager.cpp
M Source/bmalloc/bmalloc/TZoneHeapManager.h
M Source/bmalloc/bmalloc/bmalloc.cpp
M Source/bmalloc/libpas/src/libpas/bmalloc_heap.c
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_innards.h
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_ref.h
M Source/bmalloc/libpas/src/libpas/pas_allocation_mode.h
M Source/bmalloc/libpas/src/libpas/pas_heap.c
M Source/bmalloc/libpas/src/libpas/pas_heap.h
M Source/bmalloc/libpas/src/libpas/pas_heap_ref_prefix.h
M Source/bmalloc/libpas/src/libpas/pas_try_allocate.h
M Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h
M Source/bmalloc/libpas/src/test/ExpendableMemoryTests.cpp
M Source/bmalloc/libpas/src/test/IsoHeapChaosTests.cpp
M Source/bmalloc/libpas/src/test/LotsOfHeapsAndThreads.cpp
M Source/bmalloc/libpas/src/test/MemalignTests.cpp
M Source/bmalloc/libpas/src/test/TLCDecommitTests.cpp
Log Message:
-----------
Allocate compactible and non-compactible types out of entirely different heaps
https://bugs.webkit.org/show_bug.cgi?id=292695
rdar://150893097
Reviewed by Mark Lam.
Separates any allocations with a compact allocation mode from
non-compact allocations on a heap level. For general allocations,
we select between the bmalloc common intrinsic heap and a new
auxiliary compact primitive heap based on the allocation mode. For
TZone heaps, this means we create separate buckets for compact and
non-compact types. Both of these mechanisms are disabled by default
for the time being, but in the future we may be able to use this
mechanism to efficiently compress pointers into these heaps using
a base + 32-bit offset encoding.
* Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp:
(JSC::StructureMemoryManager::tryMallocStructureBlock):
* Source/bmalloc/bmalloc/CompactAllocationMode.h:
(bmalloc::asPasAllocationMode):
* Source/bmalloc/bmalloc/DebugHeap.cpp:
(pas_debug_heap_malloc_compact):
(pas_debug_heap_memalign_compact):
(pas_debug_heap_realloc_compact):
* Source/bmalloc/bmalloc/IsoHeap.cpp:
(bmalloc::api::isoAllocateCompact):
(bmalloc::api::isoTryAllocateCompact):
* Source/bmalloc/bmalloc/IsoHeap.h:
(bmalloc::api::IsoHeapBase::provideHeap):
* Source/bmalloc/bmalloc/TZoneHeap.cpp:
(bmalloc::api::tzoneAllocateCompactSlow):
(bmalloc::api::tzoneAllocateCompact):
* Source/bmalloc/bmalloc/TZoneHeap.h:
* Source/bmalloc/bmalloc/TZoneHeapInlines.h:
* Source/bmalloc/bmalloc/TZoneHeapManager.cpp:
(bmalloc::api::nameForTypeNonCompact):
(bmalloc::api::TZoneHeapManager::populateBucketsForSizeClass):
(bmalloc::api::TZoneHeapManager::heapRefForTZoneType):
(bmalloc::api::TZoneHeapManager::TZoneHeapManager::heapRefForTZoneTypeDifferentSize):
* Source/bmalloc/bmalloc/TZoneHeapManager.h:
* Source/bmalloc/bmalloc/bmalloc.cpp:
(bmalloc::api::mallocOutOfLine):
* Source/bmalloc/libpas/src/libpas/bmalloc_heap.c:
(bmalloc_try_allocate_casual):
(bmalloc_allocate_casual):
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_inlines.h:
(bmalloc_try_allocate_auxiliary_inline):
(bmalloc_allocate_auxiliary_inline):
(bmalloc_try_allocate_auxiliary_zeroed_inline):
(bmalloc_allocate_auxiliary_zeroed_inline):
(bmalloc_try_allocate_auxiliary_with_alignment_inline):
(bmalloc_allocate_auxiliary_with_alignment_inline):
(bmalloc_try_reallocate_auxiliary_inline):
(bmalloc_reallocate_auxiliary_inline):
(bmalloc_try_allocate_inline):
(bmalloc_try_allocate_with_alignment_inline):
(bmalloc_try_allocate_zeroed_inline):
(bmalloc_allocate_inline):
(bmalloc_allocate_with_alignment_inline):
(bmalloc_allocate_zeroed_inline):
(bmalloc_try_reallocate_inline):
(bmalloc_reallocate_inline):
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_innards.h:
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_ref.h:
* Source/bmalloc/libpas/src/libpas/pas_allocation_mode.h:
* Source/bmalloc/libpas/src/libpas/pas_heap.c:
(pas_heap_create):
* Source/bmalloc/libpas/src/libpas/pas_heap.h:
* Source/bmalloc/libpas/src/libpas/pas_heap_ref_prefix.h:
* Source/bmalloc/libpas/src/libpas/pas_try_allocate.h:
(pas_try_allocate_impl_inline_only):
* Source/bmalloc/libpas/src/libpas/pas_try_allocate_intrinsic.h:
Canonical link: https://commits.webkit.org/295119@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes