i965/fs: Fully recompute liveout at each step.
Since we start with an overestimation of livein (0xffffffff), successive steps can 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@whitecape.org> Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
parent
d20b472d0a
commit
70b02a7fac
|
@ -211,7 +211,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])
|
||||
|
|
Loading…
Reference in New Issue