[webkit-changes] [WebKit/WebKit] 93b6b1: [JSC] Do not propagate ValueProfile and ArrayProfi...

Yusuke Suzuki noreply at github.com
Thu Sep 14 19:20:22 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 93b6b134be51831a67d1458153152718987738c9
      https://github.com/WebKit/WebKit/commit/93b6b134be51831a67d1458153152718987738c9
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-09-14 (Thu, 14 Sep 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecode/CodeBlock.cpp

  Log Message:
  -----------
  [JSC] Do not propagate ValueProfile and ArrayProfile in builtin code
https://bugs.webkit.org/show_bug.cgi?id=261583
rdar://115529687

Reviewed by Alexey Shvayka.

Builtin JS code is used in too much different context. As a result, some of code pollute this profile (like, using ArrayStorage!),
and all subsequent code hits this polluted profile unfortunately. Because we are propagating this to UnlinkedCodeBlock, then we
will hit this pollution throughout the subsequent runs. In this patch, we stop propagating collected profiles into UnlinkedCodeBlock
when it is builtin code.

* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateAllNonLazyValueProfilePredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllArrayProfilePredictions):

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




More information about the webkit-changes mailing list