summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-03-13 19:15:45 -0700
committerDylan Baker <baker.dylan.c@gmail.com>2016-03-28 16:12:41 -0700
commit6b99c35fc567c827aa5343adefcce26ea9b5c058 (patch)
tree392db8cfdd8e43713db2fd472441f44d71e61818
parent00fc34b4c07bd20575d5d90a454bf418502b2828 (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 a826fce6d5..0c4d5cc752 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -1033,6 +1033,7 @@ vec4_visitor::opt_register_coalesce()
if (is_nop_mov) {
inst->remove(block);
+ progress = true;
continue;
}
}