Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c323bd22eabf78d8dcf13b84666c8bb83855444d
      
https://github.com/WebKit/WebKit/commit/c323bd22eabf78d8dcf13b84666c8bb83855444d
  Author: Yusuke Suzuki <ysuz...@apple.com>
  Date:   2023-08-11 (Fri, 11 Aug 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecode/CodeBlock.cpp
    M Source/JavaScriptCore/bytecode/CodeBlock.h
    M Source/JavaScriptCore/bytecode/ExecutionCounter.cpp
    M Source/JavaScriptCore/bytecode/ExecutionCounter.h
    M Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
    M Source/JavaScriptCore/runtime/OptionsList.h

  Log Message:
  -----------
  [JSC] Make profiling check-pointing longer for mega functions
https://bugs.webkit.org/show_bug.cgi?id=260010
rdar://113668308

Reviewed by Justin Michaud.

While we designed our profiling collection with "they are cheap" assumption, 
this is not true for some mega-sized functions.
There are some mega-sized functions, which can be generated by toolings etc., 
has massive amount of ValueProfiles, and causing
very long stop for profile update.

In this patch, we attempt to avoid this pathological case. When function size 
exceeds the threshold, we categorize it as mega-sized,
and we relax maximumExecutionCountsBetweenCheckpoints more larger. Because we 
do profiling update on each checkpoint, making it longer
means less frequent profiling update.

* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::optimizationThresholdScalingFactor const):
(JSC::CodeBlock::optimizationThresholdScalingFactor): Deleted.
* Source/JavaScriptCore/bytecode/CodeBlock.h:
* Source/JavaScriptCore/bytecode/ExecutionCounter.cpp:
(JSC::maximumExecutionCountsBetweenCheckpoints):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold const):
(JSC::ExecutionCounter<countingVariant>::setThreshold):
* Source/JavaScriptCore/bytecode/ExecutionCounter.h:
(JSC::ExecutionCounter::clippedThreshold):
(JSC::ExecutionCounter::maximumExecutionCountsBetweenCheckpoints): Deleted.
* Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):
* Source/JavaScriptCore/runtime/OptionsList.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to