[webkit-changes] [WebKit/WebKit] 03d142: [JSC] Not generating code for PolyCall thunk

Yusuke Suzuki noreply at github.com
Thu Jun 20 10:34:12 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 03d14264b528a012119c24f7133ebad920018ecc
      https://github.com/WebKit/WebKit/commit/03d14264b528a012119c24f7133ebad920018ecc
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-06-20 (Thu, 20 Jun 2024)

  Changed paths:
    M Source/JavaScriptCore/bytecode/Repatch.cpp
    M Source/JavaScriptCore/jit/JITThunks.h
    M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp
    M Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
    M Source/JavaScriptCore/jit/ThunkGenerators.cpp
    M Source/JavaScriptCore/jit/ThunkGenerators.h

  Log Message:
  -----------
  [JSC] Not generating code for PolyCall thunk
https://bugs.webkit.org/show_bug.cgi?id=275675
rdar://130180367

Reviewed by Yijia Huang.

We found that major perf issue using pre-generated poly thunk code in FTL comes from updating count for each calls (which does not exist for non pre-generated poly thunk code).
So, we can create a variant of poly thunk code which does not do this for top-tier JIT since top-tier JIT does not need to count these information because there is no upper tiers.
As a result, we can fully switch to non-code-generating Call IC. Repatching exists for FTL, but used codes are all pre-generated at this point.

* Source/JavaScriptCore/bytecode/Repatch.cpp:
(JSC::linkPolymorphicCall):
* Source/JavaScriptCore/jit/JITThunks.h:
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):
(JSC::PolymorphicCallStubRoutine::edges const):
* Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h:
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::polymorphicThunkFor):
(JSC::polymorphicThunk):
(JSC::polymorphicThunkForClosure):
(JSC::polymorphicTopTierThunk):
(JSC::polymorphicTopTierThunkForClosure):
* Source/JavaScriptCore/jit/ThunkGenerators.h:

Canonical link: https://commits.webkit.org/280207@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