[Mesa-dev] [PATCH] nir: fix loop iteration count calculation for floats
Jason Ekstrand
jason at jlekstrand.net
Wed Jan 4 02:18:05 UTC 2017
Drp...
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Jan 3, 2017 7:00 PM, "Timothy Arceri" <timothy.arceri at collabora.com>
wrote:
> Fixes performance regression in SynMark PSPom caused by loops with float
> counters not always unrolling.
>
> For example:
>
> for (float i = 0.02; i < 0.9; i += 0.11)
> ...
> ---
> src/compiler/nir/nir_loop_analyze.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/compiler/nir/nir_loop_analyze.c
> b/src/compiler/nir/nir_loop_analyze.c
> index 71cbe3c..a5f464a 100644
> --- a/src/compiler/nir/nir_loop_analyze.c
> +++ b/src/compiler/nir/nir_loop_analyze.c
> @@ -384,8 +384,8 @@ get_iteration(nir_op cond_op, nir_const_value
> *initial, nir_const_value *step,
> case nir_op_flt:
> case nir_op_feq:
> case nir_op_fne: {
> - int32_t initial_val = initial->f32[0];
> - int32_t span = limit->f32[0] - initial_val;
> + float initial_val = initial->f32[0];
> + float span = limit->f32[0] - initial_val;
> iter = span / step->f32[0];
> break;
> }
> --
> 2.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170103/e3e6b49e/attachment.html>
More information about the mesa-dev
mailing list