This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]