[Bug lto/57602] [4.9 Regression] Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422

ysrumyan at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Aug 5 15:22:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57602

--- Comment #14 from Yuri Rumyantsev <ysrumyan at gmail dot com> ---
Hi Jan,

I checked that  all benches from spec2000 are run successfully with
-flto options and eembc_2_0 suite was also run sucessfully with lto
(for 32-bit mode).

So go ahead and commit your fix.

Best regards.
Yuri.

2013/8/5 hubicka at ucw dot cz <gcc-bugzilla@gcc.gnu.org>:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57602
>
> --- Comment #13 from Jan Hubicka <hubicka at ucw dot cz> ---
>> Please, let me know if more info is needed.
> Actually I got the same ICE in meantime.  Here is improved patch (it is still
> testing for me)
>
> Index: cgraph.c
> ===================================================================
> *** cgraph.c    (revision 201483)
> --- cgraph.c    (working copy)
> *************** verify_cgraph_node (struct cgraph_node *
> *** 2363,2369 ****
>         error ("inline clone in same comdat group list");
>         error_found = true;
>       }
> !   if (!node->symbol.definition && node->local.local)
>       {
>         error ("local symbols must be defined");
>         error_found = true;
> --- 2363,2369 ----
>         error ("inline clone in same comdat group list");
>         error_found = true;
>       }
> !   if (!node->symbol.definition && !node->symbol.in_other_partition &&
> node->local.local)
>       {
>         error ("local symbols must be defined");
>         error_found = true;
> Index: ipa.c
> ===================================================================
> *** ipa.c    (revision 201483)
> --- ipa.c    (working copy)
> *************** symtab_remove_unreachable_nodes (bool be
> *** 376,382 ****
>           {
>             if (file)
>           fprintf (file, " %s", cgraph_node_name (node));
> !           cgraph_reset_node (node);
>             changed = true;
>           }
>       }
> --- 376,390 ----
>           {
>             if (file)
>           fprintf (file, " %s", cgraph_node_name (node));
> !           node->symbol.analyzed = false;
> !           node->symbol.definition = false;
> !           node->symbol.cpp_implicit_alias = false;
> !           node->symbol.alias = false;
> !           node->symbol.weakref = false;
> !           if (!node->symbol.in_other_partition)
> !         node->local.local = false;
> !           cgraph_node_remove_callees (node);
> !           ipa_remove_all_references (&node->symbol.ref_list);
>             changed = true;
>           }
>       }
> *************** function_and_variable_visibility (bool w
> *** 888,894 ****
>       }
>     FOR_EACH_DEFINED_FUNCTION (node)
>       {
> !       node->local.local = cgraph_local_node_p (node);
>
>         /* If we know that function can not be overwritten by a different
> semantics
>        and moreover its section can not be discarded, replace all direct calls
> --- 896,902 ----
>       }
>     FOR_EACH_DEFINED_FUNCTION (node)
>       {
> !       node->local.local |= cgraph_local_node_p (node);
>
>         /* If we know that function can not be overwritten by a different
> semantics
>        and moreover its section can not be discarded, replace all direct calls
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.



More information about the Gcc-bugs mailing list