Document how phi and invoke instructions interact with SSA form.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72762 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jay Foad
2009-06-03 10:20:10 +00:00
parent 2c48fe6757
commit d244909b76

View File

@@ -2403,9 +2403,10 @@ cleanup is performed in the case of either a <tt>longjmp</tt> or a thrown
exception. Additionally, this is important for implementation of exception. Additionally, this is important for implementation of
'<tt>catch</tt>' clauses in high-level languages that support them.</p> '<tt>catch</tt>' clauses in high-level languages that support them.</p>
<p>It is not valid to reference the return value of an invoke call from <p>For the purposes of the SSA form, the definition of the value
anywhere not dominated by the normal label, since an unwind does not returned by the '<tt>invoke</tt>' instruction is deemed to occur on
provide a return value.</p> the edge from the current block to the "normal" label. If the callee
unwinds then no return value is available.</p>
<h5>Example:</h5> <h5>Example:</h5>
<pre> <pre>
@@ -4518,6 +4519,11 @@ may be used as the label arguments.</p>
block and the PHI instructions: i.e. PHI instructions must be first in block and the PHI instructions: i.e. PHI instructions must be first in
a basic block.</p> a basic block.</p>
<p>For the purposes of the SSA form, the use of each incoming value is
deemed to occur on the edge from the corresponding predecessor block
to the current block (but after any definition of an '<tt>invoke</tt>'
instruction's return value on the same edge).</p>
<h5>Semantics:</h5> <h5>Semantics:</h5>
<p>At runtime, the '<tt>phi</tt>' instruction logically takes on the value <p>At runtime, the '<tt>phi</tt>' instruction logically takes on the value