Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5dd6865434312c3def91b287b6faba33ba795833
https://github.com/WebKit/WebKit/commit/5dd6865434312c3def91b287b6faba33ba795833
Author: Yusuke Suzuki <[email protected]>
Date: 2026-06-30 (Tue, 30 Jun 2026)
Changed paths:
A JSTests/microbenchmarks/get-by-val-array-storage-sparse-hole.js
A JSTests/microbenchmarks/get-by-val-array-storage-sparse.js
M Source/JavaScriptCore/dfg/DFGOperations.cpp
M Source/JavaScriptCore/dfg/DFGOperations.h
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Log Message:
-----------
[JSC] Add ArrayStorage + GetByVal specific operation
https://bugs.webkit.org/show_bug.cgi?id=318180
rdar://180990441
Reviewed by Tadeu Zagallo.
This patch adds operationGetByValArrayStorageInt, which is tailored for
ArrayStorage slow path operation. DFG / FTL can use this when we already
speculate ArrayStorage, but it is a slow path.
ToT Patched
get-by-val-array-storage-sparse-hole 122.9244+-1.1533 ^
62.5947+-9.6089 ^ definitely 1.9638x faster
get-by-val-array-storage-sparse 117.8623+-0.4612 ^
84.7042+-0.5769 ^ definitely 1.3915x faster
Tests: JSTests/microbenchmarks/get-by-val-array-storage-sparse-hole.js
JSTests/microbenchmarks/get-by-val-array-storage-sparse.js
* JSTests/microbenchmarks/get-by-val-array-storage-sparse-hole.js: Added.
(get array):
* JSTests/microbenchmarks/get-by-val-array-storage-sparse.js: Added.
(get array):
* Source/JavaScriptCore/dfg/DFGOperations.cpp:
(JSC::DFG::getByValArrayStorageInt):
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
* Source/JavaScriptCore/dfg/DFGOperations.h:
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValImpl):
Canonical link: https://commits.webkit.org/316142@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications