[webkit-changes] [WebKit/WebKit] 4b922e: [JSC] FTL should not load arguments twice for type...
Yusuke Suzuki
noreply at github.com
Fri Jun 2 18:42:35 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4b922ed0225742e027a5689412dca1f94c4226a1
https://github.com/WebKit/WebKit/commit/4b922ed0225742e027a5689412dca1f94c4226a1
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-06-02 (Fri, 02 Jun 2023)
Changed paths:
M JSTests/stress/force-string-array-or-string.js
M Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp
M Source/JavaScriptCore/b3/testb3.h
M Source/JavaScriptCore/b3/testb3_1.cpp
M Source/JavaScriptCore/b3/testb3_8.cpp
Log Message:
-----------
[JSC] FTL should not load arguments twice for type check and use for non-full-64bit values
https://bugs.webkit.org/show_bug.cgi?id=192073
rdar://110121633
Reviewed by Mark Lam.
This patch removes redundant loads from the same address even when the access width is different.
Like,
@y = Load64(@x)
@z = Load32(@x)
is converted to
@y = Load64(@x)
@z = Trunc(@y)
if no clobbering happens between these two loads. This pattern can be seen in FTL since FTL does Int32 check
with 64bit load for an argument first and later it loads 32bit part of this Int32. Right now, we are loading
twice. This patch eliminates the second load with B3 CSE.
* Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:
Canonical link: https://commits.webkit.org/264846@main
More information about the webkit-changes
mailing list