summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2015-01-21 12:20:59 -0800
committerKenneth Graunke <[email protected]>2015-01-23 14:53:26 -0800
commitcbdd623f13a3cd2b7cfc5aea2185eee7d7d53c1a (patch)
treed41c6ab218cd428d613ff229a2642224eb48dcb8
parentd7743bb1c2d5cfe44a018251d21def18eb6d4b97 (diff)
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 <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/glsl/nir/nir_opt_cse.c8
1 files 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: