Hi,

On Wed, Sep 23 2020, Martin Liška wrote:
> There's patch that does that.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?
> Thanks,
> Martin
> From ff5f78110684ed9aedde15d19e856b3acf649971 Mon Sep 17 00:00:00 2001
> From: Martin Liska <mli...@suse.cz>
> Date: Wed, 23 Sep 2020 15:10:43 +0200
> Subject: [PATCH] Port IPA CP time and size to sreal
>
> gcc/ChangeLog:
>
>       * ipa-cp.c (ipcp_lattice::print): Print sreal values
>       with to_double.
>       (incorporate_penalties): Change type to sreal.
>       (good_cloning_opportunity_p): Change args to sreal.
>       (get_max_overall_size): Work in sreal type.
>       (estimate_local_effects): Likewise.
>       (safe_add): Remove.
>       (value_topo_info::propagate_effects): Work in sreal type.
>       (ipcp_propagate_stage): Print sreal numbers.
>       (decide_about_value): Work in sreal type.
> ---
>  gcc/ipa-cp.c | 128 ++++++++++++++++++++++++---------------------------
>  1 file changed, 59 insertions(+), 69 deletions(-)
>
> diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
> index b3e7d41ea10..9a79b5862f8 100644
> @@ -3224,8 +3226,9 @@ incorporate_penalties (cgraph_node *node, 
> ipa_node_params *info,
>     potential new clone in FREQUENCIES.  */
>  
>  static bool
> -good_cloning_opportunity_p (struct cgraph_node *node, int time_benefit,
> -                         int freq_sum, profile_count count_sum, int 
> size_cost)
> +good_cloning_opportunity_p (struct cgraph_node *node, sreal time_benefit,
> +                         sreal freq_sum, profile_count count_sum,

Is the change of type of freq_sum intentional?  Even with this patch,
all the callers will keep passing their frequency sums as ints and so
the implicit conversion seems a bit misleading.

I guess complete transition to sreals would include also switch from
using cgraph_edge::frequency to sreal_frequency in
get_info_about_necessary_edges and users of struct caller_statistics.

I planned to work on conversions to sreals right after resolving various
exchange2 issues and I can still do this bit afterwards, but the change
in the parameter type looks like you wanted to but eventually did not?

Thanks,

Martin


Reply via email to