Hi,
this patch fixes compute_function_frequency to work well with profiles
that was downgraded from IPA to local profiles.
Bootstrapped/regtested x86_64-linux, comitted.
honza
* predict.c (compute_function_frequency): Check for presence of IPA
profile.
Index: predict.c
===================================================================
--- predict.c (revision 279167)
+++ predict.c (working copy)
@@ -3932,13 +3932,11 @@ compute_function_frequency (void)
if (DECL_STATIC_DESTRUCTOR (current_function_decl))
node->only_called_at_exit = true;
- if (profile_status_for_fn (cfun) != PROFILE_READ)
+ if (!ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa_p ())
{
int flags = flags_from_decl_or_type (current_function_decl);
- if ((ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa_p ()
- && ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero
())
- || lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl))
- != NULL)
+ if (lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl))
+ != NULL)
{
node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED;
warn_function_cold (current_function_decl);