Currently we remove/add all ops we copy from their use lists. We can
just swap the op to remove with the last op, which preserves the
use-lists and needs fewer copies.
But it changes the order of the PHI operands. With this change, 14 unit
tests fail. If that's no concern, I'll go ahead and update them.
Otherwise we could also do the copy with preserving the use-list order I
think.
My motivation for this change is to fix a case where we end up with
a non-deterministic use-list order after simplifycfg, which I think is
caused by this trashing of the use-lists.
Is this "if" actually necessary? Use::removeFromList just unconditionally dereferences Prev.