nir: Handle more barriers in dead_write and copy_prop

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3307>
This commit is contained in:
Jason Ekstrand 2020-01-07 14:11:55 -06:00 committed by Marge Bot
parent ada49bae5e
commit f09db0bed5
2 changed files with 22 additions and 0 deletions

View file

@ -807,6 +807,19 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
nir_var_mem_shared);
break;
case nir_intrinsic_memory_barrier_buffer:
case nir_intrinsic_memory_barrier_atomic_counter:
if (debug) dump_instr(instr);
apply_barrier_for_modes(copies, nir_var_mem_ssbo);
break;
case nir_intrinsic_memory_barrier_shared:
if (debug) dump_instr(instr);
apply_barrier_for_modes(copies, nir_var_mem_shared);
break;
case nir_intrinsic_scoped_memory_barrier:
if (debug) dump_instr(instr);

View file

@ -139,6 +139,15 @@ remove_dead_write_vars_local(void *mem_ctx, nir_block *block)
break;
}
case nir_intrinsic_memory_barrier_buffer:
case nir_intrinsic_memory_barrier_atomic_counter:
clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo);
break;
case nir_intrinsic_memory_barrier_shared:
clear_unused_for_modes(&unused_writes, nir_var_mem_shared);
break;
case nir_intrinsic_scoped_memory_barrier: {
if (nir_intrinsic_memory_semantics(intrin) & NIR_MEMORY_RELEASE) {
clear_unused_for_modes(&unused_writes,