On 06/25/2014 08:28 AM, Jeff Law wrote: > Ask an ARM maintainer if the new code is actually better than the old code.
It isn't. > It appears that with the peep2 pass moved that we actually if-convert the > fall-thru path of the conditional and eliminate the conditional. Which, on the > surface seems like a good thing. It may be the case that we need to twiddle > the test. Not sure yet. Looking at the final code in the pr, it looks like we if-convert both ways, just with changed condition on the test. It looks like there are at least 3 peepholes in the arm backend that match compare+branch with a scratch register that are affected by this. I don't think it's reasonable to expect a peephole to match compare + n cond_exec insns, so running peep2 before if-conversion would seem to be called for. Kai, why does your indirect jump peephole require pass_reorder_blocks? It seems to me that instead of moving peephole2 down, we could move duplicate_computed_gotos up. r~