diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/profile-count.c | 4 | ||||
-rw-r--r-- | gcc/regs.h | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/gcc/profile-count.c b/gcc/profile-count.c index c89914f..aaefc11 100644 --- a/gcc/profile-count.c +++ b/gcc/profile-count.c @@ -270,8 +270,8 @@ profile_count::to_frequency (struct function *fun) const return BB_FREQ_MAX; if (*this == zero ()) return 0; - gcc_assert (REG_BR_PROB_BASE == BB_FREQ_MAX - && fun->cfg->count_max.initialized_p ()); + STATIC_ASSERT (REG_BR_PROB_BASE == BB_FREQ_MAX); + gcc_assert (fun->cfg->count_max.initialized_p ()); profile_probability prob = probability_in (fun->cfg->count_max); if (!prob.initialized_p ()) return REG_BR_PROB_BASE; @@ -128,7 +128,8 @@ extern size_t reg_info_p_size; or profile driven feedback is available and the function is never executed, frequency is always equivalent. Otherwise rescale the basic block frequency. */ -#define REG_FREQ_FROM_BB(bb) (optimize_function_for_size_p (cfun) \ +#define REG_FREQ_FROM_BB(bb) ((optimize_function_for_size_p (cfun) \ + || !cfun->cfg->count_max.initialized_p ()) \ ? REG_FREQ_MAX \ : ((bb)->count.to_frequency (cfun) \ * REG_FREQ_MAX / BB_FREQ_MAX) \ |