Patch updated to add a wrapper early_inline function Index: gcc/auto-profile.c =================================================================== --- gcc/auto-profile.c (revision 208726) +++ gcc/auto-profile.c (working copy) @@ -1449,8 +1449,6 @@ afdo_vpt_for_early_inline (stmt_set *promoted_stmt calculate_dominance_info (CDI_POST_DOMINATORS); calculate_dominance_info (CDI_DOMINATORS); rebuild_cgraph_edges (); - update_ssa (TODO_update_ssa); - compute_inline_parameters (cgraph_get_node (current_function_decl), true); return true; } else @@ -1516,6 +1514,14 @@ afdo_annotate_cfg (const stmt_set &promoted_stmts) } } /* namespace autofdo. */
+static void early_inline () +{ + compute_inline_parameters (cgraph_get_node (current_function_decl), true); + unsigned todo = early_inliner (); + if (todo & TODO_update_ssa_any) + update_ssa (TODO_update_ssa); +} + /* Use AutoFDO profile to annoate the control flow graph. Return the todo flag. */ @@ -1610,11 +1616,10 @@ auto_profile (void) if (!flag_value_profile_transformations || !autofdo::afdo_vpt_for_early_inline (&promoted_stmts)) break; - early_inliner (); + early_inline (); } - compute_inline_parameters (cgraph_get_node (current_function_decl), true); - early_inliner (); + early_inline (); autofdo::afdo_annotate_cfg (promoted_stmts); compute_function_frequency (); update_ssa (TODO_update_ssa); On Thu, Mar 20, 2014 at 11:36 AM, Xinliang David Li <davi...@google.com> wrote: > 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 <de...@google.com> 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); >>