nir_var_mem_shared;
break;
+ case nir_intrinsic_scoped_memory_barrier:
+ if (nir_intrinsic_memory_semantics(intrin) & NIR_MEMORY_ACQUIRE)
+ written->modes |= nir_intrinsic_memory_modes(intrin);
+ break;
+
case nir_intrinsic_emit_vertex:
case nir_intrinsic_emit_vertex_with_counter:
written->modes = nir_var_shader_out;
nir_var_mem_shared);
break;
+ case nir_intrinsic_scoped_memory_barrier:
+ if (debug) dump_instr(instr);
+
+ if (nir_intrinsic_memory_semantics(intrin) & NIR_MEMORY_ACQUIRE)
+ apply_barrier_for_modes(copies, nir_intrinsic_memory_modes(intrin));
+ break;
+
case nir_intrinsic_emit_vertex:
case nir_intrinsic_emit_vertex_with_counter:
if (debug) dump_instr(instr);
};
}
+ nir_variable *src_var = nir_deref_instr_get_variable(src);
+ if (src_var && src_var->data.cannot_coalesce) {
+ /* The source cannot be coaleseced, which means we can't propagate
+ * this copy.
+ */
+ break;
+ }
+
struct copy_entry *dst_entry =
get_entry_and_kill_aliases(copies, dst, full_mask);
value_set_from_value(&dst_entry->src, &value, 0, full_mask);