Mesa (main): intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_mem_access_bit_sizes

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 5 10:29:39 UTC 2021


Module: Mesa
Branch: main
Commit: 3d0332eb12b1902ccc5a16be79f72d7a52b32730
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d0332eb12b1902ccc5a16be79f72d7a52b32730

Author: Marcin Ślusarz <marcin.slusarz at intel.com>
Date:   Fri Aug  6 14:12:11 2021 +0200

intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_mem_access_bit_sizes

No functional changes.

Signed-off-by: Marcin Ślusarz <marcin.slusarz at intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13189>

---

 .../compiler/brw_nir_lower_mem_access_bit_sizes.c  | 79 ++++++++--------------
 1 file changed, 28 insertions(+), 51 deletions(-)

diff --git a/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c b/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
index 0b0a088b8a0..27b4c14ff61 100644
--- a/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
+++ b/src/intel/compiler/brw_nir_lower_mem_access_bit_sizes.c
@@ -237,54 +237,35 @@ lower_mem_store_bit_size(nir_builder *b, nir_intrinsic_instr *intrin,
 }
 
 static bool
-lower_mem_access_bit_sizes_impl(nir_function_impl *impl,
-                                const struct intel_device_info *devinfo)
+lower_mem_access_bit_sizes_instr(nir_builder *b,
+                                nir_instr *instr,
+                                void *cb_data)
 {
-   bool progress = false;
-
-   nir_builder b;
-   nir_builder_init(&b, impl);
-
-   nir_foreach_block(block, impl) {
-      nir_foreach_instr_safe(instr, block) {
-         if (instr->type != nir_instr_type_intrinsic)
-            continue;
-
-         b.cursor = nir_after_instr(instr);
-
-         nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
-         switch (intrin->intrinsic) {
-         case nir_intrinsic_load_global:
-         case nir_intrinsic_load_global_constant:
-         case nir_intrinsic_load_ssbo:
-         case nir_intrinsic_load_shared:
-         case nir_intrinsic_load_scratch:
-            if (lower_mem_load_bit_size(&b, intrin, devinfo))
-               progress = true;
-            break;
+   const struct intel_device_info *devinfo = cb_data;
 
-         case nir_intrinsic_store_global:
-         case nir_intrinsic_store_ssbo:
-         case nir_intrinsic_store_shared:
-         case nir_intrinsic_store_scratch:
-            if (lower_mem_store_bit_size(&b, intrin, devinfo))
-               progress = true;
-            break;
+   if (instr->type != nir_instr_type_intrinsic)
+      return false;
 
-         default:
-            break;
-         }
-      }
-   }
+   b->cursor = nir_after_instr(instr);
 
-   if (progress) {
-      nir_metadata_preserve(impl, nir_metadata_block_index |
-                                  nir_metadata_dominance);
-   } else {
-      nir_metadata_preserve(impl, nir_metadata_all);
-   }
+   nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
+   switch (intrin->intrinsic) {
+   case nir_intrinsic_load_global:
+   case nir_intrinsic_load_global_constant:
+   case nir_intrinsic_load_ssbo:
+   case nir_intrinsic_load_shared:
+   case nir_intrinsic_load_scratch:
+      return lower_mem_load_bit_size(b, intrin, devinfo);
+
+   case nir_intrinsic_store_global:
+   case nir_intrinsic_store_ssbo:
+   case nir_intrinsic_store_shared:
+   case nir_intrinsic_store_scratch:
+      return lower_mem_store_bit_size(b, intrin, devinfo);
 
-   return progress;
+   default:
+      return false;
+   }
 }
 
 /**
@@ -313,12 +294,8 @@ bool
 brw_nir_lower_mem_access_bit_sizes(nir_shader *shader,
                                    const struct intel_device_info *devinfo)
 {
-   bool progress = false;
-
-   nir_foreach_function(func, shader) {
-      if (func->impl && lower_mem_access_bit_sizes_impl(func->impl, devinfo))
-         progress = true;
-   }
-
-   return progress;
+   return nir_shader_instructions_pass(shader, lower_mem_access_bit_sizes_instr,
+                                       nir_metadata_block_index |
+                                       nir_metadata_dominance,
+                                       (void *)devinfo);
 }



More information about the mesa-commit mailing list