aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Foad <jay.foad@gmail.com>2009-06-03 10:20:10 +0000
committerJay Foad <jay.foad@gmail.com>2009-06-03 10:20:10 +0000
commitd244909b766b89096c616784cdca5ab4522bb0e0 (patch)
treeff0e15010b489abe4c15028a3724beff427b5116
parent2c48fe6757284e363248ea725ceedca8dd7ee272 (diff)
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
-rw-r--r--docs/LangRef.html12
1 files changed, 9 insertions, 3 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index fb052d85eb..5f23674b31 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -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
'<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
-anywhere not dominated by the normal label, since an unwind does not
-provide a return value.</p>
+<p>For the purposes of the SSA form, the definition of the value
+returned by the '<tt>invoke</tt>' instruction is deemed to occur on
+the edge from the current block to the "normal" label. If the callee
+unwinds then no return value is available.</p>
<h5>Example:</h5>
<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
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>
<p>At runtime, the '<tt>phi</tt>' instruction logically takes on the value