Mesa (master): nir: Use a switch in nir_inline_function_impl

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Aug 29 19:21:15 UTC 2020


Module: Mesa
Branch: master
Commit: b6f31898a24adda853d8ac2ce3dff211a819c1cf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6f31898a24adda853d8ac2ce3dff211a819c1cf

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Thu Aug 20 14:42:30 2020 -0500

nir: Use a switch in nir_inline_function_impl

Acked-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6411>

---

 src/compiler/nir/nir_inline_functions.c | 48 ++++++++++++++++++---------------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/src/compiler/nir/nir_inline_functions.c b/src/compiler/nir/nir_inline_functions.c
index d7144b39a8d..03a26e0dbf3 100644
--- a/src/compiler/nir/nir_inline_functions.c
+++ b/src/compiler/nir/nir_inline_functions.c
@@ -44,27 +44,33 @@ void nir_inline_function_impl(struct nir_builder *b,
 
    nir_foreach_block(block, copy) {
       nir_foreach_instr_safe(instr, block) {
-         /* Returns have to be lowered for this to work */
-         assert(instr->type != nir_instr_type_jump ||
-                nir_instr_as_jump(instr)->type != nir_jump_return);
-
-         if (instr->type != nir_instr_type_intrinsic)
-            continue;
-
-         nir_intrinsic_instr *load = nir_instr_as_intrinsic(instr);
-         if (load->intrinsic != nir_intrinsic_load_param)
-            continue;
-
-         unsigned param_idx = nir_intrinsic_param_idx(load);
-         assert(param_idx < impl->function->num_params);
-         assert(load->dest.is_ssa);
-         nir_ssa_def_rewrite_uses(&load->dest.ssa,
-                                  nir_src_for_ssa(params[param_idx]));
-
-         /* Remove any left-over load_param intrinsics because they're soon
-          * to be in another function and therefore no longer valid.
-          */
-         nir_instr_remove(&load->instr);
+         switch (instr->type) {
+         case nir_instr_type_intrinsic: {
+            nir_intrinsic_instr *load = nir_instr_as_intrinsic(instr);
+            if (load->intrinsic != nir_intrinsic_load_param)
+               break;
+
+            unsigned param_idx = nir_intrinsic_param_idx(load);
+            assert(param_idx < impl->function->num_params);
+            assert(load->dest.is_ssa);
+            nir_ssa_def_rewrite_uses(&load->dest.ssa,
+                                     nir_src_for_ssa(params[param_idx]));
+
+            /* Remove any left-over load_param intrinsics because they're soon
+             * to be in another function and therefore no longer valid.
+             */
+            nir_instr_remove(&load->instr);
+            break;
+         }
+
+         case nir_instr_type_jump:
+            /* Returns have to be lowered for this to work */
+            assert(nir_instr_as_jump(instr)->type != nir_jump_return);
+            break;
+
+         default:
+            break;
+         }
       }
    }
 



More information about the mesa-commit mailing list