[webkit-changes] [WebKit/WebKit] 8174a9: [JSC] Combine FuncRefTable entries

Yusuke Suzuki noreply at github.com
Fri Dec 23 23:44:13 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8174a9300cd8edff3c4fc20f5c8d62cd4fa927a9
      https://github.com/WebKit/WebKit/commit/8174a9300cd8edff3c4fc20f5c8d62cd4fa927a9
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2022-12-23 (Fri, 23 Dec 2022)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.cpp
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
    M Source/JavaScriptCore/wasm/WasmTable.cpp
    M Source/JavaScriptCore/wasm/WasmTable.h
    M Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp

  Log Message:
  -----------
  [JSC] Combine FuncRefTable entries
https://bugs.webkit.org/show_bug.cgi?id=249859
rdar://103681015

Reviewed by Mark Lam.

This patch combines FuncRefTable entries into one so that we don't need to access two separate vectors
everytime we call an indirect function.
This patch also constant-fold table-size since this information can be known constant at wasm module level.

* Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h:
(JSC::Wasm::ExpressionType>::addCallIndirect):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addCallIndirect):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::setWasmTableElement):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::doWasmCallIndirect):
* Source/JavaScriptCore/wasm/WasmTable.cpp:
(JSC::Wasm::Table::grow):
(JSC::Wasm::Table::clear):
(JSC::Wasm::FuncRefTable::FuncRefTable):
(JSC::Wasm::FuncRefTable::setFunction):
(JSC::Wasm::FuncRefTable::function const):
(JSC::Wasm::FuncRefTable::copyFunction):
(JSC::Wasm::FuncRefTable::instance const): Deleted.
* Source/JavaScriptCore/wasm/WasmTable.h:
(JSC::Wasm::FuncRefTable::Function::offsetOfFunction):
(JSC::Wasm::FuncRefTable::Function::offsetOfInstance):
(JSC::Wasm::FuncRefTable::offsetOfFunctions):
(JSC::Wasm::FuncRefTable::offsetOfInstances): Deleted.
* Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::set):

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




More information about the webkit-changes mailing list