Hi, this patch fixes one extra (and I hope last) place where we mix up global and local porfile.
Bootstrapped/regtested x86_64-linux, comitted. Honza * profile-count.h (profile_count::operator<): Use IPA value for comparsion. (profile_count::operator>): Likewise. (profile_count::operator<=): Likewise. (profile_count::operator>=): Likewise. * predict.c (maybe_hot_count_p): Do not convert to gcov_type. Index: profile-count.h =================================================================== --- profile-count.h (revision 278877) +++ profile-count.h (working copy) @@ -930,14 +930,14 @@ public: { gcc_checking_assert (ipa_p ()); gcc_checking_assert (other >= 0); - return initialized_p () && m_val < (uint64_t) other; + return ipa ().initialized_p () && ipa ().m_val < (uint64_t) other; } bool operator> (const gcov_type other) const { gcc_checking_assert (ipa_p ()); gcc_checking_assert (other >= 0); - return initialized_p () && m_val > (uint64_t) other; + return ipa ().initialized_p () && ipa ().m_val > (uint64_t) other; } bool operator<= (const profile_count &other) const @@ -968,14 +968,14 @@ public: { gcc_checking_assert (ipa_p ()); gcc_checking_assert (other >= 0); - return initialized_p () && m_val <= (uint64_t) other; + return ipa ().initialized_p () && ipa ().m_val <= (uint64_t) other; } bool operator>= (const gcov_type other) const { gcc_checking_assert (ipa_p ()); gcc_checking_assert (other >= 0); - return initialized_p () && m_val >= (uint64_t) other; + return ipa ().initialized_p () && ipa ().m_val >= (uint64_t) other; } /* Return true when value is not zero and can be used for scaling. Index: predict.c =================================================================== --- predict.c (revision 278877) +++ predict.c (working copy) @@ -184,7 +184,7 @@ maybe_hot_count_p (struct function *fun, /* Code executed at most once is not hot. */ if (count <= MAX (profile_info ? profile_info->runs : 1, 1)) return false; - return (count.to_gcov_type () >= get_hot_bb_threshold ()); + return (count >= get_hot_bb_threshold ()); } /* Return true if basic block BB of function FUN can be CPU intensive