[webkit-changes] [WebKit/WebKit] e29643: [JSC] ArrayProfile should keep DFG OSR exit data

Yusuke Suzuki noreply at github.com
Tue Sep 24 13:37:10 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e296432e532bfe96c3905930ded1f48395b6adee
      https://github.com/WebKit/WebKit/commit/e296432e532bfe96c3905930ded1f48395b6adee
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-09-24 (Tue, 24 Sep 2024)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
    M Source/JavaScriptCore/bytecode/ArrayProfile.cpp
    M Source/JavaScriptCore/bytecode/ArrayProfile.h
    M Source/JavaScriptCore/dfg/DFGOSRExit.cpp
    M Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp

  Log Message:
  -----------
  [JSC] ArrayProfile should keep DFG OSR exit data
https://bugs.webkit.org/show_bug.cgi?id=280248
rdar://136554895

Reviewed by Mark Lam and Michael Saboff.

As the same to ValueProfile, we should keep OSR exit feedback information
separate in ArrayProfile too so that we will always propagate OSR exit
reason feedback to the ArrayProfile. Otherwise, lastSeenStructureID can
be overridden in the normal execution and DFG / FTL will not see the
updated ArrayProfile data.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::or32):
* Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::or32):
* Source/JavaScriptCore/bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
* Source/JavaScriptCore/bytecode/ArrayProfile.h:
(JSC::ArrayProfile::clear):
(JSC::ArrayProfile::addressOfSpeculationFailureStructureID):
(JSC::ArrayProfile::offsetOfSpeculationFailureStructureID):
(JSC::ArrayProfile::offsetOfArrayProfileFlags):
(JSC::ArrayProfile::offsetOfArrayModes):
(JSC::ArrayProfile::addressOfLastSeenStructureID): Deleted.
* Source/JavaScriptCore/dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
* Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list