diff options
author | Kenneth Graunke <[email protected]> | 2012-05-10 16:10:15 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-05-14 15:13:55 -0700 |
commit | a4e9b5a768d2d9e59b6054148afb6a6b94c0e4e6 (patch) | |
tree | 0a83adee4d9020077f13a4a379060a9d53ae88ff /src/glsl/ir_expression_flattening.cpp | |
parent | d1029f99884e2ba7f663765274cd6bdb4f82feed (diff) |
i965/fs: Add a local common subexpression elimination pass.
Total instructions: 18210 -> 17836
49/163 programs affected (30.1%)
12888 -> 12514 instructions in affected programs (2.9% reduction)
This reduces Lightsmark's "Scale down filter" shader from 395
instructions to 283, a whopping 28%. It also reduces register pressure
significantly: the SIMD8 program now uses 29 registers instead of 101,
giving us more than enough room for a SIMD16 program.
v2: Add && !inst->conditional_mod to the "skip some instructions" check.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/glsl/ir_expression_flattening.cpp')
0 files changed, 0 insertions, 0 deletions