summaryrefslogtreecommitdiff
path: root/docs/LangRef.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-10-27 21:01:34 +0000
committerChris Lattner <sabre@nondot.org>2009-10-27 21:01:34 +0000
commitc6f44369c3bae08eadc95b883601d0f8a68aad57 (patch)
treecb0001add18e7ee16c15e7f487ddee5390ea857f /docs/LangRef.html
parent90d7dcfdd9f0ad435e57d476109630998faaa698 (diff)
downloadllvm-c6f44369c3bae08eadc95b883601d0f8a68aad57.tar.gz
llvm-c6f44369c3bae08eadc95b883601d0f8a68aad57.tar.bz2
llvm-c6f44369c3bae08eadc95b883601d0f8a68aad57.tar.xz
document the forthcoming blockaddress constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/LangRef.html')
-rw-r--r--docs/LangRef.html27
1 files changed, 26 insertions, 1 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 82e895bec2..916826aa46 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -83,6 +83,7 @@
<li><a href="#complexconstants">Complex Constants</a></li>
<li><a href="#globalconstants">Global Variable and Function Addresses</a></li>
<li><a href="#undefvalues">Undefined Values</a></li>
+ <li><a href="#blockaddress">Address of Basic Block</a></li>
<li><a href="#constantexprs">Constant Expressions</a></li>
<li><a href="#metadata">Embedded Metadata</a></li>
</ol>
@@ -2171,6 +2172,29 @@ has undefined behavior.</p>
</div>
<!-- ======================================================================= -->
+<div class="doc_subsection"><a name="blockaddress">Address of Basic
+ Block</a></div>
+<div class="doc_text">
+
+<p><b><tt>blockaddress(@function, %block)</tt></b></p>
+
+<p>The '<tt>blockaddress</tt>' constant computes the address of the specified
+ basic block in the specified function, and always has an i8* type.</p>
+
+
+<p>This value only has defined behavior when used as an operand to the
+ '<a href="#i_indbr"><tt>indbr</tt></a>' instruction or for comparisons
+ against null. Pointer equality tests between labels addresses is undefined
+ behavior - though, again, comparison against null is ok, and no label is
+ equal to the null pointer. Some targets may provide defined semantics when
+ using the value as the operand to an inline assembly, but that is target
+ specific.
+ </p>
+
+</div>
+
+
+<!-- ======================================================================= -->
<div class="doc_subsection"><a name="constantexprs">Constant Expressions</a>
</div>
@@ -2688,7 +2712,8 @@ IfUnequal:
<p>The '<tt>indbr</tt>' instruction implements an indirect branch to a label
within the current function, whose address is specified by
- "<tt>address</tt>".</p>
+ "<tt>address</tt>". Address must be derived from a <a
+ href="#blockaddress">blockaddress</a> constant.</p>
<h5>Arguments:</h5>