Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 73422ab1e1b7e6abc80c2ed414d16a337fe081f5
      
https://github.com/WebKit/WebKit/commit/73422ab1e1b7e6abc80c2ed414d16a337fe081f5
  Author: Yusuke Suzuki <[email protected]>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M 
Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
    M Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp
    M Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.h
    M Source/JavaScriptCore/dfg/DFGFinalizer.cpp
    M Source/JavaScriptCore/dfg/DFGFinalizer.h
    M Source/JavaScriptCore/dfg/DFGJITCode.cpp
    M Source/JavaScriptCore/dfg/DFGJITCode.h
    M Source/JavaScriptCore/dfg/DFGJITFinalizer.h
    M Source/JavaScriptCore/dfg/DFGPlan.cpp
    M Source/JavaScriptCore/dfg/DFGPlan.h
    M Source/JavaScriptCore/ftl/FTLJITCode.cpp
    M Source/JavaScriptCore/ftl/FTLJITCode.h
    M Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp
    M Source/JavaScriptCore/ftl/FTLJITFinalizer.h
    M Source/JavaScriptCore/ftl/FTLLink.cpp
    M Source/JavaScriptCore/jit/JITCode.cpp
    M Source/JavaScriptCore/jit/JITCode.h

  Log Message:
  -----------
  [JSC] Simplify DFG finalization in the main thread more
https://bugs.webkit.org/show_bug.cgi?id=272577
rdar://126333191

Reviewed by Justin Michaud.

This patch further simplifies DFG main thread finalization since it turned out 
this is costly.

1. AdaptiveInferredPropertyValueWatchpointBase::install's check should be 
ASSERT since it is huge cost.
2. Most of ConcurrentJSLock in DesiredWatchpoints are unnecessary. Removed.
3. Materialize FixedVector of watchpoints in the concurrent compiler thread 
instead of main thread.
4. JITCode shrinking should be done in the concurrent compiler thread.

* 
Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:
(JSC::AdaptiveInferredPropertyValueWatchpointBase::install):
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::parseBlock):
* Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
(JSC::DFG::SymbolTableAdaptor::add):
(JSC::DFG::FunctionExecutableAdaptor::add):
(JSC::DFG::AdaptiveStructureWatchpointAdaptor::add):
(JSC::DFG::DesiredWatchpoints::addLazily):
(JSC::DFG::DesiredWatchpoints::countWatchpoints):
(JSC::DFG::DesiredWatchpoints::reallyAdd):
(JSC::DFG::WatchpointCollector::finalize): Deleted.
* Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.h:
* Source/JavaScriptCore/dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::shrinkToFit):
* Source/JavaScriptCore/dfg/DFGJITCode.h:
* Source/JavaScriptCore/dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalizeInThread):
(JSC::DFG::Plan::finalize):
* Source/JavaScriptCore/ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::shrinkToFit):
* Source/JavaScriptCore/ftl/FTLJITCode.h:
* Source/JavaScriptCore/jit/JITCode.cpp:
(JSC::JITCode::shrinkToFit):
* Source/JavaScriptCore/jit/JITCode.h:

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



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

Reply via email to