[webkit-changes] [WebKit/WebKit] 33eeb7: [JSC] Further simplify Structure transitions

Yusuke Suzuki noreply at github.com
Mon May 15 23:56:11 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 33eeb781c9b5901be1d162e566d9f8bdc9bd7152
      https://github.com/WebKit/WebKit/commit/33eeb781c9b5901be1d162e566d9f8bdc9bd7152
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSBigInt.h
    M Source/JavaScriptCore/runtime/JSCellInlines.h
    M Source/JavaScriptCore/runtime/JSString.h
    M Source/JavaScriptCore/runtime/Structure.cpp
    M Source/JavaScriptCore/runtime/Structure.h
    M Source/JavaScriptCore/runtime/StructureInlines.h
    M Source/JavaScriptCore/runtime/Symbol.h

  Log Message:
  -----------
  [JSC] Further simplify Structure transitions
https://bugs.webkit.org/show_bug.cgi?id=256804
rdar://109371189

Reviewed by Mark Lam.

Micro-optimize Put operation.

1. Inline Structure::pin.
2. Leverage overridesPut flag.

                                    ToT                     Patched

    dictionary-addition      111.8379+-0.6996     ^    106.8357+-0.6202        ^ definitely 1.0468x faster

* Source/JavaScriptCore/runtime/JSCellInlines.h:
(JSC::JSCell::putInline):
* Source/JavaScriptCore/runtime/Structure.cpp:
(JSC::Structure::pin): Deleted.
* Source/JavaScriptCore/runtime/Structure.h:
* Source/JavaScriptCore/runtime/StructureInlines.h:
(JSC::Structure::pin):

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




More information about the webkit-changes mailing list