ipa-cp: Use profile counters (or not) based on local availability
This is a follow-up small patch to address Honza's review of my previous patch to select saner profile count to base heuristics on. Currently the IPA-CP heuristics switch to PGO-mode only if there are PGO counters available for any part of the call graph. This change makes it to switch to the PGO mode only if any of the incoming edges bringing in the constant in question had any ipa-quality counts on them. Consequently, if a part of the program is built with -fprofile-use and another part without, IPA-CP will use estimated-frequency-based heuristics for the latter. I still wonder whether this should only happen with flag_profile_partial_training on. It seems like we're behaving as if it was always on. gcc/ChangeLog: 2021-10-18 Martin Jambor <mjambor@suse.cz> * ipa-cp.c (good_cloning_opportunity_p): Decide whether to use profile feedback depending on their local availability.
This commit is contained in:
parent
ab1008255e
commit
ab810952eb
1 changed files with 2 additions and 2 deletions
|
@ -3311,9 +3311,9 @@ good_cloning_opportunity_p (struct cgraph_node *node, sreal time_benefit,
|
|||
|
||||
ipa_node_params *info = ipa_node_params_sum->get (node);
|
||||
int eval_threshold = opt_for_fn (node->decl, param_ipa_cp_eval_threshold);
|
||||
if (base_count > profile_count::zero ())
|
||||
if (count_sum > profile_count::zero ())
|
||||
{
|
||||
|
||||
gcc_assert (base_count > profile_count::zero ());
|
||||
sreal factor = count_sum.probability_in (base_count).to_sreal ();
|
||||
sreal evaluation = (time_benefit * factor) / size_cost;
|
||||
evaluation = incorporate_penalties (node, info, evaluation);
|
||||
|
|
Loading…
Add table
Reference in a new issue