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

Reply via email to