This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[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)
- From: "hp at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Mar 2009 22:32:28 -0000
- Subject: [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)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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