PR middle-end/53321: [4.8 Regression] LTO bootstrap failed with bootstrap-profiled

Jan Hubicka hubicka@ucw.cz
Tue Jul 31 12:44:00 GMT 2012


> Hi,
> 
> 2012-07-06  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	PR middle-end/53321
> 	PR middle-end/53865
> 	* Makefile.in (tree-profile.o): Depend on ipa-inline.h.
> 
> 	* ipa.c (symtab_remove_unreachable_nodes): Restore
> 	cgraph_propagate_frequency call when something was changed.
> 
> 	* tree-profile.c: Include "ipa-inline.h".
> 	(gimple_gen_ic_func_profiler): Return bool.
> 	(tree_profiling): Call inline_free_summary to clear stale inline
> 	summary if gimple_gen_ic_func_profiler returns true.
> 
> 	* value-prof.h (gimple_gen_ic_func_profiler): Change return
> 	type to bool.

Hi,
My local tree is profedbootstrapping since I had local patch to
prevent recomputation it before ipa_profile pass, but I agree it is better
to not have stale inline summaries around.

> +  /* Clear stale inline summary.  */
> +  if (gen_ic_func_profiler)
> +    inline_free_summary ();

The inline summary is completely dead here. It is computed for purposes of
early inlining and the real inliner will trash it and recompute soon.
(because the one computer by real inliner is more detailed).

matrix_reorg, emutls and tm passes will also suffer from the problem of
invalidating the inling summary. It is better to free it early this.

Can you simply add a micro pass just after pass_early_local_passes calliing
inline_free_summary unconditionally?

Path is preapproved (or I will make it tomorrow unless you beat me).

Thank you!
Honza



More information about the Gcc-patches mailing list