From cbdd623f13a3cd2b7cfc5aea2185eee7d7d53c1a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 21 Jan 2015 12:20:59 -0800 Subject: 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 --- src/glsl/nir/nir_opt_cse.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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: -- cgit v1.2.3