diff options
| -rw-r--r-- | llvm/docs/LangRef.html | 90 | 
1 files changed, 20 insertions, 70 deletions
| diff --git a/llvm/docs/LangRef.html b/llvm/docs/LangRef.html index a0412644892..ef232a6374a 100644 --- a/llvm/docs/LangRef.html +++ b/llvm/docs/LangRef.html @@ -153,7 +153,6 @@            <li><a href="#i_select">'<tt>select</tt>' Instruction</a></li>            <li><a href="#i_call">'<tt>call</tt>'  Instruction</a></li>            <li><a href="#i_va_arg">'<tt>va_arg</tt>'  Instruction</a></li> -          <li><a href="#i_getresult">'<tt>getresult</tt>'  Instruction</a></li>          </ol>        </li>      </ol> @@ -1899,27 +1898,30 @@ the '<a href="#i_invoke"><tt>invoke</tt></a>' instruction, the '<a  Instruction</a> </div>  <div class="doc_text">  <h5>Syntax:</h5> -<pre>  ret <type> <value>       <i>; Return a value from a non-void function</i> +<pre> +  ret <type> <value>       <i>; Return a value from a non-void function</i>    ret void                 <i>; Return from void function</i> -  ret <type> <value>, <type> <value>  <i>; Return two values from a non-void function </i>  </pre>  <h5>Overview:</h5> -<p>The '<tt>ret</tt>' instruction is used to return control flow (and a -value) from a function back to the caller.</p> +<p>The '<tt>ret</tt>' instruction is used to return control flow (and +optionally a value) from a function back to the caller.</p>  <p>There are two forms of the '<tt>ret</tt>' instruction: one that -returns value(s) and then causes control flow, and one that just causes +returns a value and then causes control flow, and one that just causes  control flow to occur.</p>  <h5>Arguments:</h5> -<p>The '<tt>ret</tt>' instruction may return zero, one or multiple values.  -The type of each return value must be a '<a href="#t_firstclass">first  -class</a>' type.  Note that a function is not <a href="#wellformed">well  -formed</a> if there exists a '<tt>ret</tt>' instruction inside of the  -function that returns values that do not match the return type of the  -function.</p> +<p>The '<tt>ret</tt>' instruction optionally accepts a single argument, +the return value. The type of the return value must be a +'<a href="#t_firstclass">first class</a>' type.</p> + +<p>A function is not <a href="#wellformed">well formed</a> if +it it has a non-void return type and contains a '<tt>ret</tt>' +instruction with no return value or a return value with a type that +does not match its type, or if it has a void return type and contains +a '<tt>ret</tt>' instruction with a return value.</p>  <h5>Semantics:</h5> @@ -1930,16 +1932,14 @@ the instruction after the call.  If the caller was an "<a   href="#i_invoke"><tt>invoke</tt></a>" instruction, execution continues  at the beginning of the "normal" destination block.  If the instruction  returns a value, that value shall set the call or invoke instruction's -return value. If the instruction returns multiple values then these  -values can only be accessed through a '<a href="#i_getresult"><tt>getresult</tt> -</a>' instruction.</p> +return value.  <h5>Example:</h5>  <pre>    ret i32 5                       <i>; Return an integer value of 5</i>    ret void                        <i>; Return from a void function</i> -  ret i32 4, i8 2                 <i>; Return two values 4 and 2 </i>  +  ret { i32, i8 } { i32 4, i8 2 } <i>; Return an aggregate of values 4 and 2</i>  </pre>  </div>  <!-- _______________________________________________________________________ --> @@ -2049,9 +2049,7 @@ function, with the possibility of control flow transfer to either the  "<tt><a href="#i_ret">ret</a></tt>" instruction, control flow will return to the  "normal" label.  If the callee (or any indirect callees) returns with the "<a  href="#i_unwind"><tt>unwind</tt></a>" instruction, control is interrupted and -continued at the dynamically nearest "exception" label. If the callee function  -returns multiple values then individual return values are only accessible through  -a '<tt><a href="#i_getresult">getresult</a></tt>' instruction.</p> +continued at the dynamically nearest "exception" label.  <h5>Arguments:</h5> @@ -4289,9 +4287,7 @@ transfer to a specified function, with its incoming arguments bound to  the specified values. Upon a '<tt><a href="#i_ret">ret</a></tt>'  instruction in the called function, control flow continues with the  instruction after the function call, and the return value of the -function is bound to the result argument.  If the callee returns multiple  -values then the return values of the function are only accessible through  -the '<tt><a href="#i_getresult">getresult</a></tt>' instruction.</p> +function is bound to the result argument.  <h5>Example:</h5> @@ -4304,8 +4300,8 @@ the '<tt><a href="#i_getresult">getresult</a></tt>' instruction.</p>    %struct.A = type { i32, i8 }    %r = call %struct.A @foo()                     <i>; yields { 32, i8 }</i> -  %gr = getresult %struct.A %r, 0                <i>; yields i32</i> -  %gr1 = getresult %struct.A %r, 1               <i>; yields i8</i> +  %gr = extractvalue %struct.A %r, 0                <i>; yields i32</i> +  %gr1 = extractvalue %struct.A %r, 1               <i>; yields i8</i>  </pre>  </div> @@ -4358,52 +4354,6 @@ argument.</p>  </div> -<!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> -  <a name="i_getresult">'<tt>getresult</tt>' Instruction</a> -</div> - -<div class="doc_text"> - -<h5>Syntax:</h5> -<pre> -  <resultval> = getresult <type> <retval>, <index> -</pre> - -<h5>Overview:</h5> - -<p> The '<tt>getresult</tt>' instruction is used to extract individual values -from a '<tt><a href="#i_call">call</a></tt>'  -or '<tt><a href="#i_invoke">invoke</a></tt>' instruction that returns multiple -results.</p> - -<h5>Arguments:</h5> - -<p>The '<tt>getresult</tt>' instruction takes a call or invoke value as its  -first argument, or an undef value.  The value must have <a  -href="#t_struct">structure type</a>.  The second argument is a constant  -unsigned index value which must be in range for the number of values returned  -by the call.</p> - -<h5>Semantics:</h5> - -<p>The '<tt>getresult</tt>' instruction extracts the element identified by -'<tt>index</tt>' from the aggregate value.</p> - -<h5>Example:</h5> - -<pre> -  %struct.A = type { i32, i8 } - -  %r = call %struct.A @foo() -  %gr = getresult %struct.A %r, 0    <i>; yields i32:%gr</i> -  %gr1 = getresult %struct.A %r, 1   <i>; yields i8:%gr1</i> -  add i32 %gr, 42 -  add i8 %gr1, 41 -</pre> - -</div> -  <!-- *********************************************************************** -->  <div class="doc_section"> <a name="intrinsics">Intrinsic Functions</a> </div>  <!-- *********************************************************************** --> | 

