Summary: | [9 Regression] Assembler Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined | ||
---|---|---|---|
Product: | gcc | Reporter: | H.J. Lu <hjl.tools> |
Component: | lto | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | hubicka |
Priority: | P3 | Keywords: | assemble-failure |
Version: | 9.0 | ||
Target Milestone: | 9.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: |
Description
H.J. Lu
2018-12-01 16:27:57 UTC
Can you try to reduce this failure? I am getting same error with profiledbootstrap ../configure --enable-checking=release --prefix=/aux/hubicka/trunk-install/ --disable-werror --with-build-config=bootstrap-lto --disable-plugin I guess when creating the symbol you want to check if symbol of same name is already in the symbol table and skip it, so clones made at compile/wpa time do not conflict with clones made at ltrans time? Honza In function ‘_GLOBAL__I_65535_1_cp_lang.o’: lto1: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without /tmp/ccKpcs9g.s: Assembler messages: /tmp/ccKpcs9g.s:49952: Error: symbol `_ZN2wi3mulI16generic_wide_intI22fixed_wide_int_storageILi128EEEiEENS_13binary_traitsIT_T0_XsrNS_10int_traitsIS6_EE14precision_typeEXsrNS8_IS7_EE14precision_typeEE11result_typeERKS6_RKS7_.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:74607: Error: symbol `_Z10multiple_pILj1ElilEN10if_nonpolyIT1_bXsr15poly_int_traitsIS1_E7is_polyEE4typeERK12poly_int_podIXT_ET0_ES1_PS6_IXT_ET2_E.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:88768: Error: symbol `_ZL19regno_ok_for_base_pj12machine_modeh8rtx_codeS0_.constprop.0' is already defined /tmp/ccKpcs9g.s:89655: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:89893: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:89960: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:96444: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:96751: Error: symbol `_ZL19regno_ok_for_base_pj12machine_modeh8rtx_codeS0_.constprop.0' is already defined /tmp/ccKpcs9g.s:96839: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:101732: Error: symbol `_ZL15_succ_iter_condP13succ_iteratorPP8rtx_insnS2_PFbP8edge_defS0_E.constprop.0' is already defined /tmp/ccKpcs9g.s:103133: Error: symbol `_ZL15_succ_iter_condP13succ_iteratorPP8rtx_insnS2_PFbP8edge_defS0_E.constprop.0.cold' is already defined /tmp/ccKpcs9g.s:114090: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:114968: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:115035: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:116035: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:116153: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:117419: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:140354: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined So before the patch we were just lucky, right? When seeing the patches I wondered whether we instead want to add a clone_count member to cgraph_node (which we could stream) and use that for the .NUM suffix. We alread have it (sort-of) if we walk the clones list and do counting, right? Originally we maintained things safe by having the global counter and not using same suffixes (i.e. constprop/wpa etc.) during early, wpa and late optimization, so things did not conflict. I wonder how the conflict happens here. All the .constprop clones are produced at WPA so we should have counter for those right? I need to take closer look at the patch. Honza (In reply to Richard Biener from comment #3) > So before the patch we were just lucky, right? When seeing the patches I > wondered whether we instead want to add a clone_count member to cgraph_node > (which we could stream) and use that for the .NUM suffix. We alread have > it (sort-of) if we walk the clones list and do counting, right? But the root of the problem is that multiple different cgraph_nodes share the same name, so even if two or more nodes like that have counters == 0 we would get the same conflict. Unless it's always the case that the additional cgraph_nodes with the same decl name are made as copies of the original one and their counter values are copied as well - I'm not sure if things actually work like that, I'm just guessing... > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88297
>
> --- Comment #5 from michael.ploujnikov at oracle dot com ---
> (In reply to Richard Biener from comment #3)
> > So before the patch we were just lucky, right? When seeing the patches I
> > wondered whether we instead want to add a clone_count member to cgraph_node
> > (which we could stream) and use that for the .NUM suffix. We alread have
> > it (sort-of) if we walk the clones list and do counting, right?
>
> But the root of the problem is that multiple different cgraph_nodes share the
> same name, so even if two or more nodes like that have counters == 0 we would
> get the same conflict. Unless it's always the case that the additional
They are linked together as "transparent aliases". So one node has no
transparent_alias set and other sets it and node->alias_target will get you to
the "master" node.
Honza
Author: plouj Date: Tue Dec 4 14:22:09 2018 New Revision: 266780 URL: https://gcc.gnu.org/viewcvs?rev=266780&root=gcc&view=rev Log: PR ipa/88297 * ipa-cp.c (create_specialized_node): Track clone counters by node assembler names. (ipcp_driver): Change type of clone_num_suffixes key to const char*. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-cp.c |