Fix legality check in SROA (#28478)
The legality check was using use counts after `finish(compact)` got
to delete, which made them inaccurate. Instead, take a copy of the
use counts before. Additionally, ignore any uses that got deleted
during `finish(compact)`. Fixes #28444.