Everthing should be in ssa form when this is called. Checking for it here is expensive so turn this into an assert instead.
Do the cheap thing first and check if we can even progress with this instruction type. --- src/compiler/nir/nir_instr_set.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/compiler/nir/nir_instr_set.c b/src/compiler/nir/nir_instr_set.c index 61476c0b03f..c795efbca6a 100644 --- a/src/compiler/nir/nir_instr_set.c +++ b/src/compiler/nir/nir_instr_set.c @@ -498,6 +498,16 @@ dest_is_ssa(nir_dest *dest, void *data) return dest->is_ssa; } +static bool +instr_each_src_and_dest_is_ssa(nir_instr *instr) +{ + if (!nir_foreach_dest(instr, dest_is_ssa, NULL) || + !nir_foreach_src(instr, src_is_ssa, NULL)) + return false; + + return true; +} + /* This function determines if uses of an instruction can safely be rewritten * to use another identical instruction instead. Note that this function must * be kept in sync with hash_instr() and nir_instrs_equal() -- only @@ -509,9 +519,7 @@ static bool instr_can_rewrite(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; + assert(instr_each_src_and_dest_is_ssa(instr)); switch (instr->type) { case nir_instr_type_alu: -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev