History log of /external/mesa3d/src/glsl/opt_array_splitting.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6de5da079682efd3f8887d3e0a7add7e70a5433d 16-Apr-2012 Eric Anholt <eric@anholt.net> glsl: Don't allow array splitting on function arguments.

This is the reason the declaration member existed in the reference
visitor, but I didn't copy the code from structure splitting that
avoided setting it.

This wasn't currently a problem, because we don't allow splitting of
in/out variables. But that would be nice to change some day.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/opt_array_splitting.cpp
538ba0a36373d7d0bd047e6fc4ef4e6e8d8bb8d7 16-Apr-2012 Eric Anholt <eric@anholt.net> glsl: Rename the "whole_array_access" member in array splitting.

This was carried over from structure splitting, without thinking about
whether the name still made sense in this context.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/opt_array_splitting.cpp
36a8c9caafef79524920120286649a0f53fe5228 16-Apr-2012 Eric Anholt <eric@anholt.net> glsl: Fix up a comment explaining what a visitor class does.

Ken noted that some of the "actual work" was happening in the caller
of this class.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/opt_array_splitting.cpp
c07290ddb2bf3095b9f5a1e0b33697999834fa0e 16-Apr-2012 Eric Anholt <eric@anholt.net> glsl: Use the column_types() helper method.

Ken noted this in a review of this patch that I pushed early.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/opt_array_splitting.cpp
14e9942841d638b0ce5e858540f786fa4b04f67d 19-Apr-2012 Kenneth Graunke <kenneth@whitecape.org> glsl: Remove unused mem_ctx field from ir_array_splitting_visitor.

Vinson reported that we failed to initialize this, which would lead to
all kinds of crashes if we actually used it. Since we don't use it,
we may as well just delete the broken code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/glsl/opt_array_splitting.cpp
3bdccbc3e0185fbca16eada2a76f55c6e3f867b5 22-Mar-2012 Eric Anholt <eric@anholt.net> glsl: Extend the array splitting optimization pass to matrices.

This should fit in well with our lower_mat_op_to_vec code: now, in
addition to having expressions on each column of a matrix, we also
split the columns to separate variables so they can be tracked
individually by the copy propagation, dead code, and other passes.

This optimizes out some more code generation in unigine and gstreamer
shaders.

Total instructions: 269342 -> 269270
14/2148 programs affected (0.7%)
2226 -> 2154 instructions in affected programs (3.2% reduction)
/external/mesa3d/src/glsl/opt_array_splitting.cpp
60177d5e2aec07ed6386a6935b118a356d58c4ec 03-Oct-2010 Eric Anholt <eric@anholt.net> glsl: Add an array splitting pass.

I've had this code laying around almost done for a long time. The
idea is like opt_structure_splitting, that we've got a bunch of
transforms at the GLSL IR level that only understand scalars and
vectors, which just skip complicated dereferences. While driver
backends may manage some optimization after they split matrices up
themselves, it would be better to bring all of our optimization to
bear on the problem.

While I wasn't expecting changes quite yet, a few programs end up
winning: a gstreamer convolution shader, and the Humus dynamic
branching demo:
Total instructions: 269430 -> 269342
3/2148 programs affected (0.1%)
1498 -> 1410 instructions in affected programs (5.9% reduction)
/external/mesa3d/src/glsl/opt_array_splitting.cpp