Skip to content
Snippets Groups Projects
Commit 3f1b2ffe authored by Darius Mercadier's avatar Darius Mercadier Committed by V8 LUCI CQ
Browse files

[turboshaft] Maglev-to-ts: Remove wrong DCHECK in DeadNodeSweeping

AnyUseMarkingProcessor iterates the graph forward, and can only remove
the node it's currently visiting. This means that if a node n1 is only
used in a node n2, which itself has no uses, then {n1} cannot be
removed when it's visited because it has a use. When visiting {n2},
{n2} is removed and the use-count of {n1} is set to 0 (or -1?), but
{n1} is not removed.

Note that in the regular Maglev pipeline, such unused nodes are
removed by LiveRangeAndNextUseProcessor, but this processor doesn't
run in the Turboshaft pipeline, which is how we ended up reaching this
DCHECK.

Bug: chromium:42204525
Change-Id: Id00950fafeb530e48198af93fa6d639b61ee4026
Fixed: chromium:351283984
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5717696


Reviewed-by: default avatarLeszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Darius Mercadier <dmercadier@chromium.org>
Cr-Commit-Position: refs/heads/main@{#95122}
parent 64c07611
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment