Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7ad346c14cd494bcdfdf1393a1461a7e3090bb47
https://github.com/WebKit/WebKit/commit/7ad346c14cd494bcdfdf1393a1461a7e3090bb47
Author: Geoffrey Garen <[email protected]>
Date: 2026-04-13 (Mon, 13 Apr 2026)
Changed paths:
M Source/JavaScriptCore/heap/GigacageAlignedMemoryAllocator.h
M Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.h
M Source/JavaScriptCore/jit/ExecutableAllocator.h
M Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h
M Source/JavaScriptCore/runtime/ArrayBuffer.cpp
M Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp
M Source/JavaScriptCore/runtime/Butterfly.h
M Source/JavaScriptCore/runtime/JSArrayBufferView.cpp
M Source/JavaScriptCore/runtime/Options.cpp
M Source/JavaScriptCore/runtime/VM.h
M Source/JavaScriptCore/tools/IntegrityInlines.h
M Source/JavaScriptCore/wasm/WasmMemory.cpp
M Source/JavaScriptCore/wasm/js/JSToWasm.cpp
M Source/WTF/WTF.xcodeproj/project.pbxproj
M Source/WTF/wtf/CMakeLists.txt
M Source/WTF/wtf/CagedPtr.h
M Source/WTF/wtf/FastMalloc.cpp
M Source/WTF/wtf/FastMalloc.h
R Source/WTF/wtf/Gigacage.cpp
R Source/WTF/wtf/Gigacage.h
M Source/WTF/wtf/Threading.cpp
M Source/WebCore/bindings/js/SerializedScriptValue.h
M Source/bmalloc/bmalloc/SystemHeap.cpp
M Source/bmalloc/libpas/src/libpas/bmalloc_heap.c
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_flex.c
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c
Log Message:
-----------
[Build Speed] 2s speedup in clean WTF+bmalloc build
https://bugs.webkit.org/show_bug.cgi?id=312108
rdar://174616734
Reviewed by Marcus Plutowski.
Reduced bmalloc compilation overhead.
1. In the WTF configuration where we inline most of bmalloc into
FastMalloc, #ifdef out the separate out of line implementation in bmalloc. It's
unused.
2. Merge Gigacage.h/.cpp and FastMalloc.h/.cpp because it's expensive to include
all the bmalloc inlines separately, and Gigacage is merged with malloc inside
bmalloc anyway.
3. Don't #include all of bmalloc.h in Threading.h just to expose a single QoS
API. Instead expose the API through FastMalloc, which already includes those
headers in its implementation.
* Source/JavaScriptCore/heap/GigacageAlignedMemoryAllocator.h:
* Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.h:
* Source/JavaScriptCore/jit/ExecutableAllocator.h:
* Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:
* Source/JavaScriptCore/runtime/ArrayBuffer.cpp:
* Source/JavaScriptCore/runtime/BufferMemoryHandle.cpp:
* Source/JavaScriptCore/runtime/Butterfly.h:
* Source/JavaScriptCore/runtime/JSArrayBufferView.cpp:
* Source/JavaScriptCore/runtime/Options.cpp:
* Source/JavaScriptCore/runtime/VM.h:
* Source/JavaScriptCore/tools/IntegrityInlines.h:
* Source/JavaScriptCore/wasm/WasmMemory.cpp:
* Source/JavaScriptCore/wasm/js/JSToWasm.cpp:
* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/CMakeLists.txt:
* Source/WTF/wtf/CagedPtr.h:
* Source/WTF/wtf/FastMalloc.cpp:
(WTF::fastSetScavengerThreadQOSClass):
(Gigacage::tryAlignedMalloc):
(Gigacage::tryMalloc):
(Gigacage::malloc):
(Gigacage::tryZeroedMalloc):
(Gigacage::zeroedMalloc):
(Gigacage::tryRealloc):
(Gigacage::free):
(Gigacage::tryAllocateZeroedVirtualPages):
(Gigacage::freeVirtualPages):
(Gigacage::tryMallocArray):
(Gigacage::mallocArray):
* Source/WTF/wtf/FastMalloc.h:
* Source/WTF/wtf/Gigacage.cpp: Removed.
* Source/WTF/wtf/Gigacage.h: Removed.
* Source/WTF/wtf/Threading.cpp:
(WTF::Thread::setGlobalMaxQOSClass):
* Source/WebCore/bindings/js/SerializedScriptValue.h:
* Source/bmalloc/bmalloc/SystemHeap.cpp:
* Source/bmalloc/libpas/src/libpas/bmalloc_heap.c:
(bmalloc_try_allocate_auxiliary_with_alignment_casual):
(bmalloc_allocate_auxiliary_with_alignment_casual):
(bmalloc_try_allocate_auxiliary):
(bmalloc_allocate_auxiliary):
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_flex.c:
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c:
(bmalloc_try_iso_allocate):
(bmalloc_iso_allocate):
(bmalloc_try_iso_allocate_array_by_size): Deleted.
(bmalloc_iso_allocate_array_by_size): Deleted.
Canonical link: https://commits.webkit.org/311125@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications