summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vec4.cpp
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-03-13 19:15:45 -0700
committerFrancisco Jerez <currojerez@riseup.net>2016-03-14 14:58:11 -0700
commit7d7990cf657550be4d038a0424ffdc0ef7fd8faa (patch)
treee3261cb835bad3c17ea323dc40f1e54335e0f647 /src/mesa/drivers/dri/i965/brw_vec4.cpp
parent93be4158aed9accab06e3df2d8c526d3312bfff8 (diff)
downloadexternal_mesa3d-7d7990cf657550be4d038a0424ffdc0ef7fd8faa.zip
external_mesa3d-7d7990cf657550be4d038a0424ffdc0ef7fd8faa.tar.gz
external_mesa3d-7d7990cf657550be4d038a0424ffdc0ef7fd8faa.tar.bz2
i965/vec4: Consider removal of no-op MOVs as progress during register coalesce.
Bug found by the liveness analysis validation pass that will be introduced in a later commit. The no-op MOV check in opt_register_coalesce() was removing instructions which makes the cached liveness analysis calculation inconsistent with the shader IR. We were failing to set progress to true in that case though, which means that invalidate_live_intervals() wouldn't necessarily be called at the end of the function. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vec4.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index cf62ed9..baf72a2 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -1051,6 +1051,7 @@ vec4_visitor::opt_register_coalesce()
if (is_nop_mov) {
inst->remove(block);
+ progress = true;
continue;
}
}