I think the right way to fix this is to wrap the call to early_inliner
and check the TODO flags. See execute_function_todo:
if (flags & TODO_cleanup_cfg)
{
cleanup_tree_cfg ();
if (!(flags & TODO_update_ssa_any) && need_ssa_update_p (cfun))
flags |= TODO_update_ssa;
}
if (flags & TODO_update_ssa_any)
{
unsigned update_flags = flags & TODO_update_ssa_any;
update_ssa (update_flags);
cfun->last_verified &= ~TODO_verify_ssa;
}
David
On Thu, Mar 20, 2014 at 10:39 AM, Dehao Chen <[email protected]> wrote:
> This patch calls update_ssa before compute_inline_paramters.
>
> Bootstrapped and perf test on-going.
>
> OK for google-4_8?
>
> Thanks,
> Dehao
>
> Index: gcc/auto-profile.c
> ===================================================================
> --- gcc/auto-profile.c (revision 208726)
> +++ gcc/auto-profile.c (working copy)
> @@ -1613,6 +1613,7 @@ auto_profile (void)
> early_inliner ();
> }
>
> + update_ssa (TODO_update_ssa);
> compute_inline_parameters (cgraph_get_node (current_function_decl),
> true);
> early_inliner ();
> autofdo::afdo_annotate_cfg (promoted_stmts);
>