On Thu, Mar 20, 2014 at 12:40 PM, Dehao Chen <de...@google.com> wrote:
> 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);

Is this update still needed?

David

>
> 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);
>>>

Reply via email to