aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-09-08 18:27:49 +0000
committerChris Lattner <sabre@nondot.org>2003-09-08 18:27:49 +0000
commitf065107bacd3045ba238f15e70b5c6a2915efe0f (patch)
treee3a6afd7694bd52d73d23d774fe87189b4f9cd08 /docs
parent15c9c0352edd1e970f48f4afe99b2829af581916 (diff)
downloadexternal_llvm-f065107bacd3045ba238f15e70b5c6a2915efe0f.zip
external_llvm-f065107bacd3045ba238f15e70b5c6a2915efe0f.tar.gz
external_llvm-f065107bacd3045ba238f15e70b5c6a2915efe0f.tar.bz2
Add info about volatile loads/stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8403 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.html18
1 files changed, 14 insertions, 4 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 02b7640..06cb68d 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -1405,6 +1405,7 @@ instructions), the memory is reclaimed.<p>
<h5>Syntax:</h5>
<pre>
&lt;result&gt; = load &lt;ty&gt;* &lt;pointer&gt;
+ &lt;result&gt; = volatile load &lt;ty&gt;* &lt;pointer&gt;
</pre>
<h5>Overview:</h5>
@@ -1412,7 +1413,12 @@ The '<tt>load</tt>' instruction is used to read from memory.<p>
<h5>Arguments:</h5>
-The argument to the '<tt>load</tt>' instruction specifies the memory address to load from. The pointer must point to a <a href="t_firstclass">first class</a> type.<p>
+The argument to the '<tt>load</tt>' instruction specifies the memory address to
+load from. The pointer must point to a <a href="t_firstclass">first class</a>
+type. If the <tt>load</tt> is marked as <tt>volatile</tt> then the optimizer is
+not allowed to modify the number or order of execution of this <tt>load</tt>
+with other volatile <tt>load</tt> and <tt><a href="#i_store">store</a></tt>
+instructions. <p>
<h5>Semantics:</h5>
@@ -1434,6 +1440,7 @@ The location of memory pointed to is loaded.
<h5>Syntax:</h5>
<pre>
store &lt;ty&gt; &lt;value&gt;, &lt;ty&gt;* &lt;pointer&gt; <i>; yields {void}</i>
+ volatile store &lt;ty&gt; &lt;value&gt;, &lt;ty&gt;* &lt;pointer&gt; <i>; yields {void}</i>
</pre>
<h5>Overview:</h5>
@@ -1443,8 +1450,11 @@ The '<tt>store</tt>' instruction is used to write to memory.<p>
There are two arguments to the '<tt>store</tt>' instruction: a value to store
and an address to store it into. The type of the '<tt>&lt;pointer&gt;</tt>'
-operand must be a pointer to the type of the '<tt>&lt;value&gt;</tt>'
-operand.<p>
+operand must be a pointer to the type of the '<tt>&lt;value&gt;</tt>' operand.
+If the <tt>store</tt> is marked as <tt>volatile</tt> then the optimizer is not
+allowed to modify the number or order of execution of this <tt>store</tt> with
+other volatile <tt>load</tt> and <tt><a href="#i_store">store</a></tt>
+instructions.<p>
<h5>Semantics:</h5> The contents of memory are updated to contain
'<tt>&lt;value&gt;</tt>' at the location specified by the
@@ -1895,7 +1905,7 @@ arbitrarily complex and require memory allocation, for example.<p>
<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
<!-- Created: Tue Jan 23 15:19:28 CST 2001 -->
<!-- hhmts start -->
-Last modified: Tue Sep 2 19:41:01 CDT 2003
+Last modified: Mon Sep 8 13:27:14 CDT 2003
<!-- hhmts end -->
</font>
</body></html>