Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4af3bbad9cda43c2c6a6580bc45f493fd010c161
      
https://github.com/WebKit/WebKit/commit/4af3bbad9cda43c2c6a6580bc45f493fd010c161
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-08-13 (Thu, 13 Aug 2026)

  Changed paths:
    M 
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp
    M Source/JavaScriptCore/b3/air/AirGenerate.cpp
    M Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp
    M Source/JavaScriptCore/b3/air/AirSimplifyCFG.cpp
    M Source/JavaScriptCore/jit/JIT.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.h

  Log Message:
  -----------
  [JSC] Avoid unnecessary work in JIT code generation loop
https://bugs.webkit.org/show_bug.cgi?id=321655
rdar://184783026

Reviewed by Justin Michaud.

This patch removes unnecessary work done in JIT code generation main
loop in Air, BBQ, and Baseline JIT.

1. Disassembler's label creation

Creating label is not free. It is adding label entry in the
MacroAssembler's buffer. Let's avoid this when it is not necessary. We
have many labels which are only used when disassembler is enabled.

2. Move some of loop invariant values

Let's move some loop invariant values out of the hot loop in Air.

3. Quickly check whether we have Stack / CallArg args

They are relatively rare args. Let's just scan it first, before invoking
generic inst.forEachArg.

* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
* Source/JavaScriptCore/b3/air/AirGenerate.cpp:
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):
* Source/JavaScriptCore/b3/air/AirLowerStackArgs.cpp:
(JSC::B3::Air::lowerStackArgs):
* Source/JavaScriptCore/b3/air/AirSimplifyCFG.cpp:
(JSC::B3::Air::simplifyCFG):
* Source/JavaScriptCore/jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::BBQJIT):
(JSC::Wasm::BBQJITImpl::BBQJIT::origin):
(JSC::Wasm::BBQJITImpl::BBQJIT::recordOpcodeOrigin):
(JSC::Wasm::BBQJITImpl::BBQJIT::willParseOpcode):
(JSC::Wasm::BBQJITImpl::BBQJIT::willParseExtendedOpcode):
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:

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



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

Reply via email to