[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