[Mesa-dev] [PATCH 2/4] nir: turn ssa check into an assert
Timothy Arceri
tarceri at itsqueeze.com
Wed Feb 13 08:00:14 UTC 2019
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
More information about the mesa-dev
mailing list