This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
g77-20000131 crash with -O2 -funroll-loops -mcpu=v8 on sparc
- To: gcc-bugs at gcc dot gnu dot org
- Subject: g77-20000131 crash with -O2 -funroll-loops -mcpu=v8 on sparc
- From: Dan Nicolaescu <dann at godzilla dot ICS dot UCI dot EDU>
- Date: Tue, 01 Feb 2000 11:04:01 -0800
Hi!
home/dann/local/packages/gcc-310100/bin/g77 --version
GNU Fortran 0.5.25 20000131 (experimental)
on sparc-sun-solaris2.7
The machine is and Ultra5 with an UltraSparcIIi processor.
crashes when trying to compile swim.f from SPEC95 (I have no idea if I
can include that file here, I hope you have access to SPEC95, if not
contact me to provide more details).
It crashes when trying to compile with:
-O2 -funroll-loops -mcpu=v8
if any of these flags is eliminated the program compiles fine.
Here is a debug session:
Starting program: /home/dann/local/packages/gcc-310100/lib/gcc-lib/sparc-sun-solaris2.7/2.96/f771 -O2 -funroll-loops swim.f -mcpu=v8
MAIN__ inital_ calc1_ calc2_
Program received signal SIGSEGV, Segmentation fault.
0xff3706bc in memcpy () from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
(gdb) bt
#0 0xff3706bc in memcpy () from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
#1 0x257b1c in fp_zero_operand (op=0xfe3f1ff0)
at ../../egcs-20000131/gcc/config/sparc/sparc.c:405
#2 0x226500 in recog_3 (x0=0xfe3d0030, insn=0xfe3e02c0, pnum_clobbers=0xffbee9d4)
at insn-recog.c:6108
#3 0x22c7f8 in recog (x0=0xfe3d0030, insn=0xfe3e02c0, pnum_clobbers=0xffbee9d4)
at insn-recog.c:12404
#4 0x1cb514 in recog_for_combine (pnewpat=0xffbeeaa0, insn=0xfe3e02c0,
pnotes=0xffbeea9c) at ../../egcs-20000131/gcc/combine.c:9438
#5 0x1bcbf4 in try_combine (i3=0xfe3e02c0, i2=0xfe3e02a0, i1=0x0)
at ../../egcs-20000131/gcc/combine.c:1983
#6 0x1baa90 in combine_instructions (f=0x2ce800, nregs=2942976)
at ../../egcs-20000131/gcc/combine.c:619
#7 0xd93c0 in rest_of_compilation (decl=0xfea70d80)
at ../../egcs-20000131/gcc/toplev.c:3248
#8 0x59914 in finish_function (nested=0) at ../../../egcs-20000131/gcc/f/com.c:14223
#9 0x55750 in ffecom_finish_progunit () at ../../../egcs-20000131/gcc/f/com.c:11437
#10 0xb69f0 in ffestd_exec_end () at ../../../egcs-20000131/gcc/f/std.c:1518
#11 0xabeac in ffestc_shriek_subroutine_ (ok=true)
at ../../../egcs-20000131/gcc/f/stc.c:4935
#12 0xb4930 in ffestc_R1225 (name=0x0) at ../../../egcs-20000131/gcc/f/stc.c:12375
#13 0xac988 in ffestc_end () at ../../../egcs-20000131/gcc/f/stc.c:5658
#14 0x904ec in ffestb_end3_ (t=0x3515d8) at ../../../egcs-20000131/gcc/f/stb.c:3307
#15 0x8fe1c in ffestb_end (t=0x3515d8) at ../../../egcs-20000131/gcc/f/stb.c:2985
#16 0x8c400 in ffesta_second_ (t=0x3515d8) at ../../../egcs-20000131/gcc/f/sta.c:1359
#17 0x86518 in ffelex_send_token_ () at ../../../egcs-20000131/gcc/f/lex.c:1696
#18 0x84f44 in ffelex_finish_statement_ () at ../../../egcs-20000131/gcc/f/lex.c:974
#19 0x87a0c in ffelex_file_fixed (wf=0x9, f=0x2da508)
at ../../../egcs-20000131/gcc/f/lex.c:3058
#20 0xd3dfc in ffe_file (wf=0xff201890, f=0x2da508)
at ../../../egcs-20000131/gcc/f/top.c:541
#21 0x8a628 in yyparse () at ../../../egcs-20000131/gcc/f/parse.c:79
#22 0xd7960 in compile_file (name=0xff3515c8 "swim.f")
at ../../egcs-20000131/gcc/toplev.c:2373
#23 0xdbb78 in main (argc=5, argv=0xffbef36c) at ../../egcs-20000131/gcc/toplev.c:4763
(gdb) up 1
#1 0x257b1c in fp_zero_operand (op=0xfe3f1ff0)
at ../../egcs-20000131/gcc/config/sparc/sparc.c:405
405 REAL_VALUE_FROM_CONST_DOUBLE (r, op);
(gdb) p r
$4 = {r = {1, 24, 6, -29417552, -29556704}}
(gdb) p *op
$5 = {code = MEM, mode = SFmode, jump = 0, call = 0, unchanging = 0, volatil = 0,
in_struct = 1, used = 0, integrated = 0, frame_related = 0, fld = {{
rtwint = -29419888, rtint = -29419888, rtstr = 0xfe3f1690 "", rtx = 0xfe3f1690,
rtvec = 0xfe3f1690, rttype = 4265547408, rt_addr_diff_vec_flags = {
min_align = 254, base_after_vec = 0, min_after_vec = 0, max_after_vec = 1,
min_after_base = 1, max_after_base = 1, offset_unsigned = 1, 3, scale = 22},
rtbit = 0xfe3f1690, rttree = 0xfe3f1690, bb = 0xfe3f1690}}}