[Mesa-dev] Partial loop unrolling support

Timothy Arceri tarceri at itsqueeze.com
Mon Nov 19 23:31:02 UTC 2018


On 20/11/18 2:46 am, Jason Ekstrand wrote:
> I also saw a case last week where the induction variable is <= 
> imax(thing, 4) and it'd be nice to unroll those too.

That is an interesting one. It means we could do a simple unroll for the 
first 4 iterations i.e no if statements required, which is a bit of a 
different use case from the new functions introduced in this series but 
shouldn't bee too hard to do.

> 
> --Jason
> 
> On Mon, Nov 19, 2018 at 12:18 AM Timothy Arceri <tarceri at itsqueeze.com 
> <mailto:tarceri at itsqueeze.com>> wrote:
> 
>     This series add support for partial loop unrolling for loops with an
>     unknown trip count. The new partial_unroll function allows the caller
>     to specifiy how may times the loop should be unrolled and then the
>     loop is inserted in the innermost continue branch of the unrolled loop.
> 
>     For now we only do partial unrolling for loops where we can guess the
>     iteration count based on array access that uses an induction variable
>     as its index (see patch 7).
> 
>     Patches 1-6 are tidy-ups/refactors.
> 
>     Patch 7 adds a method for guessing the trip count for the loop.
> 
>     Patch 8 adds partial unrolling support and also support for removing
>     redundant load/stores from the remaining loop when considering if
>     we would be accessing an array out bounds.
> 
> 
>     _______________________________________________
>     mesa-dev mailing list
>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list