[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