[llvm-commits] [llvm] r85306 - /llvm/trunk/docs/LangRef.html

Dan Gohman gohman at apple.com
Tue Oct 27 14:12:44 PDT 2009


Hi Chris,

On Oct 27, 2009, at 2:01 PM, Chris Lattner wrote:

> Author: lattner
> Date: Tue Oct 27 16:01:34 2009
> New Revision: 85306
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=85306&view=rev
> Log:
> document the forthcoming blockaddress constant.
> 
> Modified:
>    llvm/trunk/docs/LangRef.html
> 
> Modified: llvm/trunk/docs/LangRef.html
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=85306&r1=85305&r2=85306&view=diff
> 
> ==============================================================================
> --- llvm/trunk/docs/LangRef.html (original)
> +++ llvm/trunk/docs/LangRef.html Tue Oct 27 16:01:34 2009
> @@ -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>

The other items in this list are plural. Should this be
"Addresses of Basic Blocks"?

>       <li><a href="#constantexprs">Constant Expressions</a></li>
>       <li><a href="#metadata">Embedded Metadata</a></li>
>     </ol>
> @@ -2171,6 +2172,29 @@
> </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>

This should mention ptrtoint also, for label address differences.

Dan





More information about the llvm-commits mailing list