Skip to content

nir: properly find the entry to keep in copy_prop_vars

Caio Oliveira requested to merge cmarcelo/mesa:bug108624 into master

When copy propagation handles a store/copy, it iterates the current copy entries to remove aliases, but keeps the "equal" entry (if exists) to be updated.

The removal step may swap the entries around (to ensure there are no holes), invalidating previous iteration pointers. The bug was saving such pointer to use later. Change the code to first perform the removals and then find the remaining right entry.

This was causing updates to be lost since they were being made to an entry that was not part of the current copies.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108624 Fixes: b3c61469 "nir: Copy propagation between blocks" Cc: mesa-stable@lists.freedesktop.org

Merge request reports