Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7202c59d1d29bec2ad6994e6c59aa4e27bf60f85
https://github.com/WebKit/WebKit/commit/7202c59d1d29bec2ad6994e6c59aa4e27bf60f85
Author: Yusuke Suzuki <[email protected]>
Date: 2023-03-07 (Tue, 07 Mar 2023)
Changed paths:
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
M Source/JavaScriptCore/wasm/WasmBBQJIT.h
M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
M Source/JavaScriptCore/wasm/WasmBBQPlan.h
M Source/JavaScriptCore/wasm/WasmCallee.h
Log Message:
-----------
[JSC] Use JumpTable in WasmBBQJIT
https://bugs.webkit.org/show_bug.cgi?id=253472
rdar://106330476
Reviewed by Justin Michaud.
This patch implements JumpTable in WasmBBQJIT to implement wasm BrTable
efficiently.
Currently, we are always doing binary-switch, which significantly bloats the
code size.
Fortunately, wasm BrTable is super simple: targets are 0-N, and taking default
if it exceeds N.
This is pretty easy to generate JumpTable for that.
We generate JumpTable in the link task, and put it in BBQCallee. It improves
JetStream2/tsf-wasm's Runtime by 7~10%.
Before:
Running tsf-wasm:
Startup: 833.333
Run time: 3.415
Score: 53.349
After:
Running tsf-wasm:
Startup: 833.333
Run time: 3.652
Score: 55.169
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJIT::BBQJIT):
(JSC::Wasm::BBQJIT::addSwitch):
(JSC::Wasm::parseAndCompileBBQ):
* Source/JavaScriptCore/wasm/WasmBBQJIT.h:
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunction):
* Source/JavaScriptCore/wasm/WasmBBQPlan.h:
* Source/JavaScriptCore/wasm/WasmCallee.h:
Canonical link: https://commits.webkit.org/261345@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes