Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c6bec679e3f15b7f15b27077951216048216d2ad
      
https://github.com/WebKit/WebKit/commit/c6bec679e3f15b7f15b27077951216048216d2ad
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-01-03 (Sat, 03 Jan 2026)

  Changed paths:
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/assembler/PerfLog.cpp
    M Source/JavaScriptCore/b3/B3Generate.cpp
    M Source/JavaScriptCore/b3/B3NaturalLoops.h
    M Source/JavaScriptCore/b3/B3PhaseScope.cpp
    M Source/JavaScriptCore/b3/B3Procedure.cpp
    M Source/JavaScriptCore/b3/B3Procedure.h
    M Source/JavaScriptCore/b3/air/AirCode.cpp
    M Source/JavaScriptCore/b3/air/AirCode.h
    A Source/JavaScriptCore/b3/air/AirDominators.h
    M Source/JavaScriptCore/b3/air/AirGenerate.cpp
    A Source/JavaScriptCore/b3/air/AirNaturalLoops.h
    M Source/JavaScriptCore/b3/air/AirPhaseScope.cpp
    M Source/JavaScriptCore/bytecode/BytecodeIndex.cpp
    M Source/JavaScriptCore/bytecode/BytecodeIndex.h
    M Source/JavaScriptCore/bytecode/CodeOrigin.cpp
    M Source/JavaScriptCore/bytecode/CodeOrigin.h
    M Source/JavaScriptCore/dfg/DFGGraph.cpp
    M Source/JavaScriptCore/dfg/DFGGraph.h
    M Source/JavaScriptCore/dfg/DFGNaturalLoops.h
    M Source/JavaScriptCore/dfg/DFGPhase.h
    M Source/JavaScriptCore/ftl/FTLState.cpp
    M Source/JavaScriptCore/runtime/OptionsList.h
    M Source/JavaScriptCore/runtime/ProfilerSupport.cpp
    M Source/JavaScriptCore/runtime/ProfilerSupport.h
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/WTF/wtf/FileSystem.cpp
    M Source/WTF/wtf/FileSystem.h

  Log Message:
  -----------
  [JSC] Add dumpIonGraph option
https://bugs.webkit.org/show_bug.cgi?id=304863
rdar://167451770

Reviewed by Keith Miller.

This patch adds dumpIonGraph option, which generates IonGraph[1] that is
IR debugging format used in SpiderMonkey.
https://mozilla-spidermonkey.github.io/iongraph/ can visualize this
format so that we can easily see the entire CFG phase by phase.

Right now, JSC DFG / FTL / B3 / Air has more flexibility in CFG, for
example JSC CFG can have multiple entrypoints. These difference makes
IonGraph web page sometimes does not work, so right now we are using a
bit customized one, which will be pushed after approval.

[1]: https://spidermonkey.dev/blog/2025/10/28/iongraph-web.html

* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/assembler/PerfLog.cpp:
(JSC::PerfLog::PerfLog):
* Source/JavaScriptCore/b3/B3Generate.cpp:
(JSC::B3::generateToAir):
* Source/JavaScriptCore/b3/B3NaturalLoops.h:
(JSC::B3::NaturalLoops::NaturalLoops):
* Source/JavaScriptCore/b3/B3PhaseScope.cpp:
(JSC::B3::PhaseScope::~PhaseScope):
* Source/JavaScriptCore/b3/B3Procedure.cpp:
(JSC::B3::Procedure::setIonGraphPasses):
(JSC::B3::Procedure::appendIonGraphPass):
* Source/JavaScriptCore/b3/B3Procedure.h:
* Source/JavaScriptCore/b3/air/AirCode.cpp:
(JSC::B3::Air::Code::setIonGraphPasses):
(JSC::B3::Air::Code::appendIonGraphPass):
* Source/JavaScriptCore/b3/air/AirCode.h:
* Source/JavaScriptCore/b3/air/AirDominators.h: Copied from 
Source/JavaScriptCore/b3/B3NaturalLoops.h.
(JSC::B3::Air::Dominators::Dominators):
* Source/JavaScriptCore/b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
* Source/JavaScriptCore/b3/air/AirNaturalLoops.h: Copied from 
Source/JavaScriptCore/b3/B3NaturalLoops.h.
(JSC::B3::Air::NaturalLoops::NaturalLoops):
* Source/JavaScriptCore/b3/air/AirPhaseScope.cpp:
(JSC::B3::Air::PhaseScope::~PhaseScope):
* Source/JavaScriptCore/bytecode/BytecodeIndex.cpp:
(JSC::BytecodeIndex::dump const):
* Source/JavaScriptCore/bytecode/BytecodeIndex.h:
* Source/JavaScriptCore/bytecode/CodeOrigin.cpp:
(JSC::CodeOrigin::dump const):
* Source/JavaScriptCore/bytecode/CodeOrigin.h:
* Source/JavaScriptCore/dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::~Graph):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::appendIonGraphPass):
* Source/JavaScriptCore/dfg/DFGGraph.h:
* Source/JavaScriptCore/dfg/DFGNaturalLoops.h:
(JSC::DFG::NaturalLoops::NaturalLoops):
* Source/JavaScriptCore/dfg/DFGPhase.h:
(JSC::DFG::runAndLog):
* Source/JavaScriptCore/ftl/FTLState.cpp:
(JSC::FTL::State::State):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/runtime/ProfilerSupport.cpp:
(JSC::ProfilerSupport::dumpIonGraphFunction):
* Source/JavaScriptCore/runtime/ProfilerSupport.h:
* Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
(JSC::Wasm::parseAndCompileOMG):
* Source/WTF/wtf/FileSystem.cpp:
(WTF::FileSystemImpl::createDumpFile):
* Source/WTF/wtf/FileSystem.h:

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



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

Reply via email to