History log of /external/mesa3d/src/glsl/loop_analysis.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3603fdcebfa25e2217f1dbfb0a99261be3e84b02 06-Jun-2012 Kenneth Graunke <kenneth@whitecape.org> glsl: Hook up loop_variable_state destructor to plug a memory leak.

While ~loop_state() is already freeing the loop_variable_state objects
via ralloc_free(this->mem_ctx), the ~loop_variable_state() destructor
was never getting called, so the hash table inside loop_variable_state
was never getting destroyed.

Fixes a memory leak in any shader with loops.

NOTE: This is a candidate for stable release branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/loop_analysis.h
0405bd08ca0e01ebc68891ee1ff47d320983f775 28-Mar-2012 Kenneth Graunke <kenneth@whitecape.org> glsl: Don't trust loop analysis in the presence of function calls.

Function calls may have side effects that alter variables used inside
the loop. In the fragment shader, they may even terminate the shader.
This means our analysis about loop-constant or induction variables may
be completely wrong.

In general it's impossible to determine whether they actually do or not
(due to the halting problem), so we'd need to perform conservative
static analysis. For now, it's not worth the complexity: most functions
will be inlined, at which point we can unroll them successfully.

Fixes Piglit tests:
- shaders/glsl-fs-unroll-out-param
- shaders/glsl-fs-unroll-side-effect

NOTE: This is a candidate for release branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/loop_analysis.h
58c988ada56114b56477983f66b4039219f1a82c 18-Jan-2011 Eric Anholt <eric@anholt.net> glsl: Skip the rest of loop unrolling if no loops were found.

Shaves 1.6% (+/- 1.0%) off of ff_fragment_shader glean texCombine time
(n=5).
/external/mesa3d/src/glsl/loop_analysis.h
e591c4625cae63660c5000fbab366e40fe154ab0 05-Sep-2010 Luca Barbieri <luca@luca-barbieri.com> glsl: add several EmitNo* options, and MaxUnrollIterations

This increases the chance that GLSL programs will actually work.

Note that continues and returns are not yet lowered, so linking
will just fail if not supported.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/glsl/loop_analysis.h
de7c3fe31a7b88a5392dceee3b13b45ed78cdeae 27-Aug-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Add module to perform simple loop unrolling
/external/mesa3d/src/glsl/loop_analysis.h
3bcfafcf0320ee5407716ff67062e80d162760d4 28-Aug-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Track the number of ir_loop_jump instructions that are in a loop
/external/mesa3d/src/glsl/loop_analysis.h
bfe3fbb38e0a3ae7c1efb74282628c2cc5abc3e0 27-Aug-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Add module to suss out loop control variables from loop analysis data

This is the next step on the road to loop unrolling
/external/mesa3d/src/glsl/loop_analysis.h
9434a0749f26c640305f68ef85d17a31063a5705 27-Aug-2010 Ian Romanick <ian.d.romanick@intel.com> glsl2: Add module to analyze variables used in loops

This is the first step eventually leading to loop unrolling.
/external/mesa3d/src/glsl/loop_analysis.h