aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
-rw-r--r--gcc/tree-ssa-loop-niter.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index e70e0a7..7804036 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -3757,10 +3757,12 @@ estimate_numbers_of_iterations_loop (struct loop *loop)
maybe_lower_iteration_bound (loop);
/* If we have a measured profile, use it to estimate the number of
- iterations. */
- if (loop->header->count != 0)
+ iterations. Explicitly check for profile status so we do not report
+ wrong prediction hitrates for guessed loop iterations heuristics. */
+ if (loop->header->count != 0
+ && profile_status_for_fn (cfun) >= PROFILE_READ)
{
- gcov_type nit = expected_loop_iterations_unbounded (loop) + 1;
+ gcov_type nit = expected_loop_iterations_unbounded (loop);
bound = gcov_type_to_wide_int (nit);
record_niter_bound (loop, bound, true, false);
}