This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question on fixup_abnormal_edges
Jan Hubicka wrote:
> I think we should make reload to recognize that given insn never
> fallsthru and avoid it from generating such dead code. Even in case of
> USE it is wrong and here as well. What is the last insn in the basic
> block?
The same as the previous one:
Breakpoint 2, fixup_abnormal_edges () at ../../src/gcc/reload1.c:9522
9522 && insn != bb->head)
(gdb) list
9518 /* Get past the new insns generated. Allow notes, as the insns may
9519 be already deleted. */
9520 while ((GET_CODE (insn) == INSN || GET_CODE (insn) == NOTE)
9521 && !can_throw_internal (insn)
9522 && insn != bb->head)
9523 insn = PREV_INSN (insn);
9524 if (GET_CODE (insn) != CALL_INSN && !can_throw_internal (insn))
9525 abort ();
9526 bb->end = insn;
(gdb) p e
$1 = 0x0
(gdb) pr bb->end
(insn 2134 444 445 (set (reg:DI 22 $22)
(mem:DI (plus:DI (reg/f:DI 29 $29)
(const_int 640 [0x280])) [48 S8 A64])) 244 {*movdi_nofix} (nil)
(nil))
Olivier