i965/fs: Improve register coalescing interference check.
authorMatt Turner <mattst88@gmail.com>
Mon, 17 Aug 2015 23:03:27 +0000 (16:03 -0700)
committerMatt Turner <mattst88@gmail.com>
Fri, 28 Aug 2015 18:30:47 +0000 (11:30 -0700)
commitf2f8c43af92ad446a5c56bd0f88af36e1a3e0506
tree904666ba4954dacab424c0c3c1fb1e837ff54bbe
parentf3d0a894af61d9ccc3f00086fbac3809bfed1160
i965/fs: Improve register coalescing interference check.

I always thought that the is_control_flow() -> return false check was a
bad hack, and some previous attempts to remove it have failed and have
been reverted.

The previous two patches fix some problems that caused register
coalescing to not notice some interference between registers, which the
is_control_flow() check apparently works around.

With that fixed, we can calculate interference more accurately.

total instructions in shared programs: 6261319 -> 6257917 (-0.05%)
instructions in affected programs:     346282 -> 342880 (-0.98%)
helped:                                1552

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp