Message ID | alpine.LSU.2.20.1701111628110.14052@zhemvz.fhfr.qr |
---|---|
State | New |
Headers | show |
Hi Richard, On Wed, 2017-01-11 16:28:33 +0100, Richard Biener <rguenther@suse.de> wrote: > On Wed, 11 Jan 2017, Richard Biener wrote: > > LTO bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > > > (most "gross" are still TS_LIST having a type and TS_VEC having type > > and chain, but that's been hard to fix with the C++ FE in place) > > Forgot the tree-core.h part. > > Re-bootstrapping testing on x86_64-unknown-linux-gnu. > > Richard. > > 2017-01-11 Richard Biener <rguenther@suse.de> > > * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION > and TS_TARGET_OPTION directly derive from TS_BASE. > * tree-core.h (tree_optimization_option): Derive from tree_base. > (tree_target_option): Likewise. This caused (or uncovered) a self-test issue on arm-netbsdelf (as run by config-list.mk), like in this build: http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=696565 /home/jbglaw/build-configlist_mk/arm-netbsdelf/build-gcc/mk/arm-netbsdelf/./gcc/xgcc -B/home/jbglaw/build-configlist_mk/arm-netbsdelf/build-gcc/mk/arm-netbsdelf/./gcc/ -nostdinc -x c /dev/null -S -o /dev/null -fself-test=/home/jbglaw/repos-configlist_mk/gcc/gcc/testsuite/selftests cc1: internal compiler error: Segmentation fault 0xaf7fdf crash_signal /home/jbglaw/repos-configlist_mk/gcc/gcc/toplev.c:333 0x6739b3 lookup_page_table_entry /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:635 0x6739b3 ggc_set_mark(void const*) /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:1532 0x571bff gt_ggc_mx_lang_tree_node(void*) ./gt-c-c-decl.h:49 0x57242a gt_ggc_mx_lang_tree_node(void*) ./gt-c-c-decl.h:401 0x572fae gt_ggc_mx_lang_tree_node(void*) ./gt-c-c-decl.h:382 0x571e61 gt_ggc_mx_lang_tree_node(void*) ./gt-c-c-decl.h:391 0x83ed15 ggc_mark_root_tab /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-common.c:77 0x83ef70 ggc_mark_roots() /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-common.c:94 0x674417 ggc_collect() /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:2202 0x842dff selftest::forcibly_ggc_collect() /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-tests.c:36 0x11d0491 selftest::run_tests() /home/jbglaw/repos-configlist_mk/gcc/gcc/selftest-run-tests.c:103 0xaf9742 toplev::run_self_tests() /home/jbglaw/repos-configlist_mk/gcc/gcc/toplev.c:2046 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Makefile:1932: recipe for target 's-selftest' failed Reverting your patch from current HEAD lets the self-test pass. Do you spot something obvious? MfG, JBG
On Mon, 27 Feb 2017, Jan-Benedict Glaw wrote: > Hi Richard, > > On Wed, 2017-01-11 16:28:33 +0100, Richard Biener <rguenther@suse.de> wrote: > > On Wed, 11 Jan 2017, Richard Biener wrote: > > > LTO bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > > > > > (most "gross" are still TS_LIST having a type and TS_VEC having type > > > and chain, but that's been hard to fix with the C++ FE in place) > > > > Forgot the tree-core.h part. > > > > Re-bootstrapping testing on x86_64-unknown-linux-gnu. > > > > Richard. > > > > 2017-01-11 Richard Biener <rguenther@suse.de> > > > > * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION > > and TS_TARGET_OPTION directly derive from TS_BASE. > > * tree-core.h (tree_optimization_option): Derive from tree_base. > > (tree_target_option): Likewise. > > This caused (or uncovered) a self-test issue on arm-netbsdelf (as run > by config-list.mk), like in this build: > http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=696565 > > /home/jbglaw/build-configlist_mk/arm-netbsdelf/build-gcc/mk/arm-netbsdelf/./gcc/xgcc -B/home/jbglaw/build-configlist_mk/arm-netbsdelf/build-gcc/mk/arm-netbsdelf/./gcc/ -nostdinc -x c /dev/null -S -o /dev/null -fself-test=/home/jbglaw/repos-configlist_mk/gcc/gcc/testsuite/selftests > cc1: internal compiler error: Segmentation fault > 0xaf7fdf crash_signal > /home/jbglaw/repos-configlist_mk/gcc/gcc/toplev.c:333 > 0x6739b3 lookup_page_table_entry > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:635 > 0x6739b3 ggc_set_mark(void const*) > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:1532 > 0x571bff gt_ggc_mx_lang_tree_node(void*) > ./gt-c-c-decl.h:49 > 0x57242a gt_ggc_mx_lang_tree_node(void*) > ./gt-c-c-decl.h:401 > 0x572fae gt_ggc_mx_lang_tree_node(void*) > ./gt-c-c-decl.h:382 > 0x571e61 gt_ggc_mx_lang_tree_node(void*) > ./gt-c-c-decl.h:391 > 0x83ed15 ggc_mark_root_tab > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-common.c:77 > 0x83ef70 ggc_mark_roots() > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-common.c:94 > 0x674417 ggc_collect() > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-page.c:2202 > 0x842dff selftest::forcibly_ggc_collect() > /home/jbglaw/repos-configlist_mk/gcc/gcc/ggc-tests.c:36 > 0x11d0491 selftest::run_tests() > /home/jbglaw/repos-configlist_mk/gcc/gcc/selftest-run-tests.c:103 > 0xaf9742 toplev::run_self_tests() > /home/jbglaw/repos-configlist_mk/gcc/gcc/toplev.c:2046 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. > Makefile:1932: recipe for target 's-selftest' failed > > > Reverting your patch from current HEAD lets the self-test pass. Do you > spot something obvious? No, can you see which collect call in the self-test is involved? That is, a better backtrace, eventually when compiling the testcase with -O0? Richard. > MfG, JBG > >
On Mon, 2017-02-27 09:19:51 +0100, Richard Biener <rguenther@suse.de> wrote: > On Mon, 27 Feb 2017, Jan-Benedict Glaw wrote: > > On Wed, 2017-01-11 16:28:33 +0100, Richard Biener <rguenther@suse.de> wrote: > > > On Wed, 11 Jan 2017, Richard Biener wrote: > > > > LTO bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > > > > > > > (most "gross" are still TS_LIST having a type and TS_VEC having type > > > > and chain, but that's been hard to fix with the C++ FE in place) > > > > > > Forgot the tree-core.h part. > > > > > > Re-bootstrapping testing on x86_64-unknown-linux-gnu. > > > > > > Richard. > > > > > > 2017-01-11 Richard Biener <rguenther@suse.de> > > > > > > * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION > > > and TS_TARGET_OPTION directly derive from TS_BASE. > > > * tree-core.h (tree_optimization_option): Derive from tree_base. > > > (tree_target_option): Likewise. > > > > This caused (or uncovered) a self-test issue on arm-netbsdelf (as run > > by config-list.mk), like in this build: > > http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=696565 [...] > > Reverting your patch from current HEAD lets the self-test pass. Do you > > spot something obvious? > > No, can you see which collect call in the self-test is involved? > That is, a better backtrace, eventually when compiling the testcase > with -O0? Starting with selftest::run_tests(), these tests need to be run to trigger it, all others can be omitted: ggc_tests_c_tests (); input_c_tests (); gimple_c_tests (); rtl_tests_c_tests (); read_rtl_function_c_tests (); --> forcibly_ggc_collect (); In this constellation, we have on the stack: (gdb) bt full #0 0x00000000008aad77 in lookup_page_table_entry (p=0x7) at ../../gcc/gcc/ggc-page.c:635 base = 0x23649c0 L1 = 246 L2 = 320 table = 0x0 high_bits = 0 #1 0x00000000008abe72 in ggc_set_mark (p=0x7) at ../../gcc/gcc/ggc-page.c:1532 entry = 0x7ffff6140228 bit = 23 word = 0 mask = 7730548 __FUNCTION__ = "ggc_set_mark" #2 0x0000000000782d27 in gt_ggc_mx_lang_tree_node (x_p=0x7ffff6140228) at ./gt-c-c-decl.h:49 x = 0x7ffff6140228 xlimit = 0x7 __FUNCTION__ = "gt_ggc_mx_lang_tree_node" #3 0x0000000000784b7a in gt_ggc_mx_lang_tree_node (x_p=0x7ffff6472000) at ./gt-c-c-decl.h:401 i1 = 8 l1 = 252 x = 0x7ffff6472000 xlimit = 0x0 __FUNCTION__ = "gt_ggc_mx_lang_tree_node" #4 0x00000000007849e2 in gt_ggc_mx_lang_tree_node (x_p=0x7ffff64695e8) at ./gt-c-c-decl.h:382 x = 0x7ffff64695e8 xlimit = 0x0 __FUNCTION__ = "gt_ggc_mx_lang_tree_node" #5 0x0000000000782e29 in gt_ggc_mx_lang_tree_node (x_p=0x7ffff646b6c0) at ./gt-c-c-decl.h:68 x = 0x7ffff646b6c0 xlimit = 0x0 __FUNCTION__ = "gt_ggc_mx_lang_tree_node" #6 0x0000000000af4520 in ggc_mark_root_tab (rt=0x1a19c40 <gt_ggc_r_gt_ggc_tests_h>) at ../../gcc/gcc/ggc-common.c:77 i = 0 #7 0x0000000000af45b1 in ggc_mark_roots () at ../../gcc/gcc/ggc-common.c:94 rt = 0x1990db8 <gt_ggc_rtab+120> rtp = 0x0 rti = 0x1998850 <gt_ggc_rd_gt_c_c_decl_h+80> i = 360777445376 #8 0x00000000008ad064 in ggc_collect () at ../../gcc/gcc/ggc-page.c:2202 allocated_last_gc = 4194304 min_expand = 1258291.25 #9 0x0000000000afa314 in selftest::forcibly_ggc_collect () at ../../gcc/gcc/ggc-tests.c:36 No locals. #10 0x000000000181357d in selftest::run_tests () at ../../gcc/gcc/selftest-run-tests.c:103 start_time = 28000 finish_time = 0 elapsed_time = 9164999 #11 0x0000000000ea352c in toplev::run_self_tests (this=0x7fffffffe190) at ../../gcc/gcc/toplev.c:2048 No locals. #12 0x0000000000ea36d3 in toplev::main (this=0x7fffffffe190, argc=20, argv=0x7fffffffe298) at ../../gcc/gcc/toplev.c:2125 __FUNCTION__ = "main" #13 0x00000000018565b2 in main (argc=20, argv=0x7fffffffe298) at ../../gcc/gcc/main.c:39 toplev = {m_use_TV_TOTAL = true, m_init_signals = true} Just for the moment, maybe more tonight. MfG, JBG
Index: gcc/tree.c =================================================================== --- gcc/tree.c (revision 244309) +++ gcc/tree.c (working copy) @@ -508,6 +508,8 @@ initialize_tree_contains_struct (void) { case TS_TYPED: case TS_BLOCK: + case TS_OPTIMIZATION: + case TS_TARGET_OPTION: MARK_TS_BASE (code); break; @@ -532,8 +534,6 @@ initialize_tree_contains_struct (void) case TS_VEC: case TS_BINFO: case TS_OMP_CLAUSE: - case TS_OPTIMIZATION: - case TS_TARGET_OPTION: MARK_TS_COMMON (code); break; Index: gcc/tree-core.h =================================================================== --- gcc/tree-core.h (revision 244309) +++ gcc/tree-core.h (working copy) @@ -1794,7 +1794,7 @@ struct GTY(()) tree_statement_list /* Optimization options used by a function. */ struct GTY(()) tree_optimization_option { - struct tree_common common; + struct tree_base base; /* The optimization options used by the user. */ struct cl_optimization *opts; @@ -1815,7 +1815,7 @@ struct GTY(()) target_globals; /* Target options used by a function. */ struct GTY(()) tree_target_option { - struct tree_common common; + struct tree_base base; /* Target globals for the corresponding target option. */ struct target_globals *globals;