i965/fs: Add pass to rename registers to break live ranges.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 14 Apr 2014 22:01:37 +0000 (15:01 -0700)
committerMatt Turner <mattst88@gmail.com>
Fri, 15 Aug 2014 06:50:12 +0000 (23:50 -0700)
commit35ca28816509a887538a6d0c62c96279b38ef8e4
treeccd08b02cfead74fd6e1745d003eceeaf3d7fdef
parent650c3313786cab6f96bb480685e7b32dfcb9291c
i965/fs: Add pass to rename registers to break live ranges.

The pass breaks live ranges of virtual registers by allocating new
registers when it sees an assignment to a virtual GRF it's already seen
written.

total instructions in shared programs: 4337879 -> 4335014 (-0.07%)
instructions in affected programs:     343865 -> 341000 (-0.83%)
GAINED:                                46
LOST:                                  1

[mattst88]: Make pass not break in presence of control flow.
            invalidate_live_intervals() only if progress.
            Fix up delta_x/delta_y.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h