fossil-db (GFX10.3):
Totals from 20 (0.01% of 139391) affected shaders:
SGPRs: 688 -> 712 (+3.49%); split: -1.16%, +4.65%
CodeSize: 35488 -> 34424 (-3.00%); split: -3.04%, +0.05%
Instrs: 6405 -> 6259 (-2.28%); split: -2.44%, +0.16%
Cycles: 51768 -> 51268 (-0.97%); split: -1.21%, +0.24%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10384>
else if (entry->key->var)
entry->access = entry->key->var->data.access;
+ if (nir_intrinsic_can_reorder(intrin))
+ entry->access |= ACCESS_CAN_REORDER;
+
uint32_t restrict_modes = nir_var_shader_in | nir_var_shader_out;
restrict_modes |= nir_var_shader_temp | nir_var_function_temp;
restrict_modes |= nir_var_uniform | nir_var_mem_push_const;
assert(mode_to_index(get_variable_mode(a)) ==
mode_to_index(get_variable_mode(b)));
+ if ((a->access | b->access) & ACCESS_CAN_REORDER)
+ return false;
+
/* if the resources/variables are definitively different and both have
* ACCESS_RESTRICT, we can assume they do not alias. */
bool res_different = a->key->var != b->key->var ||