mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-05 14:34:55 +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
|
||||
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
|
||||
same object. If the two memory objects overlap, but do not start at the same
|
||||
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>
|
||||
<dd>This indicates that pointer values
|
||||
<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
|
||||
these requirements are met.
|
||||
For further details, please see the discussion of the NoAlias response in
|
||||
|
Loading…
x
Reference in New Issue
Block a user