Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4ba47c6bf8bc21d5cc9506b216426fe876b645d0
https://github.com/WebKit/WebKit/commit/4ba47c6bf8bc21d5cc9506b216426fe876b645d0
Author: Geoffrey Garen <[email protected]>
Date: 2026-05-04 (Mon, 04 May 2026)
Changed paths:
M Source/JavaScriptCore/JavaScriptCorePrefix.h
M Source/JavaScriptCore/SaferCPPExpectations/ForwardDeclCheckerExpectations
M Source/JavaScriptCore/bytecode/CodeBlock.cpp
M Source/JavaScriptCore/heap/SlotVisitorMacros.h
M Source/JavaScriptCore/shell/CMakeLists.txt
M Source/JavaScriptCore/shell/PlatformMac.cmake
A Source/ThirdParty/ANGLE/ANGLEPrefix.h
M Source/ThirdParty/ANGLE/CMakeLists.txt
M Source/WTF/Configurations/WTF.xcconfig
R Source/WTF/WTFPrefix.h
M Source/WTF/wtf/PlatformMac.cmake
A Source/WTF/wtf/WTFPrefix.h
M Source/WebCore/PAL/pal/CMakeLists.txt
A Source/WebCore/PAL/pal/PALPrefix.h
M Source/WebCore/WebCorePrefix.h
M Source/WebGPU/WGSL/CMakeLists.txt
A Source/WebGPU/WGSL/WGSLPrefix.h
M Source/WebGPU/WebGPU/CMakeLists.txt
A Source/WebGPU/WebGPU/WebGPUPrefix.h
M Source/WebKit/CMakeLists.txt
M Source/WebKit/Configurations/BaseTarget.xcconfig
M Source/WebKit/PlatformGTK.cmake
M Source/WebKit/PlatformMac.cmake
M Source/WebKit/PlatformWPE.cmake
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
R Source/WebKit/WebKit2Prefix.h
A Source/WebKit/WebKitPrefix.h
M Source/WebKit/config.h
M Source/WebKitLegacy/PlatformMac.cmake
M Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj
A Source/WebKitLegacy/WebKitLegacyPrefix.h
M Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig
M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm
R Source/WebKitLegacy/mac/WebKitPrefix.h
M Source/cmake/OptionsMac.cmake
M Source/cmake/WebKitCompilerFlags.cmake
M Source/cmake/WebKitMacros.cmake
M Tools/Scripts/webkitpy/style/checkers/cpp.py
M Tools/TestWebKitAPI/CMakeLists.txt
M Tools/TestWebKitAPI/PlatformMac.cmake
M Tools/WebKitTestRunner/CMakeLists.txt
Log Message:
-----------
[CMake] Rationalize precompiled headers
https://bugs.webkit.org/show_bug.cgi?id=313938
<rdar://problem/176144574>
Reviewed by Dan Glastonbury.
~11% clean build speedup; no incremental build regression.
- Added headers with >= 80% usage to their respective projects'
prefix headers
- Turned on prefix headers for projects that compile ObjC++ and/or
Swift.
- Added new prefix headers for PAL, WGSL, WebGPU, and ANGLE/GLESv2.
- Applied existing prefix headers to test targets that were missing
them: testapi, testb3, testwasmdebugger, TestRunnerInjectedBundle,
and TestWebKitAPIInjectedBundle.
- Renamed:
* WebKit2Prefix.h => WebKitPrefix.h
* mac/WebKitPrefix.h => WebKitLegacyPrefix
* WTFPrefix.h => wtf/WTFPrefix.h
- Added a GCC warning suppression because new inlining expands the
the scope of the compiler bug we were already suppressing locally.
Overall A/B results:
┌───────────────────────┬─────────┬─────────┬───────────────────┐
│ Build │ base(s) │ head(s) │ Δ │
├───────────────────────┼─────────┼─────────┼───────────────────┤
│ Clean build │ 1015.13 │ 904.27 │ −110.9 s / −10.9% │
├───────────────────────┼─────────┼─────────┼───────────────────┤
│ Touch APIDataCocoa.mm │ 7.62 │ 7.06 │ −7.3% │
├───────────────────────┼─────────┼─────────┼───────────────────┤
│ No-op │ 0.40 │ 0.42 │ noise │
└───────────────────────┴─────────┴─────────┴───────────────────┘
Per-target A/B results:
┌─────────────────────┬─────────┬───────────────┬───────────────┐
│ Target │ base(s) │ head(s) │ Δ% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WTF │ 101.5 │ 67.7 │ −33.3% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ JavaScriptCore │ 1112.9 │ 921.5 │ −17.2% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ ANGLE │ 431.6 │ 255.3 │ −40.9% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ GLESv2 │ 31.0 │ 25.8 │ −16.7% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ PAL │ 159.2 │ 83.0 │ −47.9% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WGSL │ 171.7 │ 83.6 │ −51.3% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WebGPU │ 192.4 │ 84.7 │ −56.0% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WebCore │ 6858.0 │ 6547.2 │ −4.5% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WebKitLegacy │ 535.3 │ 368.0 │ −31.3% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WebKit (+ARC+procs) │ 3002.8 │ 2657.0 │ −11.5% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ TestWebKit │ 243.3 │ 137.8 │ −43.4% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ TestWebKitAPIBundle │ 60.3 │ 24.9 │ −58.7% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ WebKitTestRunner │ 137.0 │ 116.4 │ −15.1% │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ webrtc │ 1450.5 │ 1422.9 │ noise │
├─────────────────────┼─────────┼───────────────┼───────────────┤
│ TOTAL │ 15654.6 │ 14000.0 │ −10.6% │
└─────────────────────┴─────────┴───────────────┴───────────────┘
* Source/JavaScriptCore/JavaScriptCorePrefix.h:
* Source/JavaScriptCore/SaferCPPExpectations/ForwardDeclCheckerExpectations:
* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::unlinkOrUpgradeIncomingCalls):
* Source/JavaScriptCore/heap/SlotVisitorMacros.h:
* Source/JavaScriptCore/shell/CMakeLists.txt:
* Source/JavaScriptCore/shell/PlatformMac.cmake:
* Source/ThirdParty/ANGLE/ANGLEPrefix.h: Copied from Source/WTF/WTFPrefix.h.
* Source/ThirdParty/ANGLE/CMakeLists.txt:
* Source/WTF/Configurations/WTF.xcconfig:
* Source/WTF/wtf/PlatformMac.cmake:
* Source/WTF/wtf/WTFPrefix.h: Renamed from Source/WTF/WTFPrefix.h.
* Source/WebCore/PAL/pal/CMakeLists.txt:
* Source/WebCore/PAL/pal/PALPrefix.h: Copied from Source/WTF/WTFPrefix.h.
* Source/WebCore/WebCorePrefix.h:
* Source/WebGPU/WGSL/CMakeLists.txt:
* Source/WebGPU/WGSL/WGSLPrefix.h: Copied from Source/WTF/WTFPrefix.h.
* Source/WebGPU/WebGPU/CMakeLists.txt:
* Source/WebGPU/WebGPU/WebGPUPrefix.h: Renamed from Source/WTF/WTFPrefix.h.
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/Configurations/BaseTarget.xcconfig:
* Source/WebKit/PlatformGTK.cmake:
* Source/WebKit/PlatformMac.cmake:
* Source/WebKit/PlatformWPE.cmake:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebKitPrefix.h: Renamed from Source/WebKit/WebKit2Prefix.h.
* Source/WebKit/config.h:
* Source/WebKitLegacy/PlatformMac.cmake:
* Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj:
* Source/WebKitLegacy/WebKitLegacyPrefix.h: Renamed from
Source/WebKitLegacy/mac/WebKitPrefix.h.
* Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
* Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:
* Source/cmake/OptionsMac.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:
* Source/cmake/WebKitMacros.cmake:
* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(check_include_line):
* Tools/TestWebKitAPI/CMakeLists.txt:
* Tools/TestWebKitAPI/PlatformMac.cmake:
* Tools/WebKitTestRunner/CMakeLists.txt:
Canonical link: https://commits.webkit.org/312521@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications