nir: Call nir_metadata_preserve on !progress
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 22 May 2020 01:41:12 +0000 (20:41 -0500)
committerMarge Bot <eric+marge@anholt.net>
Thu, 11 Jun 2020 05:08:12 +0000 (05:08 +0000)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5171>

42 files changed:
src/compiler/nir/nir.c
src/compiler/nir/nir_deref.c
src/compiler/nir/nir_inline_functions.c
src/compiler/nir/nir_lower_array_deref_of_vec.c
src/compiler/nir/nir_lower_bit_size.c
src/compiler/nir/nir_lower_bool_to_int32.c
src/compiler/nir/nir_lower_double_ops.c
src/compiler/nir/nir_lower_global_vars_to_local.c
src/compiler/nir/nir_lower_indirect_derefs.c
src/compiler/nir/nir_lower_load_const_to_scalar.c
src/compiler/nir/nir_lower_packing.c
src/compiler/nir/nir_lower_returns.c
src/compiler/nir/nir_lower_scratch.c
src/compiler/nir/nir_lower_var_copies.c
src/compiler/nir/nir_lower_variable_initializers.c
src/compiler/nir/nir_lower_vars_to_ssa.c
src/compiler/nir/nir_lower_vec_to_movs.c
src/compiler/nir/nir_opt_barriers.c
src/compiler/nir/nir_opt_combine_stores.c
src/compiler/nir/nir_opt_comparison_pre.c
src/compiler/nir/nir_opt_constant_folding.c
src/compiler/nir/nir_opt_copy_prop_vars.c
src/compiler/nir/nir_opt_copy_propagate.c
src/compiler/nir/nir_opt_cse.c
src/compiler/nir/nir_opt_dce.c
src/compiler/nir/nir_opt_dead_cf.c
src/compiler/nir/nir_opt_dead_write_vars.c
src/compiler/nir/nir_opt_find_array_copies.c
src/compiler/nir/nir_opt_idiv_const.c
src/compiler/nir/nir_opt_if.c
src/compiler/nir/nir_opt_intrinsics.c
src/compiler/nir/nir_opt_move.c
src/compiler/nir/nir_opt_peephole_select.c
src/compiler/nir/nir_opt_rematerialize_compares.c
src/compiler/nir/nir_opt_remove_phis.c
src/compiler/nir/nir_opt_trivial_continues.c
src/compiler/nir/nir_opt_undef.c
src/compiler/nir/nir_search.c
src/compiler/nir/nir_split_var_copies.c
src/compiler/nir/nir_split_vars.c
src/compiler/nir/nir_to_lcssa.c
src/intel/compiler/brw_nir_lower_scoped_barriers.c

index 7c1d159..b8c7f8c 100644 (file)
@@ -1975,9 +1975,7 @@ nir_function_impl_lower_instructions(nir_function_impl *impl,
    if (progress) {
       nir_metadata_preserve(impl, preserved);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 61cf71e..79ca329 100644 (file)
@@ -1032,9 +1032,7 @@ nir_opt_deref_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index b1f83d6..d7144b3 100644 (file)
@@ -143,9 +143,7 @@ inline_function_impl(nir_function_impl *impl, struct set *inlined)
 
       nir_metadata_preserve(impl, nir_metadata_none);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    _mesa_set_add(inlined, impl);
index 0766a1b..99ed9ea 100644 (file)
@@ -162,6 +162,8 @@ nir_lower_array_deref_of_vec_impl(nir_function_impl *impl,
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index fbab267..38e3fa9 100644 (file)
@@ -106,6 +106,8 @@ lower_impl(nir_function_impl *impl,
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index f3c343c..2bdab5f 100644 (file)
@@ -154,6 +154,8 @@ nir_lower_bool_to_int32_impl(nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 73226fd..138fdde 100644 (file)
@@ -758,11 +758,9 @@ nir_lower_doubles_impl(nir_function_impl *impl,
    } else if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
-    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
-    }
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
+   }
 
    return progress;
 }
index 9efc511..563fa39 100644 (file)
@@ -108,13 +108,10 @@ nir_lower_global_vars_to_local(nir_shader *shader)
    if (progress)
       nir_fixup_deref_modes(shader);
 
-#ifndef NDEBUG
    nir_foreach_function(function, shader) {
-      if (function->impl) {
-         function->impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-      }
+      if (function->impl)
+         nir_metadata_preserve(function->impl, nir_metadata_all);
    }
-#endif
 
    return progress;
 }
index 9e8a844..d9dcba8 100644 (file)
@@ -191,6 +191,8 @@ lower_indirects_impl(nir_function_impl *impl, nir_variable_mode modes)
 
    if (progress)
       nir_metadata_preserve(impl, nir_metadata_none);
+   else
+      nir_metadata_preserve(impl, nir_metadata_all);
 
    return progress;
 }
index a65dcb0..197cebd 100644 (file)
@@ -81,9 +81,7 @@ nir_lower_load_const_to_scalar_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index ba9f4bc..ed95d46 100644 (file)
@@ -138,12 +138,17 @@ lower_pack_impl(nir_function_impl *impl)
 
          nir_ssa_def_rewrite_uses(&alu_instr->dest.dest.ssa, nir_src_for_ssa(dest));
          nir_instr_remove(&alu_instr->instr);
-         nir_metadata_preserve(impl, nir_metadata_block_index |
-                                     nir_metadata_dominance);
          progress = true;
       }
    }
 
+   if (progress) {
+      nir_metadata_preserve(impl, nir_metadata_block_index |
+                                  nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
+   }
+
    return progress;
 }
 
index ecbbf43..56c7656 100644 (file)
@@ -275,9 +275,7 @@ nir_lower_returns_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_none);
       nir_repair_ssa_impl(impl);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 0301afd..1f102ac 100644 (file)
@@ -175,6 +175,8 @@ nir_lower_vars_to_scratch(nir_shader *shader,
          progress = true;
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index e6ade73..f9df444 100644 (file)
@@ -150,9 +150,7 @@ lower_var_copies_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index b2a17d0..3a32bbd 100644 (file)
@@ -115,9 +115,7 @@ nir_lower_variable_initializers(nir_shader *shader, nir_variable_mode modes)
                                                nir_metadata_dominance |
                                                nir_metadata_live_ssa_defs);
       } else {
-#ifndef NDEBUG
-         function->impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index 0077ddf..30870e6 100644 (file)
@@ -750,9 +750,7 @@ nir_lower_vars_to_ssa_impl(nir_function_impl *impl)
    }
 
    if (!progress) {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
       return false;
    }
 
index eec994f..64b3fb4 100644 (file)
@@ -295,6 +295,8 @@ nir_lower_vec_to_movs_impl(nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 49ab105..18c3d79 100644 (file)
@@ -58,6 +58,8 @@ nir_opt_combine_memory_barriers_impl(
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance |
                                   nir_metadata_live_ssa_defs);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 8295b0f..08fa4ac 100644 (file)
@@ -400,6 +400,8 @@ combine_stores_impl(struct combine_stores_state *state, nir_function_impl *impl)
    if (state->progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return state->progress;
index 8e1a803..1bb62f3 100644 (file)
@@ -364,9 +364,12 @@ nir_opt_comparison_pre_impl(nir_function_impl *impl)
 
    block_queue_finish(&bq);
 
-   if (progress)
+   if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
+   }
 
    return progress;
 }
index 9964d78..9dcb464 100644 (file)
@@ -221,9 +221,7 @@ nir_opt_constant_folding_impl(struct constant_fold_state *state, nir_function_im
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index a1ea55c..fddbf88 100644 (file)
@@ -1186,9 +1186,7 @@ nir_copy_prop_vars_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    ralloc_free(mem_ctx);
index 794d9bc..2f7e4bc 100644 (file)
@@ -273,9 +273,7 @@ nir_copy_prop_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 3c3617d..e9ca688 100644 (file)
@@ -74,9 +74,7 @@ nir_opt_cse_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    nir_instr_set_destroy(instr_set);
index 724cf3f..c2487b0 100644 (file)
@@ -149,9 +149,7 @@ nir_opt_dce_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index a798da5..01d3699 100644 (file)
@@ -374,9 +374,7 @@ opt_dead_cf_impl(nir_function_impl *impl)
        */
       nir_repair_ssa_impl(impl);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index adba32a..b9d167a 100644 (file)
@@ -243,6 +243,8 @@ remove_dead_write_vars_impl(void *mem_ctx, nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 7f39884..0739a1f 100644 (file)
@@ -589,6 +589,8 @@ opt_find_array_copies_impl(nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 6881867..2992d06 100644 (file)
@@ -198,6 +198,8 @@ nir_opt_idiv_const_impl(nir_function_impl *impl, unsigned min_bit_size)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index e07e852..9c32ab1 100644 (file)
@@ -1451,9 +1451,7 @@ nir_opt_if(nir_shader *shader, bool aggressive_last_continue)
       if (preserve) {
          nir_metadata_preserve(function->impl, nir_metadata_none);
       } else {
-   #ifndef NDEBUG
-         function->impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-   #endif
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index e185602..503462e 100644 (file)
@@ -121,6 +121,8 @@ nir_opt_intrinsics(nir_shader *shader)
          progress = true;
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index 18c5498..8abdaf3 100644 (file)
@@ -152,13 +152,19 @@ nir_opt_move(nir_shader *shader, nir_move_options options)
       if (!func->impl)
          continue;
 
+      bool impl_progress = false;
       nir_foreach_block(block, func->impl) {
-         if (move(block, options)) {
-            nir_metadata_preserve(func->impl, nir_metadata_block_index |
-                                              nir_metadata_dominance |
-                                              nir_metadata_live_ssa_defs);
-            progress = true;
-         }
+         if (move(block, options))
+            impl_progress = true;
+      }
+
+      if (impl_progress) {
+         nir_metadata_preserve(func->impl, nir_metadata_block_index |
+                                           nir_metadata_dominance |
+                                           nir_metadata_live_ssa_defs);
+         progress = true;
+      } else {
+         nir_metadata_preserve(func->impl, nir_metadata_all);
       }
    }
 
index 1d0636d..590fec8 100644 (file)
@@ -306,9 +306,7 @@ nir_opt_peephole_select_impl(nir_function_impl *impl, unsigned limit,
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_none);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 8af33ab..9647e36 100644 (file)
@@ -174,6 +174,8 @@ nir_opt_rematerialize_compares_impl(nir_shader *shader, nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 36e01ff..966a982 100644 (file)
@@ -161,9 +161,7 @@ nir_opt_remove_phis_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 54d2245..4968119 100644 (file)
@@ -130,6 +130,8 @@ nir_opt_trivial_continues(nir_shader *shader)
          /* If that made progress, we're no longer really in SSA form. */
          nir_lower_regs_to_ssa_impl(function->impl);
          progress = true;
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index 6342377..0edd7ae 100644 (file)
@@ -155,9 +155,7 @@ nir_opt_undef(nir_shader *shader)
                                   nir_metadata_block_index |
                                   nir_metadata_dominance);
          } else {
-#ifndef NDEBUG
-            function->impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+            nir_metadata_preserve(function->impl, nir_metadata_all);
          }
       }
    }
index 5435bbb..09dd4c3 100644 (file)
@@ -960,11 +960,9 @@ nir_algebraic_impl(nir_function_impl *impl,
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
-    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
-    }
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
+   }
 
    return progress;
 }
index 10b71c1..f3cde31 100644 (file)
@@ -121,9 +121,7 @@ split_var_copies_impl(nir_function_impl *impl)
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
    } else {
-#ifndef NDEBUG
-      impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;
index 5b46d07..93b5e15 100644 (file)
@@ -331,6 +331,8 @@ nir_split_struct_vars(nir_shader *shader, nir_variable_mode modes)
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
          progress = true;
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
@@ -914,6 +916,8 @@ nir_split_array_vars(nir_shader *shader, nir_variable_mode modes)
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
          progress = true;
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
@@ -1654,6 +1658,8 @@ nir_shrink_vec_array_vars(nir_shader *shader, nir_variable_mode modes)
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
          progress = true;
+      } else {
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index e5b760c..64e260f 100644 (file)
@@ -397,9 +397,7 @@ nir_convert_to_lcssa(nir_shader *shader, bool skip_invariants, bool skip_bool_in
          nir_metadata_preserve(function->impl, nir_metadata_block_index |
                                                nir_metadata_dominance);
       } else {
-#ifndef NDEBUG
-         function->impl->valid_metadata &= ~nir_metadata_not_properly_reset;
-#endif
+         nir_metadata_preserve(function->impl, nir_metadata_all);
       }
    }
 
index bc78ff1..50ab356 100644 (file)
@@ -64,6 +64,8 @@ lower_impl(nir_function_impl *impl)
    if (progress) {
       nir_metadata_preserve(impl, nir_metadata_block_index |
                                   nir_metadata_dominance);
+   } else {
+      nir_metadata_preserve(impl, nir_metadata_all);
    }
 
    return progress;