On Sat, Aug 06, 2016 at 10:53:33AM +0930, Alan Modra wrote: > On Fri, Aug 05, 2016 at 06:01:47PM -0500, Segher Boessenkool wrote: > > On Fri, Aug 05, 2016 at 02:20:40PM +0930, Alan Modra wrote: > > > Here are the reload costs for the various alternatives of > > > movsf_hardfloat: > > > "=!r, !r, m, f, ww, ww, !r, f, wb, m, wY, wu, Z,?wn, ?r,*c*l, !r, *h" > > > "r, m, r, f, ww, j, j, m, wY, f, wb, Z, wu, r, wn, r, *h, 0" > > > 617 609 17 17 8 8 617 9 8 17 17 8 17 23 23 17 617 17 > > > > I agree reg-reg moves should come after reg-mem moves, but is it such > > a good idea to put e.g. f->f after r->*c*l? > > I doubt it matters but I agree that it's unnecessary to move the > reg-reg moves to the last alternative. They just need to be after > equivalent class reg-mem moves. I'll move them earlier, which is > better since exact matches cut short the alternative evaluation.
Thanks! > > The costs look in pretty bad shape anyway. > > They make sense to me.. At least, they did when I was looking at them > in reload. :) One thing I didn't show is that alternatives like ww,j > are rejected regardless of the cost ("bad" is set by find_reloads). For some reason I forgot ww is a superset of f. Yeah it's not so bad. Perhaps :-) Segher