This is the mail archive of the gcc-bugs@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]

[Bug rtl-optimization/39522] New: [4.4 Regression] fix for PR37514 gives FAIL: gcc.c-torture/execute/stdarg-3.c compilation, -O3 -fomit-frame-pointer -funroll-loops (internal compiler error)


Using r144996 configured for crisv32-axis-linux-gnu (but the error is there for
crisv32-axis-elf, which is somewhat more repeatable and simulator-friendly), I
get these errors:

Running /tmp/x144980/gcc/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
...
FAIL: gcc.c-torture/execute/stdarg-3.c compilation,  -O3 -fomit-frame-pointer
-funroll-loops  (internal compiler error)
FAIL: gcc.c-torture/execute/stdarg-3.c compilation,  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  (internal compiler error)

The error message in gcc.log for the both is:
x/gcc.c-torture/execute/stdarg-3.c: In function 'main':
x/gcc.c-torture/execute/stdarg-3.c:166: internal compiler error: in
reload_as_needed, at reload1.c:4380

"call debug_rtx (insn)" at the gcc_assert at the line in question yields
(insn 427 1353 1140 17
/tmp/x144980/gcc/gcc/testsuite/gcc.c-torture/execute/stdarg-3.c:144 (set
(mem/s/c:SI (reg:SI 6 r6) [10 S4 A8])
        (reg:SI 8 r8)) 38 {*movsi_internal} (expr_list:REG_INC (reg:SI 8 r8)
        (expr_list:REG_INC (reg:SI 6 r6)
            (nil))))

and in_hard_regno is 8 and in_regno is 207.  Note the "spurious" left-over
REG_INC note.

It seems revision 142328 (the fix for PR37514, in which the code and the
triggering gcc_assert was added) exposed or cause this bug.  A crisv32-axis-elf
cc1 from tags/gcc_4_3_3_release does not give any such error, neither does
trunk r142327.  Trunk r142328 does give the error.

FWIW, crisv32-*-* has the interesting trait that it's AUTO_INC_DEC, has a
moderate amount of registers available (in contrast to e.g. ia64) and can't
offset addresses (only (mem reg) and (mem (post_inc reg)) are valid).


-- 
           Summary: [4.4 Regression] fix for PR37514 gives FAIL: gcc.c-
                    torture/execute/stdarg-3.c compilation,  -O3 -fomit-
                    frame-pointer -funroll-loops  (internal compiler error)
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hp at gcc dot gnu dot org
  GCC host triplet: x86_64-unknown-linux-gnu, i686-unknown-linux-gnu
GCC target triplet: crisv32-*-*


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


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