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. > 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). -- Alan Modra Australia Development Lab, IBM