This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Protect against min_profitable_iters going negative
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, richard dot sandiford at linaro dot org
- Date: Wed, 8 Nov 2017 15:52:36 -0700
- Subject: Re: Protect against min_profitable_iters going negative
- Authentication-results: sourceware.org; auth=none
- References: <87a7zwwwa1.fsf@linaro.org>
On 11/08/2017 09:49 AM, Richard Sandiford wrote:
> We had:
>
> if (vec_outside_cost <= 0)
> min_profitable_iters = 0;
> else
> {
> min_profitable_iters = ((vec_outside_cost - scalar_outside_cost)
> * assumed_vf
> - vec_inside_cost * peel_iters_prologue
> - vec_inside_cost * peel_iters_epilogue)
> / ((scalar_single_iter_cost * assumed_vf)
> - vec_inside_cost);
>
> which can lead to negative min_profitable_iters when the *_outside_costs
> are the same and peel_iters_epilogue is nonzero (e.g. if we're peeling
> for gaps).
>
> This is tested as part of the patch that adds support for fully-predicated
> loops.
>
> Tested on aarch64-linux-gnu (both with and without SVE), x86_64-linux-gnu
> and powerpc64le-linux-gnu. OK to install?
>
> Thanks,
> Richard
>
>
> 2017-11-08 Richard Sandiford <richard.sandiford@linaro.org>
> Alan Hayward <alan.hayward@arm.com>
> David Sherwood <david.sherwood@arm.com>
>
> gcc/
> * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure
> min_profitable_iters doesn't go negative.
OK.
jeff