From: Chris Lattner Date: Tue, 27 Oct 2009 21:01:34 +0000 (+0000) Subject: document the forthcoming blockaddress constant. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c6f44369c3bae08eadc95b883601d0f8a68aad57;p=oota-llvm.git document the forthcoming blockaddress constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85306 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LangRef.html b/docs/LangRef.html index 82e895bec2b..916826aa462 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -83,6 +83,7 @@
  • Complex Constants
  • Global Variable and Function Addresses
  • Undefined Values
  • +
  • Address of Basic Block
  • Constant Expressions
  • Embedded Metadata
  • @@ -2170,6 +2171,29 @@ has undefined behavior.

    + +
    Address of Basic + Block
    +
    + +

    blockaddress(@function, %block)

    + +

    The 'blockaddress' constant computes the address of the specified + basic block in the specified function, and always has an i8* type.

    + + +

    This value only has defined behavior when used as an operand to the + 'indbr' 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. +

    + +
    + +
    Constant Expressions
    @@ -2688,7 +2712,8 @@ IfUnequal:

    The 'indbr' instruction implements an indirect branch to a label within the current function, whose address is specified by - "address".

    + "address". Address must be derived from a blockaddress constant.

    Arguments: