(Waking up an old thread with my 2 cents due to being a little
behind on reading...)

On Sat, 6 Dec 2014, Jakub Jelinek wrote:
> On Sat, Dec 06, 2014 at 09:28:57AM +0100, Uros Bizjak wrote:
> > > That's already what it does though, did you mean the opposite?  Or did you
> > > mean to write "combine" instead of "compare"?
> >
> > The above should read "... that existing RTX *combine* pass be updated
> > ...", thanks for pointing out!
>
> Which target actually uses the [(operation) (set (cc) ...)] order in their
> *.md patterns?  Even aarch64 and arm use the [(set (cc) ...) (operation)]
> order that combine expects, I thought compare-elim was written for those
> targets?  If the vast majority of mds use the order that combine expects,
> I think it should be easier to adjust compare-elim.c and those few targets
> that diverge.

The current cc-first order happened more of an accidental
opinion than an architectural decision as I vaguely recall, when
asking.  We also have the canonical location of a *cc clobber*,
i.e. last in a parallel.  For that reason, it then makes sense
to have the *cc-setting* last.  Changing rebelling ports doesn't
solve that inconsistency.

So, my vote for canonically declaring the order non-canonical
*and* automatically generating/matching both orders.

brgds, H-P

Reply via email to