summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-03-13 19:15:45 -0700
committerEmil Velikov <emil.l.velikov@gmail.com>2016-04-11 21:02:18 +0100
commitd9d703ee228d7deae8208e2fcee56b98f771df4f (patch)
tree69d6de69104dff006060980507607acf819f928e
parenta132394ca477d9a87f487e11b1ec89f99204a5ac (diff)
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> (cherry picked from commit 7d7990cf657550be4d038a0424ffdc0ef7fd8faa)
-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 119d9c3711e..9dfe98f5807 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -1002,6 +1002,7 @@ vec4_visitor::opt_register_coalesce()
if (is_nop_mov) {
inst->remove(block);
+ progress = true;
continue;
}
}