diff options
author | Kenneth Graunke <[email protected]> | 2015-01-21 12:20:59 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2015-01-23 14:53:26 -0800 |
commit | cbdd623f13a3cd2b7cfc5aea2185eee7d7d53c1a (patch) | |
tree | d41c6ab218cd428d613ff229a2642224eb48dcb8 /src/glsl/nir/nir_opt_cse.c | |
parent | d7743bb1c2d5cfe44a018251d21def18eb6d4b97 (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]>
Diffstat (limited to 'src/glsl/nir/nir_opt_cse.c')
-rw-r--r-- | src/glsl/nir/nir_opt_cse.c | 8 |
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: |