[Piglit] [PATCH] Add GLSL tests for loops with function calls that have side-effects.

Ian Romanick idr at freedesktop.org
Fri Mar 23 14:08:05 PDT 2012

On 03/23/2012 03:49 AM, Kenneth Graunke wrote:
> On 03/23/2012 12:03 AM, Jose Fonseca wrote:
> [snip]
>>> Ian,
>>> The loop analysis code currently doesn't take calls into account
>>> whatsoever, which is clearly wrong. Any ideas on the best way to fix
>>> it?
>> I think that, before a loop is unrolled, any inner calls should be
>> inlined. I don't any correctness/performance reason to do any
>> differently.
>> Jose
> Yeah, I think "don't unroll if there are function calls" is the right
> answer. Inlining first would make unrolling happen in most cases. We can
> always improve on that later.

I don't think we have to go that far.  I think:

1. Mark any out or inout parameter as being assigned (in the loop).
2. Mark any globals as being assigned.

That should put a bandaid on it.

We do need some bigger work on the loop code.  It's ugly and barely 
works.  Fixing it will be a significant project.

> I'm not too familiar with the loop analysis/control/unroll split, so it
> wasn't immediately clear to me where to add that. I suppose I should go
> read Muchnick's book, since I'm pretty sure that's where this came from.

More information about the Piglit mailing list