No longer referencing "shared memory" as this can confuse people. The memory is

clearly shared between processors if these instructions are being used, no 
further specification of what type of memory is necessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40118 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth
2007-07-20 20:14:52 +00:00
parent 1cff40819c
commit 6813c15e1d

View File

@ -4841,7 +4841,7 @@ Handling</a> document. </p>
provides an interface to the hardware, not an interface to the programmer. It provides an interface to the hardware, not an interface to the programmer. It
is aimed at a low enough level to allow any programming models or APIs which is aimed at a low enough level to allow any programming models or APIs which
need atomic behaviors to map cleanly onto it. It is also modeled primarily on need atomic behaviors to map cleanly onto it. It is also modeled primarily on
hardware behavior. Just as hardware provides a "unviresal IR" for source hardware behavior. Just as hardware provides a "universal IR" for source
languages, it also provides a starting point for developing a "universal" languages, it also provides a starting point for developing a "universal"
atomic operation and synchronization IR. atomic operation and synchronization IR.
</p> </p>
@ -4873,8 +4873,8 @@ declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* &lt;ptr&gt;, i64 &lt;cmp&gt;
</pre> </pre>
<h5>Overview:</h5> <h5>Overview:</h5>
<p> <p>
This loads a value in shared memory and compares it to a given value. If they This loads a value in memory and compares it to a given value. If they are
are equal, it stores a new value into the shared memory. equal, it stores a new value into the memory.
</p> </p>
<h5>Arguments:</h5> <h5>Arguments:</h5>
<p> <p>
@ -4887,10 +4887,10 @@ declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* &lt;ptr&gt;, i64 &lt;cmp&gt;
<h5>Semantics:</h5> <h5>Semantics:</h5>
<p> <p>
This entire intrinsic must be executed atomically. It first loads the value This entire intrinsic must be executed atomically. It first loads the value
in shared memory pointed to by <tt>ptr</tt> and compares it with the value in memory pointed to by <tt>ptr</tt> and compares it with the value
<tt>cmp</tt>. If they are equal, <tt>val</tt> is stored into the shared <tt>cmp</tt>. If they are equal, <tt>val</tt> is stored into the memory. The
memory. The loaded value is yielded in all cases. This provides the loaded value is yielded in all cases. This provides the equivalent of an
equivalent of an atomic compare-and-swap operation within the SSA framework. atomic compare-and-swap operation within the SSA framework.
</p> </p>
<h5>Examples:</h5> <h5>Examples:</h5>
<pre> <pre>
@ -4928,9 +4928,9 @@ declare i64 @llvm.atomic.ls.i64.i64p.i64( i64* &lt;ptr&gt;, i64 &lt;val&gt; )
</pre> </pre>
<h5>Overview:</h5> <h5>Overview:</h5>
<p> <p>
This intrinsic loads the value stored in shared memory at <tt>ptr</tt> and This intrinsic loads the value stored in memory at <tt>ptr</tt> and yields
yields the value from memory. It then stores the value in <tt>val</tt> in the the value from memory. It then stores the value in <tt>val</tt> in the memory
shared memory at <tt>ptr</tt>. at <tt>ptr</tt>.
</p> </p>
<h5>Arguments:</h5> <h5>Arguments:</h5>
<p> <p>
@ -4982,7 +4982,7 @@ declare i64 @llvm.atomic.las.i64.i64p.i64( i64* &lt;ptr&gt;, i64 &lt;delta&gt; )
</pre> </pre>
<h5>Overview:</h5> <h5>Overview:</h5>
<p> <p>
This intrinsic adds <tt>delta</tt> to the value stored in shared memory at This intrinsic adds <tt>delta</tt> to the value stored in memory at
<tt>ptr</tt>. It yields the original value at <tt>ptr</tt>. <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
</p> </p>
<h5>Arguments:</h5> <h5>Arguments:</h5>
@ -5029,8 +5029,8 @@ declare i64 @llvm.atomic.lss.i64.i64.i64( i64* &lt;ptr&gt;, i64 &lt;delta&gt; )
</pre> </pre>
<h5>Overview:</h5> <h5>Overview:</h5>
<p> <p>
This intrinsic subtracts <tt>delta</tt> from the value stored in shared This intrinsic subtracts <tt>delta</tt> from the value stored in memory at
memory at <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>. <tt>ptr</tt>. It yields the original value at <tt>ptr</tt>.
</p> </p>
<h5>Arguments:</h5> <h5>Arguments:</h5>
<p> <p>