Use sreal::nearest_int

Fix conversions from sreal to nearest integer.

gcc/ChangeLog:

	* cfgloop.cc (get_estimated_loop_iterations): Use sreal::to_nearest_int
	* cfgloopanal.cc (expected_loop_iterations_unbounded): Likewise.
	* predict.cc (estimate_bb_frequencies): Likewise.
	* profile.cc (branch_prob): Likewise.
	* tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Likewise
This commit is contained in:
Jan Hubicka 2023-07-21 16:50:49 +02:00
parent fc92f5811e
commit feeee84079
5 changed files with 6 additions and 6 deletions

View file

@ -2012,7 +2012,7 @@ get_estimated_loop_iterations (class loop *loop, widest_int *nit)
if (expected_loop_iterations_by_profile (loop, &snit, &reliable)
&& reliable)
{
*nit = (snit + 0.5).to_int ();
*nit = snit.to_nearest_int ();
return true;
}
return false;

View file

@ -321,7 +321,7 @@ expected_loop_iterations_unbounded (const class loop *loop,
sreal sreal_expected;
if (expected_loop_iterations_by_profile
(loop, &sreal_expected, read_profile_p))
expected = (sreal_expected + 0.5).to_int ();
expected = sreal_expected.to_nearest_int ();
else
expected = param_avg_loop_niter;

View file

@ -4003,8 +4003,8 @@ estimate_bb_frequencies ()
break;
}
}
tmp = tmp * freq_max + sreal (1, -1);
profile_count count = profile_count::from_gcov_type (tmp.to_int ());
tmp = tmp * freq_max;
profile_count count = profile_count::from_gcov_type (tmp.to_nearest_int ());
/* If we have profile feedback in which this function was never
executed, then preserve this info. */

View file

@ -1553,7 +1553,7 @@ branch_prob (bool thunk)
&& expected_loop_iterations_by_profile (loop, &nit, &reliable)
&& reliable)
{
widest_int bound = (nit + 0.5).to_int ();
widest_int bound = nit.to_nearest_int ();
loop->any_estimate = false;
record_niter_bound (loop, bound, true, false);
}

View file

@ -4801,7 +4801,7 @@ estimate_numbers_of_iterations (class loop *loop)
&& expected_loop_iterations_by_profile (loop, &nit, &reliable)
&& reliable)
{
bound = (nit + 0.5).to_int ();
bound = nit.to_nearest_int ();
record_niter_bound (loop, bound, true, false);
}