[webkit-changes] [WebKit/WebKit] 729daa: [JSC] Use ZeroReg more in B3
Yusuke Suzuki
noreply at github.com
Sat Mar 18 14:43:19 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 729daab8b1fcb955d6e487a7b6266894695972f5
https://github.com/WebKit/WebKit/commit/729daab8b1fcb955d6e487a7b6266894695972f5
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-03-18 (Sat, 18 Mar 2023)
Changed paths:
M Source/JavaScriptCore/b3/B3LowerToAir.cpp
M Source/JavaScriptCore/b3/air/AirOpcode.opcodes
Log Message:
-----------
[JSC] Use ZeroReg more in B3
https://bugs.webkit.org/show_bug.cgi?id=254116
rdar://106898502
Reviewed by Mark Lam.
Let's use ZeroReg more in ARM64 B3 backend. This increases a chance of emitting efficient form of
Store with ZeroReg instead of Move $0, %tmp and Store %tmp, Addr. This indirectly reduces the register
pressure and allows B3 / Air to emit more efficient code in general in a high register pressure condition.
In particular, we are targetting tsf-wasm's wasm-function[141]. This scatters massive amount of spills.
And this ZeroReg use reduces pressure, and optimize this hottest function significantly.
With this change, tsf-wasm's Run time gets ~30% improved.
Before:
Running tsf-wasm:
Startup: 833.333
Run time: 2.915
Score: 49.290
After:
Running tsf-wasm:
Startup: 833.333
Run time: 3.776
Score: 56.098
* Source/JavaScriptCore/b3/B3LowerToAir.cpp:
* Source/JavaScriptCore/b3/air/AirOpcode.opcodes:
Canonical link: https://commits.webkit.org/261828@main
More information about the webkit-changes
mailing list