Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bf340ec206a1119d12e10dace602e3edf35d31a5
      
https://github.com/WebKit/WebKit/commit/bf340ec206a1119d12e10dace602e3edf35d31a5
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2025-04-24 (Thu, 24 Apr 2025)

  Changed paths:
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.cpp
    M Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.h
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

  Log Message:
  -----------
  [JSC] Integrate Int52 result into MultiGetByVal
https://bugs.webkit.org/show_bug.cgi?id=291958
rdar://149857634

Reviewed by Yijia Huang.

When MultiGetByVal is emitted with DoubleArray | Uint32Array for
example, the result is considered as JSValue. Then we need to box and
unbox values while we already know that the result is used under the
context of Int52.

In this patch, we attempt to put Int52Result flag to MultiGetByVal. Then
it will generate Int52 result directly when it is specified. To find the
beneficial case, we extend ValueRep reduction phase to detect
MultiGetByVal nodes which is only used under Int52 context. Then we
attach Int52Result flag to that node and FTL will generate a code which
directly generates Int52 results.

* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.cpp:
(JSC::DFG::ValueRepReductionPhase::run):
(JSC::DFG::ValueRepReductionPhase::convertValueRepsToUnboxed):
(JSC::DFG::ValueRepReductionPhase::convertValueRepsToDouble): Deleted.
* Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.h:
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileInt52Rep):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

Canonical link: https://commits.webkit.org/294067@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to