diff options
author | Francisco Jerez <currojerez@riseup.net> | 2016-03-11 15:27:22 -0800 |
---|---|---|
committer | Dylan Baker <baker.dylan.c@gmail.com> | 2016-03-28 16:12:35 -0700 |
commit | 00fc34b4c07bd20575d5d90a454bf418502b2828 (patch) | |
tree | afb42dbb9e75e62b9325f18a575af965d971d740 | |
parent | 0c3d96fac4bdf23f74497be9ecacf467cf8f069f (diff) |
i965/fs: Add missing analysis invalidation in fixup_3src_null_dest().
Bug found by the liveness analysis validation pass that will be
introduced in a later commit. fixup_3src_null_dest() was allocating
registers which makes the cached liveness analysis calculation
incomplete, so it must be invalidated.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Matt Turner <mattst88@gmail.com>
(cherry picked from commit 93be4158aed9accab06e3df2d8c526d3312bfff8)
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 80ac04054f..551728dd6b 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -5190,12 +5190,18 @@ fs_visitor::optimize() void fs_visitor::fixup_3src_null_dest() { + bool progress = false; + foreach_block_and_inst_safe (block, fs_inst, inst, cfg) { if (inst->is_3src() && inst->dst.is_null()) { inst->dst = fs_reg(VGRF, alloc.allocate(dispatch_width / 8), inst->dst.type); + progress = true; } } + + if (progress) + invalidate_live_intervals(); } void |