[Mesa-dev] [PATCH 0/3] i965/fs: New dead code elimination.

Matt Turner mattst88 at gmail.com
Mon Apr 14 15:00:32 PDT 2014


In the process of doing other things, dead code elimination got in my way.
So I killed it.

The new dead code elimination pass uses the liveout set from dataflow
analysis to remove dead instructions. Neither of the two old passes
could, for instance remove a dead write if it was later overwritten
unconditionally in a different block:

	mov vgrf4, 0.0
	if
	...
	endif
	mov vgrf4, vgrf5

The new pass handles everything the other two passes did and more. It
also speeds up compile times. Check patch 1's commit summary for neat
stats.

Matt Turner (3):
  i965/fs: Reimplement dead_code_elimination().
  i965/fs: Clear variable from live-set if it's completely overwritten.
  i965/fs: Remove dead_code_eliminate_local().

 src/mesa/drivers/dri/i965/Makefile.sources         |   1 +
 src/mesa/drivers/dri/i965/brw_fs.cpp               | 215 +--------------------
 src/mesa/drivers/dri/i965/brw_fs.h                 |   1 -
 .../dri/i965/brw_fs_dead_code_eliminate.cpp        | 116 +++++++++++
 4 files changed, 118 insertions(+), 215 deletions(-)
 create mode 100644 src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp

-- 
1.8.3.2



More information about the mesa-dev mailing list