summaryrefslogtreecommitdiff
path: root/src/glsl/loop_controls.cpp
AgeCommit message (Collapse)AuthorFilesLines
2013-09-23glsl: Hide many classes local to individual .cpp files in anon namespaces.Eric Anholt1-0/+2
This gives the compiler the chance to inline and not export class symbols even in the absence of LTO. Saves about 60kb on disk. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@.intel.com>
2013-01-08glsl: Fix loop bounds detection.Paul Berry1-4/+4
When analyzing a loop where the loop condition is expressed in the non-standard order (e.g. "4 > i" instead of "i < 4"), we were reversing the condition incorrectly, leading to a loop bound that was off by 1. Fixes piglit tests {vs,fs}-loop-bounds-unrolled.shader_test. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2011-02-21Use C-style system headers in C++ code to avoid issues with std:: namespaceIan Romanick1-1/+1
2011-01-31Convert everything from the talloc API to the ralloc API.Kenneth Graunke1-2/+2
2010-11-11glsl: fix crash in loop analysis when some controls can't be determinedAras Pranckevicius1-0/+3
Fixes loop-07.frag.
2010-09-15glsl: Fix 'format not a string literal and no format arguments' warning.Vinson Lee1-1/+1
Fix the following GCC warning. loop_controls.cpp: In function 'int calculate_iterations(ir_rvalue*, ir_rvalue*, ir_rvalue*, ir_expression_operation)': loop_controls.cpp:88: warning: format not a string literal and no format arguments
2010-09-13loop_controls: fix analysis of already analyzed loopsLuca Barbieri1-1/+8
The loop_controls pass didn't look at the counter values it put in ir_loop on previous iterations, so while the first iteration worked, subsequent ones couldn't determine max_iterations.
2010-09-03glsl2: Use as_constant some places instead of constant_expression_valueIan Romanick1-2/+2
The places where constant_expression_value are still used in loop analysis are places where a new expression tree is created and constant folding won't have happened. This is used, for example, when we try to determine the maximal loop iteration count. Based on review comments by Eric. "...rely on constant folding to have done its job, instead of going all through the subtree again when it wasn't a constant."
2010-09-03glsl2: Add module to perform simple loop unrollingIan Romanick1-1/+3
2010-09-03glsl2: Track the number of ir_loop_jump instructions that are in a loopIan Romanick1-0/+4
2010-09-03glsl2: Eliminate zero-iteration loopsIan Romanick1-1/+7
2010-09-03glsl2: Add module to suss out loop control variables from loop analysis dataIan Romanick1-0/+282
This is the next step on the road to loop unrolling