Mesa (master): nir/opt_sink: use common instruction removal/insertion helpers
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Dec 3 11:18:00 UTC 2020
Module: Mesa
Branch: master
Commit: 870724d43ba0f2784bb9bb575cb114ca43f00b25
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=870724d43ba0f2784bb9bb575cb114ca43f00b25
Author: Rhys Perry <pendingchaos02 at gmail.com>
Date: Wed Dec 2 16:03:32 2020 +0000
nir/opt_sink: use common instruction removal/insertion helpers
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7880>
---
src/compiler/nir/nir_opt_sink.c | 27 ++-------------------------
1 file changed, 2 insertions(+), 25 deletions(-)
diff --git a/src/compiler/nir/nir_opt_sink.c b/src/compiler/nir/nir_opt_sink.c
index e86ca3c0a5d..ff78fd8b2b7 100644
--- a/src/compiler/nir/nir_opt_sink.c
+++ b/src/compiler/nir/nir_opt_sink.c
@@ -181,26 +181,6 @@ get_preferred_block(nir_ssa_def *def, bool sink_out_of_loops)
return lca;
}
-/* insert before first non-phi instruction: */
-static void
-insert_after_phi(nir_instr *instr, nir_block *block)
-{
- nir_foreach_instr(instr2, block) {
- if (instr2->type == nir_instr_type_phi)
- continue;
-
- exec_node_insert_node_before(&instr2->node,
- &instr->node);
-
- return;
- }
-
- /* if haven't inserted it, push to tail (ie. empty block or possibly
- * a block only containing phi's?)
- */
- exec_list_push_tail(&block->instr_list, &instr->node);
-}
-
bool
nir_opt_sink(nir_shader *shader, nir_move_options options)
{
@@ -233,11 +213,8 @@ nir_opt_sink(nir_shader *shader, nir_move_options options)
if (!use_block || use_block == instr->block)
continue;
- exec_node_remove(&instr->node);
-
- insert_after_phi(instr, use_block);
-
- instr->block = use_block;
+ nir_instr_remove(instr);
+ nir_instr_insert(nir_after_phis(use_block), instr);
progress = true;
}
More information about the mesa-commit
mailing list