On 17/05/12 17:08, Richard Henderson wrote:
My question is, why are you generating compares in two different modes early, before compare-elim runs? If you hadn't done that, your redundant compare would already be eliminated.
I just looked at the rx code and it seems to be doing something similar as my port. The split of cbranch is done after reload but the split pass after reload still happens before compare-elim so I don't think you can commit to a mode _after_ compare-elim, only before. If so, rx suffers from the same problem as my port. Will try to reproduce it in rx.
There's some amount of support for taking a full CCmode and using SELECT_CC_MODE to find one that fits all the uses, but that's only used in the places we're trying to replace a clobber.
Is this the code in combine.c? Cheers, -- PMatos