nir/opt_access: don't check restrict in can_reorder()

ACCESS_NON_WRITEABLE means that the memory is read-only, not the variable,
so we don't have to check for aliasing.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>
This commit is contained in:
Rhys Perry 2020-12-01 14:38:32 +00:00 committed by Marge Bot
parent 2448d13e0f
commit 939df4e364
1 changed files with 3 additions and 7 deletions

View File

@ -27,9 +27,8 @@
*
* - Infer readonly when it's missing.
* - Infer ACCESS_CAN_REORDER when the following are true:
* - Either there are no writes, or ACCESS_NON_WRITEABLE and ACCESS_RESTRICT
* are both set. In either case there are no writes to the underlying
* memory.
* - Either there are no writes, or ACCESS_NON_WRITEABLE is set. In either
* case there are no writes to the underlying memory.
* - ACCESS_VOLATILE is not set.
*
* If these conditions are true, then image and buffer reads may be treated as
@ -160,11 +159,8 @@ can_reorder(struct access_state *state, enum gl_access_qualifier access,
state->images_written;
/* Can we guarantee that the underlying memory is never written? */
if (!is_any_written ||
((access & ACCESS_NON_WRITEABLE) &&
(access & ACCESS_RESTRICT))) {
if (!is_any_written || (access & ACCESS_NON_WRITEABLE))
return !(access & ACCESS_VOLATILE);
}
return false;
}