Wordsmith the semantics of invariant.load

Don't phrase the semantics in terms of the optimizer.  Instead have a
more straightforward execution based semantic.

Reviewed By: ebrevnov

Differential Revision: https://reviews.llvm.org/D63439
This commit is contained in:
Evgeniy Brevnov 2021-04-22 10:04:49 +07:00
parent 39ea3ceda3
commit b9e9e2eef1
1 changed files with 4 additions and 4 deletions

View File

@ -9639,10 +9639,10 @@ as the ``MOVNT`` instruction on x86.
The optional ``!invariant.load`` metadata must reference a single
metadata name ``<empty_node>`` corresponding to a metadata node with no
entries. If a load instruction tagged with the ``!invariant.load``
metadata is executed, the optimizer may assume the memory location
referenced by the load contains the same value at all points in the
program where the memory location is known to be dereferenceable;
otherwise, the behavior is undefined.
metadata is executed, the memory location referenced by the load has
to contain the same value at all points in the program where the
memory location is dereferenceable; otherwise, the behavior is
undefined.
The optional ``!invariant.group`` metadata must reference a single metadata name
``<empty_node>`` corresponding to a metadata node with no entries.