Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4b922ed0225742e027a5689412dca1f94c4226a1
      
https://github.com/WebKit/WebKit/commit/4b922ed0225742e027a5689412dca1f94c4226a1
  Author: Yusuke Suzuki <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to