nir: Call nir_metadata_preserve on !progress

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>
This commit is contained in:
Jason Ekstrand
2020-05-21 20:41:12 -05:00
committed by Marge Bot
parent b0d1f9a72f
commit 5e1c42d85f
42 changed files with 87 additions and 84 deletions

View 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;

View 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;

View 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);

View 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;

View 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;

View 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;

View File

@@ -759,9 +759,7 @@ nir_lower_doubles_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;

View 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;
}

View 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;
}

View 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;

View 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;
}

View 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;

View 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);
}
}

View 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;

View 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);
}
}

View 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;
}

View 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;

View 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;

View 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;

View 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;
}

View 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;

View 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);

View 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;

View 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);

View 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;

View 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;

View 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;

View 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;

View 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;

View 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);
}
}

View 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);
}
}

View 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)) {
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);
}
}

View 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;

View 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;

View 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;

View 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);
}
}

View 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);
}
}
}

View File

@@ -961,9 +961,7 @@ nir_algebraic_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;

View 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;

View 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);
}
}

View 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);
}
}

View 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;