diff options
author | Jay Foad <jay.foad@gmail.com> | 2009-06-03 10:20:10 +0000 |
---|---|---|
committer | Jay Foad <jay.foad@gmail.com> | 2009-06-03 10:20:10 +0000 |
commit | d244909b766b89096c616784cdca5ab4522bb0e0 (patch) | |
tree | ff0e15010b489abe4c15028a3724beff427b5116 | |
parent | 2c48fe6757284e363248ea725ceedca8dd7ee272 (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.html | 12 |
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 |