[Bug rtl-optimization/45792] New: [4.6 Regression]: cris-elf build failure (hangs) due to fix for PR44374

hp at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Sep 25 19:06:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45792

           Summary: [4.6 Regression]: cris-elf build failure (hangs) due
                    to fix for PR44374
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: hp@gcc.gnu.org
                CC: bernds@gcc.gnu.org
              Host: x86_64-unknown-linux-gnu
            Target: cris-*-*


Created attachment 21882
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=21882
Preprocessed dtoa.c

At r164551 the tree built with few regressions.
At r164560 building newlib/libc/stdlib/dtoa.c hangs (cpu-time > 38 hours) and
at r164619 the build is at a similar state (didn't wait 38 hours, but see
below).

Attaching a gdb-session to the running cc1 at r164619 shows an infinite loop in
gcc/emit-rtl.c:reorder_insns:

4027          for (x = from; x != NEXT_INSN (to); x = NEXT_INSN (x))
4028            if (!BARRIER_P (x))
4029              df_insn_change_bb (x, bb);

But "x" is bogus; it seems to have been deleted or at least removed from the
insn stream:
(insn 2210 2210 2210 239 (set (cc0)
        (compare (reg/v/f:SI 3 r3 [orig:95 mlo ] [95])
            (reg/v/f:SI 4 r4 [orig:97 mhi ] [97])))
/tmp/hpautotest-gcc1/gcc/newlib/libc/stdlib/dtoa.c:808 11 {*cmpsi}
     (nil))

The call to df_insn_change_bb takes the (old_bb == new_bb) early return.

Author of suspect patch in revision range CC:ed.
Preprocessed dtoa.c attached.  Compile with -O2.



More information about the Gcc-bugs mailing list