Skip to content
Snippets Groups Projects
user avatar
Darius Mercadier authored
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}
3f1b2ffe
History
Name Last commit Last update