diff options
author | Jason Ekstrand <[email protected]> | 2018-03-16 09:52:04 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-03-30 17:20:27 -0700 |
commit | a1452a94fca458c1129f527b775e1124a449ed2b (patch) | |
tree | 99ec39fd4bb4a256d4a111a98198a425f3e69ab4 /src/compiler/nir/nir.h | |
parent | 956f17395bfcf7f8ce9dd5ac9fd14a13e86f3a8f (diff) |
nir: Return a cursor from nir_instr_remove
Because nir_instr_remove is an inline wrapper around nir_instr_remove_v,
the compiler should be able to tell that the return value is unused and
not emit the extra code in most cases.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/compiler/nir/nir.h')
-rw-r--r-- | src/compiler/nir/nir.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 5ba6a1f0687..cc7c401b40e 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -2274,7 +2274,21 @@ nir_instr_insert_after_cf_list(struct exec_list *list, nir_instr *after) nir_instr_insert(nir_after_cf_list(list), after); } -void nir_instr_remove(nir_instr *instr); +void nir_instr_remove_v(nir_instr *instr); + +static inline nir_cursor +nir_instr_remove(nir_instr *instr) +{ + nir_cursor cursor; + nir_instr *prev = nir_instr_prev(instr); + if (prev) { + cursor = nir_after_instr(prev); + } else { + cursor = nir_before_block(instr->block); + } + nir_instr_remove_v(instr); + return cursor; +} /** @} */ |