Second, I've changed it to use a forward scan. As far as I am aware, in
the presence of conditional execution, a forward scan does not need to
keep track of extra state - it only relies on correct REG_DEAD notes. I
don't actually know whether df produces correct death notes in the
presence of conditional execution (I suspect it does not - can anyone
say for sure?), but in any case using a forward scan here shifts the
problem out of recog.c entirely. Only when performing a substitution do
we process the new insns in a backward scan, since they won't have
REG_DEAD notes.