From 6087f1951e42f71b9b5043f0d5e23e7c31762572 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 14 Apr 2022 16:26:45 +0100 Subject: [PATCH] nir: call nir_metadata_preserve in nir_lower_memory_model Signed-off-by: Rhys Perry Reviewed-by: Samuel Pitoiset Part-of: --- src/compiler/nir/nir_lower_memory_model.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_memory_model.c b/src/compiler/nir/nir_lower_memory_model.c index eb16eb9f6eb..8180f5ef041 100644 --- a/src/compiler/nir/nir_lower_memory_model.c +++ b/src/compiler/nir/nir_lower_memory_model.c @@ -274,7 +274,8 @@ nir_lower_memory_model(nir_shader *shader) { bool progress = false; - struct exec_list *cf_list = &nir_shader_get_entrypoint(shader)->body; + nir_function_impl *impl = nir_shader_get_entrypoint(shader); + struct exec_list *cf_list = &impl->body; uint32_t modes = 0; foreach_list_typed(nir_cf_node, cf_node, node, cf_list) @@ -284,5 +285,10 @@ nir_lower_memory_model(nir_shader *shader) foreach_list_typed_reverse(nir_cf_node, cf_node, node, cf_list) progress |= lower_make_available(cf_node, &modes); + if (progress) + nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance); + else + nir_metadata_preserve(impl, nir_metadata_all); + return progress; }