> 2013-04-29  Radovan Obradovic  <robrado...@mips.com>
>             Tom de Vries  <t...@codesourcery.com>
> 
>       * cgraph.h (struct cgraph_node): Add function_used_regs,
>       function_used_regs_initialized and function_used_regs_valid fields.
>       * final.c: Move include of hard-reg-set.h to before rtl.h to declare
>       find_all_hard_reg_sets.
>       (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_node)
>       (get_call_reg_set_usage): New function.
>       (rest_of_handle_final): Use collect_fn_hard_reg_usage.
> ---
>  gcc/cgraph.h |   7 ++++
>  gcc/final.c  | 117 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  gcc/regs.h   |   4 ++
>  3 files changed, 127 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/cgraph.h b/gcc/cgraph.h
> index 84fc1d9..bbbbd1f 100644
> --- a/gcc/cgraph.h
> +++ b/gcc/cgraph.h
> @@ -408,6 +408,13 @@ public:
>    /* Time profiler: first run of function.  */
>    int tp_first_run;
>  
> +  /* Call unsaved hard registers really used by the corresponding
> +     function (including ones used by functions called by the
> +     function).  */
> +  HARD_REG_SET function_used_regs;
> +  /* Set if function_used_regs is valid.  */
> +  unsigned function_used_regs_valid: 1;
> +

This approach seems resonable, but please move the data into cgraph_rtl_info
substructure and access it via cgraph_rtl_info.  (I have plan to move it off
cgraph_node, so it doesn't consume memory at WPA stage)

The cgraph bits are OK with this change.

I am sorry for late reply,
Honza

Reply via email to