In a number of cases, we will end up with redundant register copies quite late in the pipeline (i.e. after AADB, etc.).
A sequence such as this:
mr r30, r3 ... # no clobbering of r30 or r3 mr r3, r30 # this is redundant
Earlier passes sometimes leave sequences such as this behind because the sequence in between clobbers r3, but AADB will rewrite it.
Do you eliminate only the second mr, not both mrs?
We have additional opportunity to erase first mr by rewriting uses of r3 with r30.