document the forthcoming blockaddress constant.

llvm-svn: 85306
This commit is contained in:
Chris Lattner 2009-10-27 21:01:34 +00:00
parent 35b5753e17
commit e4801f7844
1 changed files with 26 additions and 1 deletions

View File

@ -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>
@ -2170,6 +2171,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>