Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-26 Thread Ulrich Weigand
Alan Modra wrote: > Some notes: Setting old to rl->in_reg when it is a subreg doesn't > change the cases where delete_output_reload is called, since that call > is protected by REG_P (old). The same thing goes for the following: > > /* If we are reloading a pseudo-register that was set by the

Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
On Wed, Feb 26, 2014 at 01:03:52AM +1030, Alan Modra wrote: > On Tue, Feb 25, 2014 at 02:30:59PM +0100, Ulrich Weigand wrote: > > Instead, there's code in emit_input_reload_insns that is supposed > > to re-check whether a secondary reload is still needed if something > > changed significantly, e.g.

Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
On Tue, Feb 25, 2014 at 02:30:59PM +0100, Ulrich Weigand wrote: > Alan Modra wrote: > > > Normally, reload 2, the secondary reload for reload 3, would result in > > a call to reload_v16qi_si_load with (reg:V16QI 78 1) as its "reg" > > argument, and the mem home for pseudo reg 159 as its "mem" arg.

Re: [RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Ulrich Weigand
Alan Modra wrote: > Normally, reload 2, the secondary reload for reload 3, would result in > a call to reload_v16qi_si_load with (reg:V16QI 78 1) as its "reg" > argument, and the mem home for pseudo reg 159 as its "mem" arg. > > However, reload1.c:choose_reload_regs has code to, as the comment >

[RS6000, patch] pr57936, ICE in rs6000_secondary_reload_inner

2014-02-25 Thread Alan Modra
PR57936 is regarding a reload problem with rs6000_secondary_reload_inner. This is the failing instruction, as at the start of reload: (insn 61 60 62 3 (set (reg:V16QI 220) (unspec:V16QI [ (subreg:V16QI (reg:V2DI 159 [ D.2446 ]) 0) (subreg:V16QI (reg:V2DI 15