From: Matt Turner Date: Tue, 11 Mar 2014 20:07:42 +0000 (-0700) Subject: i965/vec4: Don't dead code eliminate instructions writing the flag. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=89ccd11eebeee884d581e831b61368ac97057b43;p=mesa.git i965/vec4: Don't dead code eliminate instructions writing the flag. A future patch adds support for removing dead writes to the flag register. This patch simplifies the logic until then. total instructions in shared programs: 811813 -> 811869 (0.01%) instructions in affected programs: 3378 -> 3434 (1.66%) Reviewed-by: Eric Anholt --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index cb87fecf8d8..d07e8c558c2 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -356,7 +356,11 @@ vec4_visitor::dead_code_eliminate() inst->dst = dst_reg(retype(brw_null_reg(), inst->dst.type)); break; default: - inst->remove(); + if (inst->writes_flag()) { + inst->dst = dst_reg(retype(brw_null_reg(), inst->dst.type)); + } else { + inst->remove(); + } break; } progress = true;