This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/48585] [4.7 Regression] 483.xalancbmk in SPEC CPU 2006 failed to build


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

--- Comment #13 from Jan Hubicka <hubicka at ucw dot cz> 2011-04-22 08:45:38 UTC ---
> Index: gcc/tree-inline.c
> ===================================================================
> --- gcc/tree-inline.c   (revision 172817)
> +++ gcc/tree-inline.c   (working copy)
> @@ -1725,6 +1725,7 @@ copy_bb (copy_body_data *id, basic_block
>               if ((!edge
>                    || (edge->indirect_inlining_edge
>                        && id->transform_call_graph_edges ==
> CB_CGE_MOVE_CLONES))
> +                 && id->dst_node->reachable

Reachable flag is not really maningful in this aspect.  You probably want
analyzed flag here.

As my recolection goes, I remember I had problems with missing edges in the
clones being materialized for later materialization alone.  The problem was
that edges gets redirected to new statement when they exists but when
they not, they are not updated and we need to update the statements in
clones that are in callgraph.
Back then I decided to temporarily create the edges so redirection mechanizm
works.  I think since then we fixed it properly by looking for edges in the
descendands even if edge does not exist, so I guess the fix above should work.

Thanks for looking into that!

Honza
>                   && (fn = gimple_call_fndecl (stmt)) != NULL)
>                 { 
>                   struct cgraph_node *dest = cgraph_get_node (fn);
> 
> -- 
> Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]