[webkit-changes] [WebKit/WebKit] 1a8d6c: [JSC] Split super complicated IC code generation c...

Yusuke Suzuki noreply at github.com
Tue May 21 01:35:04 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1a8d6ca80b53fb104e690a22745bbb367abadab8
      https://github.com/WebKit/WebKit/commit/1a8d6ca80b53fb104e690a22745bbb367abadab8
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-05-21 (Tue, 21 May 2024)

  Changed paths:
    M Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp

  Log Message:
  -----------
  [JSC] Split super complicated IC code generation clause into three different ones
https://bugs.webkit.org/show_bug.cgi?id=274429
rdar://128435898

Reviewed by Justin Michaud.

Load, GetGetter, CustomValueGetter, CustomValueSetter, CustomAccessorGetter, CustomAccessorSetter, Getter, Setter, and IntrinsicGetter are
sharing one switch-clause, and it makes code incredibly complicated and hard to follow. Let's just split them into three.

1. Load, GetGetter
2. CustomValueGetter, CustomValueSetter, CustomAccessorGetter, CustomAccessorSetter
3. Getter, Setter, IntrinsicGetter

This significantly reduces complexity for simple IC (like Load), and it also improves some code generation for CustomAccessorGetter / CustomAccessorSetter,
where we are unnecessarily loading property owner GPR before.

* Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp:
(JSC::InlineCacheCompiler::generateImpl):

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



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


More information about the webkit-changes mailing list