ICE in `find_reloads', at reload.c:4106
John David Anglin
dave@hiauly1.hia.nrc.ca
Wed Jun 14 15:43:00 GMT 2000
> > base_after_vec = 0, min_after_vec = 0, max_after_vec = 0,
> > min_after_base = 1, max_after_base = 1, offset_unsigned = 1, = 3,
> > scale = 25}, rt_cselib = 0x19f880, rtbit = 0x19f880,
> > rttree = 0x19f880, bb = 0x19f880}}}
> >
> > Why does rld[0] contain data for an input reload when the only
> > input for the instruction is cc0? Is this residual garbage?
> >
> > The problem could probably be fixed by deleting the sltu pattern but
> > this isn't the real fix.
> Put a conditional breakpoint in emit_reload_insns for insn # 173.
>
> When it hits
> p debug_reload()
It doesn't hit emit_reload_insns:
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x000f301c in find_reloads
at ../../gcc/reload.c:4119
breakpoint already hit 1 time
4 breakpoint keep y 0x00101ffc in emit_reload_insns
at ../../gcc/reload1.c:6767
At the breakpoint in reload.c, we have
(gdb) p debug_reload()
Reload 0: reload_in (SI) = (pre_dec:SI (reg:SI 14 sp))
ALL_REGS, RELOAD_FOR_INPUT (opnum = 0), inc by 4
reload_in_reg: (pre_dec:SI (reg:SI 14 sp))
$56 = void
Break 1 is at the abort in the following:
#ifdef HAVE_cc0
/* If we made any reloads for addresses, see if they violate a
"no input reloads" requirement for this insn. But loads that we
do after the insn (such as for output addresses) are fine. */
if (no_input_reloads)
for (i = 0; i < n_reloads; i++)
if (rld[i].in != 0
&& rld[i].when_needed != RELOAD_FOR_OUTADDR_ADDRESS
&& rld[i].when_needed != RELOAD_FOR_OUTPUT_ADDRESS)
abort ();
#endif
Can you point me to where rld[0] is being set?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
More information about the Gcc-bugs
mailing list