[webkit-changes] [WebKit/WebKit] 8c792d: [JSC] DFG ASSERTION FAILED: header->predecessors.s...
Yijia Huang
noreply at github.com
Fri Dec 20 16:09:59 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8c792dd54eb930b30bc3fcb70ecc0f74a6a15252
https://github.com/WebKit/WebKit/commit/8c792dd54eb930b30bc3fcb70ecc0f74a6a15252
Author: Yijia Huang <yijia_huang at apple.com>
Date: 2024-12-20 (Fri, 20 Dec 2024)
Changed paths:
A JSTests/stress/loop-unrolling-with-one-iteration.js
M Source/JavaScriptCore/dfg/DFGLoopUnrollingPhase.cpp
Log Message:
-----------
[JSC] DFG ASSERTION FAILED: header->predecessors.size() > 1
https://bugs.webkit.org/show_bug.cgi?id=284883
rdar://141688864
Reviewed by Yusuke Suzuki.
The `BlockInsertionSet::execute` function may fail if the
block insertion set is empty. In such cases, it would not
invalidate all analyses that rely on the CFG.
In the loop unrolling phase, we may unroll a loop with only
one iteration. In this scenario, no additional blocks would
be inserted. However, we still need to invalidate the corresponding
CFG analysis, as unrolling a loop with a single iteration
still disrupts the control flow by eliminating the branch
terminal in the loop tail.
* JSTests/stress/loop-unrolling-with-one-iteration.js: Added.
(random):
(ChiSquared):
(predictor_bit.random_bit.ago.ago.0.predictor_bit.random_bit.history.sort):
* Source/JavaScriptCore/dfg/DFGLoopUnrollingPhase.cpp:
(JSC::DFG::LoopUnrollingPhase::unrollLoop):
Canonical link: https://commits.webkit.org/288198@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list