Hi Segher,

On Fri, Oct 23, 2020 at 11:31:02AM -0500, Segher Boessenkool wrote:
> On Fri, Oct 23, 2020 at 05:15:08PM +1030, Alan Modra wrote:
> > The problem starts with fwprop creating
> > (insn 9 4 0 2 (set (mem:V8HI (and:DI (plus:DI (reg/v/f:DI 121 [ vpp ])
> >                     (const_int 12 [0xc]))
> >                 (const_int -16 [0xfffffffffffffff0])) [0 MEM <vector(8) 
> > short int> [(void *)_4 & -16B]+0 S16 A128])
> >         (reg/v:V8HI 120 [ vp1 ])) "pixel.c":6:10 1237 {vsx_movv8hi_64bit}
> > which is finally thrown out as invalid by lra.  lra of course does that
> > by reloading the entire address.
> 
> While it could/should just reload that 12 into a reg :-(  Could you
> investigate doing that?  Is there any reason we should not?

My first thought was to write the necessary reloads too, but 
I think it's better to not generate the invalid addressing in the
first place.  Hiding the +12 in an invalid memory address means it
isn't exposed to optimization passes.

-- 
Alan Modra
Australia Development Lab, IBM

Reply via email to