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