Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: de28096b962622d37ebbf83783fbae3637546316
      
https://github.com/WebKit/WebKit/commit/de28096b962622d37ebbf83783fbae3637546316
  Author: Geoffrey Garen <[email protected]>
  Date:   2026-05-04 (Mon, 04 May 2026)

  Changed paths:
    M Source/JavaScriptCore/shell/playstation/TestShell.cpp
    M Source/WebCore/platform/graphics/gstreamer/ImageGStreamerSkia.cpp
    M 
Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
    M Source/WebCore/platform/graphics/skia/ComplexTextControllerSkia.cpp
    M Source/WebKit/Platform/IPC/ArgumentCoders.h
    A Source/WebKit/Platform/IPC/glib/ArgumentCodersGUniquePtr.h
    R Source/WebKit/Platform/IPC/glib/ArgumentCodersGlib.h
    M Source/cmake/WebKitCommon.cmake
    A Source/cmake/WebKitHeaderMap.cmake
    M Source/cmake/WebKitMacros.cmake
    A Tools/Scripts/generate-header-map
    A Tools/Scripts/hmaptool

  Log Message:
  -----------
  [CMake] Adopt "header maps" (.hmap files) to speed up -I resolution
https://bugs.webkit.org/show_bug.cgi?id=314000
rdar://176200808

Reviewed by Keith Miller.

Otherwise, clang needs to stat hundreds of directories at startup.

About a 26s / 3% clean build speedup.

  ┌───────────────┬──────────┬──────────┬──────────────────┐
  │     build     │   OFF    │    ON    │        Δ         │
  ├───────────────┼──────────┼──────────┼──────────────────┤
  │ cold          │ 918.21 s │ 892.15 s │ −26.1 s (−2.8 %) │
  ├───────────────┼──────────┼──────────┼──────────────────┤
  │ touch-jsc     │ 4.57 s   │ 4.49 s   │ −0.08 s (−1.8 %) │
  ├───────────────┼──────────┼──────────┼──────────────────┤
  │ touch-webcore │ 23.11 s  │ 22.76 s  │ −0.35 s (−1.5 %) │
  ├───────────────┼──────────┼──────────┼──────────────────┤
  │ noop          │ 0.39 s   │ 0.36 s   │ −0.03 s          │
  └───────────────┴──────────┴──────────┴──────────────────┘

* Source/cmake/WebKitCommon.cmake:
* Source/cmake/WebKitHeaderMap.cmake:
* Source/cmake/WebKitMacros.cmake: Tell CMake we're doing header maps.

* Tools/Scripts/generate-header-map: Added. This script packages up
a .json description of our -I paths for LLVM's hmap tool.

* Tools/Scripts/hmaptool: Added. This script writes out the binary
hash table .hmap file. The file format is publicly documented, has
multiple implementations, has backward-compatible versioning, and
hasn't changed since 2018. So it's probably OK to depend on.

* Source/JavaScriptCore/shell/playstation/TestShell.cpp: Fixed an
off-by-one-level #include.

* Source/WebCore/platform/graphics/gstreamer/ImageGStreamerSkia.cpp:
* Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
* Source/WebCore/platform/graphics/skia/ComplexTextControllerSkia.cpp:
* Source/WebKit/Platform/IPC/ArgumentCoders.h:
* Source/WebKit/Platform/IPC/glib/ArgumentCodersGUniquePtr.h: Renamed from
Source/WebKit/Platform/IPC/glib/ArgumentCodersGlib.h. Otherwise two
different headers have the same name with one letter of different case,
which was no fun to debug at all.

Canonical link: https://commits.webkit.org/312588@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to