[webkit-changes] [WebKit/WebKit] f24813: [JSC] Adjust inlining options

Yusuke Suzuki noreply at github.com
Mon Dec 18 03:48:00 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f24813dedb83ca8d8fe4339fc1a97668683e20ea
      https://github.com/WebKit/WebKit/commit/f24813dedb83ca8d8fe4339fc1a97668683e20ea
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-12-18 (Mon, 18 Dec 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecode/CodeBlock.cpp
    M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
    M Source/JavaScriptCore/dfg/DFGCapabilities.cpp
    M Source/JavaScriptCore/dfg/DFGCapabilities.h
    M Source/JavaScriptCore/heap/LocalAllocatorInlines.h
    M Source/JavaScriptCore/jit/JITPlan.h
    M Source/JavaScriptCore/runtime/Options.cpp
    M Source/JavaScriptCore/runtime/OptionsList.h

  Log Message:
  -----------
  [JSC] Adjust inlining options
https://bugs.webkit.org/show_bug.cgi?id=266563
rdar://119795209

Reviewed by Justin Michaud.

This patch extends JSC to have different inlining options for DFG and FTL.
This is great since DFG and FTL have different purpose and we would like
to make DFG smaller-compilation and faster and keeping FTL heavy and highly optimized.
And then, we adjust these numbers based on benchmarks.

1. DFG inlining heuristics becomes 80.
2. FTL call inlining heuristics becomes 125.

* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::computeCapabilityLevel):
(JSC::CodeBlock::noticeIncomingCall):
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::inliningCost):
(JSC::DFG::ByteCodeParser::getInliningBalance):
* Source/JavaScriptCore/dfg/DFGCapabilities.cpp:
(JSC::DFG::mightInlineFunctionForCall):
(JSC::DFG::mightInlineFunctionForClosureCall):
(JSC::DFG::mightInlineFunctionForConstruct):
* Source/JavaScriptCore/dfg/DFGCapabilities.h:
(JSC::DFG::mightInlineFunctionForCall):
(JSC::DFG::mightInlineFunctionForClosureCall):
(JSC::DFG::mightInlineFunctionForConstruct):
(JSC::DFG::functionForCallCapabilityLevel):
(JSC::DFG::functionForConstructCapabilityLevel):
(JSC::DFG::inlineFunctionForCallCapabilityLevel):
(JSC::DFG::inlineFunctionForClosureCallCapabilityLevel):
(JSC::DFG::inlineFunctionForConstructCapabilityLevel):
(JSC::DFG::mightInlineFunctionFor):
(JSC::DFG::mightInlineFunction):
(JSC::DFG::inlineFunctionForCapabilityLevel):
* Source/JavaScriptCore/heap/LocalAllocatorInlines.h:
(JSC::LocalAllocator::allocate):
* Source/JavaScriptCore/jit/JITPlan.h:
(JSC::JITPlan::jitType const):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::overrideDefaults):
* Source/JavaScriptCore/runtime/OptionsList.h:

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




More information about the webkit-changes mailing list