forked from OSchip/llvm-project
Invariant.group and mustalias docs fixes
Summary: Alias analysis would like to know that invariant.group.barrier returns pointer that mustalias, but this can't imply that we can replace one pointer with another Reviewers: dberlin, sanjoy Subscribers: llvm-commits, chandlerc, hfinkel, nlewycky, amharc Differential Revision: https://reviews.llvm.org/D31758 llvm-svn: 300033
This commit is contained in:
parent
927d8e610a
commit
f8486e31ca
|
@ -136,7 +136,7 @@ be overlapping in some way, but do not start at the same address.
|
|||
|
||||
The ``MustAlias`` response may only be returned if the two memory objects are
|
||||
guaranteed to always start at exactly the same location. A ``MustAlias``
|
||||
response implies that the pointers compare equal.
|
||||
response does not imply that the pointers compare equal.
|
||||
|
||||
The ``getModRefInfo`` methods
|
||||
-----------------------------
|
||||
|
|
|
@ -5121,6 +5121,16 @@ Examples:
|
|||
!0 = !{!"magic ptr"}
|
||||
!1 = !{!"other ptr"}
|
||||
|
||||
The invariant.group metadata must be dropped when replacing one pointer by
|
||||
another based on aliasing information. This is because invariant.group is tied
|
||||
to the SSA value of the pointer operand.
|
||||
|
||||
.. code-block:: llvm
|
||||
%v = load i8, i8* %x, !invariant.group !0
|
||||
; if %x mustalias %y then we can replace the above instruction with
|
||||
%v = load i8, i8* %y
|
||||
|
||||
|
||||
'``type``' Metadata
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
|
Loading…
Reference in New Issue