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