Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8d3fb3092671faf576e584d7a58b0b428f0623be
      
https://github.com/WebKit/WebKit/commit/8d3fb3092671faf576e584d7a58b0b428f0623be
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2023-01-25 (Wed, 25 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp

  Log Message:
  -----------
  [JSC] Optimize wasm CallIndirect more
https://bugs.webkit.org/show_bug.cgi?id=251177
rdar://104669231

Reviewed by Justin Michaud.

This patch further optimizes CallIndirect in OMG tier.

1. We should just get jsCallee and anchoring it in the stack instead of loading 
JSWebAssemblyInstance from Wasm::Instance.
   Callee can keep instance too (via GC), and we can avoid loading a value from 
a bit different memory location.
2. Combine signature check into one branch in the major path.

* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addCallIndirect):
(JSC::Wasm::ExpressionType>::emitIndirectCall):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::createCallPatchpoint):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to