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