Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b7beed0850ad4df011e94193572175a2e69d90f9
https://github.com/WebKit/WebKit/commit/b7beed0850ad4df011e94193572175a2e69d90f9
Author: Yusuke Suzuki <[email protected]>
Date: 2025-05-01 (Thu, 01 May 2025)
Changed paths:
A JSTests/stress/multi-put-by-val-does-not-use-cow.js
A JSTests/stress/multi-put-by-val.js
M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
M Source/JavaScriptCore/dfg/DFGClobberize.h
M Source/JavaScriptCore/dfg/DFGDoesGC.cpp
M Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
M Source/JavaScriptCore/dfg/DFGGraph.h
M Source/JavaScriptCore/dfg/DFGNode.h
M Source/JavaScriptCore/dfg/DFGNodeType.h
M Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp
M Source/JavaScriptCore/dfg/DFGSafeToExecute.h
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
M Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
M Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp
M Source/JavaScriptCore/ftl/FTLCapabilities.cpp
M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Log Message:
-----------
[JSC] Add MultiPutByVal
https://bugs.webkit.org/show_bug.cgi?id=292213
rdar://150219398
Reviewed by Yijia Huang and Keith Miller.
This patch adds MultiPutByVal. The support right now is very limited,
which is,
MultiPutByVal(some-arrays, Int32, Int32)
form is only supported. Also, we do not support CoW JSArrays.
This can be extended later, but right now, we are not supporting them.
Since CoW matters in PutByVal, we are using indexingMode instead of
indexingType compared to MultiGetByVal.
* JSTests/stress/multi-put-by-val-does-not-use-cow.js: Added.
(shouldBe):
(shouldBeArray):
(test):
* JSTests/stress/multi-put-by-val.js: Added.
(shouldBe):
(shouldBeArray):
(test):
* Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* Source/JavaScriptCore/dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* Source/JavaScriptCore/dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::refineArrayModesForMultiGetByVal):
(JSC::DFG::FixupPhase::refineArrayModesForMultiPutByVal):
(JSC::DFG::FixupPhase::refineArrayModesForMultiByVal): Deleted.
* Source/JavaScriptCore/dfg/DFGGraph.h:
* Source/JavaScriptCore/dfg/DFGNode.h:
(JSC::DFG::Node::convertToMultiPutByVal):
(JSC::DFG::Node::hasMultiPutByValData):
(JSC::DFG::Node::multiPutByValData):
(JSC::DFG::Node::hasArrayModes):
(JSC::DFG::Node::arrayModes):
(JSC::DFG::Node::hasArrayMode):
(JSC::DFG::Node::arrayMode):
(JSC::DFG::Node::setArrayMode):
(JSC::DFG::Node::hasECMAMode):
(JSC::DFG::Node::ecmaMode):
* Source/JavaScriptCore/dfg/DFGNodeType.h:
* Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp:
* Source/JavaScriptCore/dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* Source/JavaScriptCore/dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
* Source/JavaScriptCore/ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
Canonical link: https://commits.webkit.org/294380@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