From: Kenneth Graunke Date: Wed, 21 Jan 2015 20:20:59 +0000 (-0800) Subject: nir: Pull nir_instr_can_cse()'s SSA checks out of the switch. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cbdd623f13a3cd2b7cfc5aea2185eee7d7d53c1a;p=mesa.git nir: Pull nir_instr_can_cse()'s SSA checks out of the switch. This should not be a change in behavior, as all current cases that potentially answer "yes" require SSA. The next patch will introduce another case that requires SSA. Signed-off-by: Kenneth Graunke Reviewed-by: Jason Ekstrand Reviewed-by: Matt Turner --- diff --git a/src/glsl/nir/nir_opt_cse.c b/src/glsl/nir/nir_opt_cse.c index a33ebdd9981..fef167816ab 100644 --- a/src/glsl/nir/nir_opt_cse.c +++ b/src/glsl/nir/nir_opt_cse.c @@ -139,12 +139,16 @@ dest_is_ssa(nir_dest *dest, void *data) static bool nir_instr_can_cse(nir_instr *instr) { + /* We only handle SSA. */ + if (!nir_foreach_dest(instr, dest_is_ssa, NULL) || + !nir_foreach_src(instr, src_is_ssa, NULL)) + return false; + switch (instr->type) { case nir_instr_type_alu: case nir_instr_type_load_const: case nir_instr_type_phi: - return nir_foreach_dest(instr, dest_is_ssa, NULL) && - nir_foreach_src(instr, src_is_ssa, NULL); + return true; case nir_instr_type_tex: return false; /* TODO */ case nir_instr_type_intrinsic: