mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-14 02:33:53 +00:00
Describe which dependencies are relevant to noalias, and document how
AliasAnalyses have the choice to respect noalias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107544 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
03560600b4
commit
efca7f9681
@ -201,6 +201,11 @@ freed and reallocated between accesses through one pointer and accesses through
|
|||||||
the other -- in this case, there is a dependence, but it's mediated by the free
|
the other -- in this case, there is a dependence, but it's mediated by the free
|
||||||
and reallocation.</p>
|
and reallocation.</p>
|
||||||
|
|
||||||
|
<p>As an exception to this is with the
|
||||||
|
<a href="LangRef.html#noalias"><tt>noalias</tt></a> keyword. AliasAnalysis
|
||||||
|
implementations may choose to ignore the "irrelevant" dependencies, provided
|
||||||
|
their clients do not need to be aware of these dependencies for correctness.</p>
|
||||||
|
|
||||||
<p>The MayAlias response is used whenever the two pointers might refer to the
|
<p>The MayAlias response is used whenever the two pointers might refer to the
|
||||||
same object. If the two memory objects overlap, but do not start at the same
|
same object. If the two memory objects overlap, but do not start at the same
|
||||||
location, return MayAlias.</p>
|
location, return MayAlias.</p>
|
||||||
|
@ -1053,7 +1053,12 @@ declare signext i8 @returns_signed_char()
|
|||||||
<dt><tt><b><a name="noalias">noalias</a></b></tt></dt>
|
<dt><tt><b><a name="noalias">noalias</a></b></tt></dt>
|
||||||
<dd>This indicates that pointer values
|
<dd>This indicates that pointer values
|
||||||
<a href="#pointeraliasing"><i>based</i></a> on the argument or return
|
<a href="#pointeraliasing"><i>based</i></a> on the argument or return
|
||||||
value do not alias pointer values which are not <i>based</i> on it.
|
value do not alias pointer values which are not <i>based</i> on it,
|
||||||
|
ignoring certain "irrelevant" dependencies.
|
||||||
|
For a call to the parent function, dependencies between memory
|
||||||
|
references from before or after the call and from those during the call
|
||||||
|
are "irrelevant" to the <tt>noalias</tt> keyword for the arguments and
|
||||||
|
return value used in that call.
|
||||||
The caller shares the responsibility with the callee for ensuring that
|
The caller shares the responsibility with the callee for ensuring that
|
||||||
these requirements are met.
|
these requirements are met.
|
||||||
For further details, please see the discussion of the NoAlias response in
|
For further details, please see the discussion of the NoAlias response in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user