diff options
author | Matt Turner <[email protected]> | 2013-10-22 17:51:28 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2013-12-04 20:05:44 -0800 |
commit | 13de9f03f177d3ae0921fded1a102b66130f8b40 (patch) | |
tree | f1069e6f978e143efb3cc364581a8ba26cb72807 /src/mesa/drivers/dri/i965/Makefile.sources | |
parent | fa227e7cbca279cd70ea7028a33d520579385f9f (diff) |
i965/fs: New peephole optimization to generate SEL.
fs_visitor::try_replace_with_sel optimizes only if statements whose
"then" and "else" bodies contain a single MOV instruction. It also
could not handle constant arguments, since they cause an extra MOV
immediate to be generated (since we haven't run constant propagation,
there are more than the single MOV).
This peephole fixes both of these and operates as a normal optimization
pass.
fs_visitor::try_replace_with_sel is still arguably necessary, since it
runs before pull constant loads are lowered.
total instructions in shared programs: 1559129 -> 1545833 (-0.85%)
instructions in affected programs: 167120 -> 153824 (-7.96%)
GAINED: 13
LOST: 6
Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/Makefile.sources')
-rw-r--r-- | src/mesa/drivers/dri/i965/Makefile.sources | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/Makefile.sources b/src/mesa/drivers/dri/i965/Makefile.sources index 193f2db3bc7..6e94dcab24b 100644 --- a/src/mesa/drivers/dri/i965/Makefile.sources +++ b/src/mesa/drivers/dri/i965/Makefile.sources @@ -61,6 +61,7 @@ i965_FILES = \ brw_fs_generator.cpp \ brw_fs_live_variables.cpp \ brw_fs_reg_allocate.cpp \ + brw_fs_sel_peephole.cpp \ brw_fs_vector_splitting.cpp \ brw_fs_visitor.cpp \ brw_gs.c \ |