nir: turn ssa check into an assert
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 13 Feb 2019 04:27:29 +0000 (15:27 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Wed, 13 Feb 2019 22:35:32 +0000 (09:35 +1100)
Everthing should be in ssa form when this is called. Checking
for it here is expensive so turn this into an assert instead.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
src/compiler/nir/nir_instr_set.c

index 61476c0b03f1fd82bc0c41b8102a31ba97557905..c795efbca6a9951faeb6b022fdb718c89bb9fa02 100644 (file)
@@ -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: