[Mesa-dev] [PATCH 13/15] i965/fs: Fully recompute liveout at each step.

Kenneth Graunke kenneth at whitecape.org
Mon Aug 12 13:11:33 PDT 2013


Since we start with an overestimation of livein (0xffffffff), successive
steps may should actually take away values.  This means we can't simply
OR in new liveout values; we need to recompute it from scratch at each
iteration of the fixed-point algorithm.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index f5c8e4a..9522649 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -219,7 +219,7 @@ fs_copy_prop_dataflow::run()
          for (int i = 0; i < bitset_words; i++) {
             const BITSET_WORD old_liveout = bd[b].liveout[i];
 
-            bd[b].liveout[i] |=
+            bd[b].liveout[i] =
                bd[b].copy[i] | (bd[b].livein[i] & ~bd[b].kill[i]);
 
             if (old_liveout != bd[b].liveout[i])
-- 
1.8.3.4



More information about the mesa-dev mailing list