On Sat, Jan 17, 2015 at 01:18:44PM -0500, Hans-Peter Nilsson wrote: > (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.
Clobber is clobber, all clobbers come last, so it has nothing to do if cc set is first or second. Jakub