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