Immediately after the wide-int merge, Solaris/SPARC bootstrap is broken compiling the stage1 libgcc: $ /var/gcc/regression/trunk/11-gcc/build/./gcc/xgcc -B/var/gcc/regression/trunk/11-gcc/build/./gcc/ -B/vol/gcc/sparc-sun-solaris2.11/bin/ -B/vol/gcc/sparc-sun-solaris2.11/lib/ -isystem /vol/gcc/sparc-sun-solaris2.11/include -isystem /vol/gcc/sparc-sun-solaris2.11/sys-include -g -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -I. -I. -I../.././gcc -I/vol/gcc/src/hg/trunk/local/libgcc -I/vol/gcc/src/hg/trunk/local/libgcc/. -I/vol/gcc/src/hg/trunk/local/libgcc/../gcc -I/vol/gcc/src/hg/trunk/local/libgcc/../include -DHAVE_CC_TLS -o _floatdisf.o -MT _floatdisf.o -MD -MP -MF _floatdisf.dep -DL_floatdisf -c /vol/gcc/src/hg/trunk/local/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS /vol/gcc/src/hg/trunk/local/libgcc/libgcc2.c: In function '__floatdisf': /vol/gcc/src/hg/trunk/local/libgcc/libgcc2.c:1674:1: internal compiler error: in decompose, at rtl.h:1442 } ^ 0xae5323 simplify_const_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:3772 0xad976b simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:1958 0xaee5e7 simplify_rtx(rtx_def const*) /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:5769 0x592557 cselib_expand_value_rtx_1 /vol/gcc/src/hg/trunk/local/gcc/cselib.c:1830 0x59165f expand_loc /vol/gcc/src/hg/trunk/local/gcc/cselib.c:1458 0x591b2b cselib_expand_value_rtx_1 /vol/gcc/src/hg/trunk/local/gcc/cselib.c:1621 0x591857 cselib_expand_value_rtx(rtx_def*, bitmap_head*, int) /vol/gcc/src/hg/trunk/local/gcc/cselib.c:1518 0xede93f reverse_op /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:5816 0xedfff3 add_stores /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:6100 0xa7af2f note_stores(rtx_def const*, void (*)(rtx_def*, rtx_def const*, void*), void*) /vol/gcc/src/hg/trunk/local/gcc/rtlanal.c:1563 0xa7afa3 note_stores(rtx_def const*, void (*)(rtx_def*, rtx_def const*, void*), void*) /vol/gcc/src/hg/trunk/local/gcc/rtlanal.c:1568 0xee2fd3 add_with_sets /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:6540 0x595077 cselib_record_sets /vol/gcc/src/hg/trunk/local/gcc/cselib.c:2561 0x5958eb cselib_process_insn(rtx_def*) /vol/gcc/src/hg/trunk/local/gcc/cselib.c:2673 0xef263f vt_initialize /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:10110 0xef322f variable_tracking_main_1 /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:10304 0xef342f variable_tracking_main() /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:10357 0xef350b execute /vol/gcc/src/hg/trunk/local/gcc/var-tracking.c:10395 Rainer
Created attachment 32747 [details] preprocessed input
Created attachment 32749 [details] Proposed patch Please try the attached. The first hunk is the one that fixes the bug. The others were just by inspection.
Bootstrap is into stage2 now. Will take a couple of hours before it's done. Thanks. Rainer
The bootstrap is finished now: my last one is a week and a half ago, but at least some of the regressions are wide-int related: +FAIL: gcc.target/sparc/pdist-2.c (internal compiler error) +FAIL: gcc.target/sparc/pdist-2.c (test for excess errors) +UNRESOLVED: gcc.target/sparc/pdist-2.c scan-assembler-not pdist\\t% +UNRESOLVED: gcc.target/sparc/pdist-2.c scan-tree-dump optimized "return 475" +FAIL: gcc.target/sparc/pdist-3.c (internal compiler error) +FAIL: gcc.target/sparc/pdist-3.c (test for excess errors) +WARNING: gcc.target/sparc/pdist-3.c compilation failed to produce executable +FAIL: gcc.target/sparc/pdistn-2.c (internal compiler error) +FAIL: gcc.target/sparc/pdistn-2.c (test for excess errors) +UNRESOLVED: gcc.target/sparc/pdistn-2.c scan-assembler-not pdistn\\t% +UNRESOLVED: gcc.target/sparc/pdistn-2.c scan-tree-dump optimized "return 473" The first is: /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/sparc/pdist-2.c: In function 'foo': /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/sparc/pdist-2.c:15:1: internal compiler error: in decompose, at wide-int.h:908 0x9d688f wi::int_traits<generic_wide_int<wide_int_storage> >::decompose(long long*, unsigned int, generic_wide_int<wide_int_storage> const&) /vol/gcc/src/hg/trunk/local/gcc/wide-int.h:908 0x9d688f wide_int_ref_storage<generic_wide_int<wide_int_storage> > /vol/gcc/src/hg/trunk/local/gcc/wide-int.h:956 0x9d688f generic_wide_int<generic_wide_int<wide_int_storage> > /vol/gcc/src/hg/trunk/local/gcc/wide-int.h:732 0x9d688f add<tree_node*, generic_wide_int<wide_int_storage> > /vol/gcc/src/hg/trunk/local/gcc/wide-int.h:732 0x9d688f add<tree_node*, generic_wide_int<wide_int_storage> > /vol/gcc/src/hg/trunk/local/gcc/wide-int.h:2319 0x9d688f sparc_fold_builtin /vol/gcc/src/hg/trunk/local/gcc/config/sparc/sparc.c:10946 0x30ff03 fold_call_expr(unsigned int, tree_node*, bool) /vol/gcc/src/hg/trunk/local/gcc/builtins.c:11145 0x4e72bf gimple_fold_stmt_to_constant_1(gimple_statement_base*, tree_node* (*)(tree_node*)) /vol/gcc/src/hg/trunk/local/gcc/gimple-fold.c:2782 0x7ea6f3 ccp_fold /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:1152 0x7ea6f3 evaluate_stmt /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:1670 0x7eb737 visit_assignment /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:2215 0x7ebbab ccp_visit_stmt /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:2298 0x87bdb7 simulate_stmt /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-propagate.c:329 0x87c587 simulate_block /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-propagate.c:452 0x87c587 simulate_block /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-propagate.c:452 0x87c587 ssa_propagate(ssa_prop_result (*)(gimple_statement_base*, edge_def**, tree_node**), ssa_prop_result (*)(gimple_statement_base*)) /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-propagate.c:869 0x7e613f do_ssa_ccp /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:2339 0x7e613f execute /vol/gcc/src/hg/trunk/local/gcc/tree-ssa-ccp.c:2373 +FAIL: gfortran.dg/namelist_utf8.f90 -O0 execution test +FAIL: gfortran.dg/namelist_utf8.f90 -O1 execution test +FAIL: gfortran.dg/namelist_utf8.f90 -O2 execution test +FAIL: gfortran.dg/namelist_utf8.f90 -O3 -fomit-frame-pointer execution test +FAIL: gfortran.dg/namelist_utf8.f90 -O3 -fomit-frame-pointer -funroll-loops e xecution test +FAIL: gfortran.dg/namelist_utf8.f90 -O3 -fomit-frame-pointer -funroll-all-loop s -finline-functions execution test +FAIL: gfortran.dg/namelist_utf8.f90 -O3 -g execution test +FAIL: gfortran.dg/namelist_utf8.f90 -Os execution test Most likely unrelated, PR libfortran/52539 +WARNING: program timed out. +FAIL: gnat.dg/nested_agg_bitfield_constructor.adb (test for excess errors) +WARNING: program timed out. +FAIL: gnat.dg/outer_agg_bitfield_constructor.adb (test for excess errors) +WARNING: gnat.dg/outer_agg_bitfield_constructor.adb compilation failed to produ ce executable Can't tell, but failure is consistent. Rainer
Created attachment 32752 [details] Patch for pdist regression Here's a patch for the pdist regression. I'll need more info about the gnat.dg/outer_agg_bitfield_constructor.adb problem.
> --- Comment #5 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot > gnu.org> --- [...] > Here's a patch for the pdist regression. I'll need more info about I've manually rebuilt cc1 and could successfully run the pdist tests with that. > the gnat.dg/outer_agg_bitfield_constructor.adb problem. In a build tree from 10 days ago, compiling nested_agg_bitfield_constructor.adb took ca. 0:48 s. After the wide-int merge, it's already running for several minutes. All this doesn't guarantee that wide-int is the culprit, of course. I'll check further, probably even running a bootstrap of the rev immediately before the merge. Rainer
> --- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- [...] >> the gnat.dg/outer_agg_bitfield_constructor.adb problem. > > In a build tree from 10 days ago, compiling > nested_agg_bitfield_constructor.adb took ca. 0:48 s. After the wide-int > merge, it's already running for several minutes. In fact, it was still running after two hours. > All this doesn't guarantee that wide-int is the culprit, of course. > I'll check further, probably even running a bootstrap of the rev > immediately before the merge. I did this now and indeed the tests pass in the last rev before the wide-int merge. Rainer
>>> the gnat.dg/outer_agg_bitfield_constructor.adb problem. >> >> In a build tree from 10 days ago, compiling >> nested_agg_bitfield_constructor.adb took ca. 0:48 s. After the wide-int >> merge, it's already running for several minutes. > > In fact, it was still running after two hours. Running the compilation with DTrace based profiled (instead of rebuilding with profiling enabled) found the following top CPU consumers: __gnat_portable_no_block_spawn 994414500 system__os_lib__non_blocking_spawn 1002010800 make__compile_sources__compile.15427 1010527200 make__compile_sources__start_compile_if_possible.15545 1029687100 namet__name_chars__set_item 1248495500 snames__initialize 1710811700 namet__name_find 1750025500 So something strange seems to be happening in gcc/ada/named.adb (Name_Find). Rainer
Author: rsandifo Date: Wed May 14 15:42:52 2014 New Revision: 210428 URL: http://gcc.gnu.org/viewcvs?rev=210428&root=gcc&view=rev Log: gcc/ PR target/61084 * config/sparc/sparc.md: Fix types of low and high in DI constant splitter. Use gen_int_mode in some other splitters. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sparc/sparc.md
Thanks for the fix. The second part, fixing the pdist failures, is still missing, though. I haven't yet had an opportunity to look into the two gnat.dg testcases that still time out. Thanks. Rainer
> I haven't yet had an opportunity to look into the two gnat.dg testcases > that still time out. I'll look into these ones.
Author: rsandifo Date: Mon May 19 07:25:25 2014 New Revision: 210604 URL: http://gcc.gnu.org/viewcvs?rev=210604&root=gcc&view=rev Log: gcc/ PR target/61084 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather than wide_int. Modified: trunk/gcc/ChangeLog trunk/gcc/config/sparc/sparc.c
By Richard.