glsl: Rebalance expression trees that are reduction operations.
authorMatt Turner <mattst88@gmail.com>
Sat, 1 Mar 2014 04:11:32 +0000 (20:11 -0800)
committerMatt Turner <mattst88@gmail.com>
Thu, 19 Jun 2014 23:11:51 +0000 (16:11 -0700)
commit1d9f74eda75da05b4d5c7df5fc1e6f5ab8d88322
treedc9e514f733629846b47eb2ec6c171603f59a885
parentd300f3f51a5b24e3959889f97a3fbe8cd10ace8e
glsl: Rebalance expression trees that are reduction operations.

The intention of this pass was to give us better instruction scheduling
opportunities, but it unexpectedly reduced some instruction counts as
well:

total instructions in shared programs: 1666639 -> 1666073 (-0.03%)
instructions in affected programs:     54612 -> 54046 (-1.04%)
(and trades 4 SIMD16 programs in SS3)
src/glsl/Makefile.sources
src/glsl/glsl_parser_extras.cpp
src/glsl/ir_optimization.h
src/glsl/opt_rebalance_tree.cpp [new file with mode: 0644]