https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104198
--- Comment #11 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #10 from rdapp at linux dot ibm.com --- > Created attachment 52297 > --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52297&action=edit > Tentative patch [...] > A full testsuite run on gcc202 just finished, 83 FAILs, but I haven't yet done > a comparison run from before the ifcvt changes. I've now successfully completed a sparcv9-sun-solaris2.11 bootstrap (sparc-sun-solaris2.11 for comparison with last night's bootstrap of an unpatched tree still running), so we're mostly good again. Thanks. However, I see a couple of regressions compared to the last successful bootstrap: +FAIL: gfortran.dg/maxloc_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error: Segmentation Fault) +FAIL: gfortran.dg/maxloc_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) +UNRESOLVED: gfortran.dg/maxloc_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions compilation failed to produce executable +FAIL: gfortran.dg/minloc_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error: Segmentation Fault) +FAIL: gfortran.dg/minloc_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) +UNRESOLVED: gfortran.dg/minloc_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions compilation failed to produce executable +FAIL: gfortran.dg/minlocval_3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (internal compiler error: Segmentation Fault) +FAIL: gfortran.dg/minlocval_3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) +UNRESOLVED: gfortran.dg/minlocval_3.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions compilation failed to produce executable +FAIL: gfortran.dg/minlocval_3.f90 -O3 -g (internal compiler error: Segmentation Fault) +FAIL: gfortran.dg/minlocval_3.f90 -O3 -g (test for excess errors) +UNRESOLVED: gfortran.dg/minlocval_3.f90 -O3 -g compilation failed to produce executable +FAIL: gfortran.dg/g77/19990826-3.f -O (internal compiler error: Segmentation Fault) +FAIL: gfortran.dg/g77/19990826-3.f -O (test for excess errors) +FAIL: ext/special_functions/hyperg/check_nan.cc (test for excess errors) +UNRESOLVED: ext/special_functions/hyperg/check_nan.cc compilation failed to produce executable +FAIL: ext/special_functions/hyperg/check_value.cc (test for excess errors) +UNRESOLVED: ext/special_functions/hyperg/check_value.cc compilation failed to produce executable +FAIL: ext/special_functions/hyperg/compile.cc (test for excess errors) +FAIL: tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc (test for excess errors) +UNRESOLVED: tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc compilation failed to produce executable +FAIL: tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc (test for excess errors) +UNRESOLVED: tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc compilation failed to produce executable +FAIL: tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc (test for excess errors) +FAIL: tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc (test for excess errors) for both 32 and 64-bit multilibs. All of them are the same, it seems: FAIL: gfortran.dg/maxloc_2.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) Excess errors: during RTL pass: ce1 /vol/gcc/src/hg/master/local/gcc/testsuite/gfortran.dg/maxloc_2.f90:155:3: internal compiler error: Segmentation Fault 0x100fed85b crash_signal /vol/gcc/src/hg/master/local/gcc/toplev.cc:322 0x100f5de28 copy_rtx(rtx_def*) /vol/gcc/src/hg/master/local/gcc/rtl.cc:290 0x101b0905b noce_convert_multiple_sets_1 /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3394 0x101b1027f noce_convert_multiple_sets /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3281 0x101b12a9f noce_process_if_block /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3731 0x101b12a9f noce_find_if_block /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:4485 0x101b12a9f find_if_header /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:4690 0x101b12a9f if_convert /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5831 0x101b13ca7 rest_of_handle_if_conversion /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5896 0x101b13ca7 execute /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5936 gdb shows gdb) run /vol/gcc/src/hg/master/local/gcc/testsuite/gfortran.dg/maxloc_2.f90 -quiet -mcpu=v9 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -o maxloc_2.s Starting program: /var/gcc/regression/master/11.4-gcc-64/build/gcc/testsuite/gfortran/f951 /vol/gcc/src/hg/master/local/gcc/testsuite/gfortran.dg/maxloc_2.f90 -quiet -mcpu=v9 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -o maxloc_2.s [Thread debugging using libthread_db enabled] [New Thread 1 (LWP 1)] Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] copy_rtx (orig=0x0) at /vol/gcc/src/hg/master/local/gcc/rtl.cc:290 290 code = GET_CODE (orig); (gdb) bt #0 copy_rtx (orig=0x0) at /vol/gcc/src/hg/master/local/gcc/rtl.cc:290 #1 0x0000000101b0905c in noce_convert_multiple_sets_1 (if_info=0xffffffff7fffdbc8, need_no_cmov=0xffffffff7fffdbe0, rewired_src=0xffffffff7fffdc10, targets=0xffffffff7fffdbc0, temporaries=0xffffffff7fffdbc8, unmodified_insns=0xffffffff7fffdbd0, last_needs_comparison=0xffffffff7fffdbb4) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3394 #2 0x0000000101b10280 in noce_convert_multiple_sets (if_info=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3280 #3 0x0000000101b12aa0 in noce_process_if_block (if_info=0xffffffff7fffde08) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:3731 #4 noce_find_if_block (pass=2, else_edge=<edge 0xffffffff7ae77a70 (198 -> 202)>, then_edge=<edge 0xffffffff7ae77b60 (198 -> 201)>, test_bb=<basic_block 0xffffffff7af92e38 (198)>) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:4485 #5 find_if_header (pass=2, test_bb=<basic_block 0xffffffff7af92e38 (198)>) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:4690 #6 if_convert (after_combine=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5831 #7 0x0000000101b13ca8 in rest_of_handle_if_conversion () at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5896 #8 (anonymous namespace)::pass_rtl_ifcvt::execute (this=0x0) at /vol/gcc/src/hg/master/local/gcc/ifcvt.cc:5936 #9 0x0000000100ebb0c4 in execute_one_pass (pass=<opt_pass* 0x1023bd000 "ce1"(271)>) at /vol/gcc/src/hg/master/local/gcc/passes.cc:2637 #10 0x0000000100ebbd38 in execute_pass_list_1 (pass=<opt_pass* 0x1023bd000 "ce1"(271)>) at /vol/gcc/src/hg/master/local/gcc/passes.cc:2737 #11 0x0000000100ebbd58 in execute_pass_list_1 (pass=<opt_pass* 0x1023bc9e0 "*rest_of_compilation"(-1)>) at /vol/gcc/src/hg/master/local/gcc/passes.cc:2738 #12 0x0000000100ebbdc0 in execute_pass_list (fn=0xffffffff7acac0b8, pass=<opt_pass* 0x1023b7c00 "fixup_cfg"(98)>) at /vol/gcc/src/hg/master/local/gcc/passes.cc:2748 #13 0x00000001009ad934 in cgraph_node::expand (this=<cgraph_node * const 0xffffffff7ad76110 "main"/1>) at /vol/gcc/src/hg/master/local/gcc/context.h:48 #14 cgraph_node::expand (this=<cgraph_node * const 0xffffffff7ad76110 "main"/1>) at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:1787 #15 0x00000001009afb78 in expand_all_functions () at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:1998 #16 symbol_table::compile (this=0xffffffff7ac10000) at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2348 #17 0x00000001009b42c0 in symbol_table::compile (this=0xffffffff7ac10000) at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2261 #18 symbol_table::finalize_compilation_unit (this=0xffffffff7ac10000) at /vol/gcc/src/hg/master/local/gcc/cgraphunit.cc:2529 #19 0x0000000100fedbf0 in compile_file () at /vol/gcc/src/hg/master/local/gcc/toplev.cc:479 #20 0x0000000100ff2200 in do_compile (no_backend=false) at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2158 #21 toplev::main (this=<optimized out>, argc=<optimized out>, argv=<optimized out>) at /vol/gcc/src/hg/master/local/gcc/toplev.cc:2310 #22 0x0000000101cf90a8 in main (argc=<optimized out>, argv=0xffffffff7fffe7d8) at /vol/gcc/src/hg/master/local/gcc/main.cc:39