diff options
author | Chris Lattner <sabre@nondot.org> | 2009-10-27 21:01:34 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-10-27 21:01:34 +0000 |
commit | c6f44369c3bae08eadc95b883601d0f8a68aad57 (patch) | |
tree | cb0001add18e7ee16c15e7f487ddee5390ea857f /docs/LangRef.html | |
parent | 90d7dcfdd9f0ad435e57d476109630998faaa698 (diff) | |
download | llvm-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.html | 27 |
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> |