Fix a few typos and add links.

llvm-svn: 77403
This commit is contained in:
Andreas Bolka 2009-07-29 00:02:05 +00:00
parent 93246cc475
commit 8ae4e24c67
1 changed files with 19 additions and 15 deletions

View File

@ -1251,38 +1251,42 @@ target datalayout = "<i>layout specification</i>"
<div class="doc_text"> <div class="doc_text">
<p>Any memory access must be done though a pointer value associated <p>Any memory access must be done through a pointer value associated
with an address range of the memory access, otherwise the behavior with an address range of the memory access, otherwise the behavior
is undefined. Pointer values are associated with address ranges is undefined. Pointer values are associated with address ranges
according to the following rules:</p> according to the following rules:</p>
<ul> <ul>
<li>A pointer value formed from a <tt>getelementptr</tt> instruction is <li>A pointer value formed from a
associated with the addresses associated with the first operand of <tt><a href="#i_getelementptr">getelementptr</a></tt> instruction
the <tt>getelementptr</tt>.</li> is associated with the addresses associated with the first operand
<li>An addresses of a global variable is associated with the address of the <tt>getelementptr</tt>.</li>
<li>An address of a global variable is associated with the address
range of the variable's storage.</li> range of the variable's storage.</li>
<li>The result value of an allocation instruction is associated with <li>The result value of an allocation instruction is associated with
the address range of the allocated storage.</li> the address range of the allocated storage.</li>
<li>A null pointer in the default address-space is associated with <li>A null pointer in the default address-space is associated with
no addresses.</li> no address.</li>
<li>A pointer value formed by an <tt>inttoptr</tt> is associated with <li>A pointer value formed by an
all address ranges of all pointer values that contribute (directly <tt><a href="#i_inttoptr">inttoptr</a></tt> is associated with all
or indirectly) to the computation of the pointer's value.</li> address ranges of all pointer values that contribute (directly or
<li>The result value of a <tt>bitcast</tt> is associated with all indirectly) to the computation of the pointer's value.</li>
<li>The result value of a
<tt><a href="#i_bitcast">bitcast</a></tt> is associated with all
addresses associated with the operand of the <tt>bitcast</tt>.</li> addresses associated with the operand of the <tt>bitcast</tt>.</li>
<li>An integer constant other than zero or a pointer value returned <li>An integer constant other than zero or a pointer value returned
from a function not defined within LLVM may be associated with address from a function not defined within LLVM may be associated with address
ranges allocated through mechanisms other than those provided by ranges allocated through mechanisms other than those provided by
LLVM. Such ranges shall not overlap with any ranges of address LLVM. Such ranges shall not overlap with any ranges of addresses
allocated by mechanisms provided by LLVM.</li> allocated by mechanisms provided by LLVM.</li>
</ul> </ul>
<p>LLVM IR does not associate types with memory. The result type of a <p>LLVM IR does not associate types with memory. The result type of a
<tt>load</tt> merely indicates the size and alignment of the memory from <tt><a href="#i_load">load</a></tt> merely indicates the size and
which to load, as well as the interpretation of the value. The first alignment of the memory from which to load, as well as the
operand of a <tt>store</tt> similarly only indicates the size and interpretation of the value. The first operand of a
alignment of the store.</p> <tt><a href="#i_store">store</a></tt> similarly only indicates the size
and alignment of the store.</p>
<p>Consequently, type-based alias analysis, aka TBAA, aka <p>Consequently, type-based alias analysis, aka TBAA, aka
<tt>-fstrict-aliasing</tt>, is not applicable to general unadorned <tt>-fstrict-aliasing</tt>, is not applicable to general unadorned