Describe invoke instruction dependencies. Generalize the text for
authorDan Gohman <gohman@apple.com>
Mon, 3 May 2010 14:55:22 +0000 (14:55 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 3 May 2010 14:55:22 +0000 (14:55 +0000)
terminator instructions so that it applies to all terminators with
multiple successors, including invoke.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102909 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 982614f3ddf930f3c6e2cb825685d1e280ed29ee..4904fd9155f31a8b268e1d39f5a352316ca5ad0d 100644 (file)
@@ -2357,6 +2357,11 @@ has undefined behavior.</p>
     <a href="#i_ret"><tt>ret</tt></a> instructions that dynamically transfer
     control back to them.</li>
 
+<li><a href="#i_invoke"><tt>Invoke</tt></a> instructions depend on the
+    <a href="#i_ret"><tt>ret</tt></a>, <a href="#i_unwind"><tt>unwind</tt></a>,
+    or exception-throwing call instructions that dynamically transfer control
+    back to them.</li>
+
 <li>Non-volatile loads and stores depend on the most recent stores to all of the
     referenced memory addresses, following the order in the IR
     (including loads and stores implied by intrinsics such as
@@ -2374,15 +2379,11 @@ has undefined behavior.</p>
     recent preceding instruction with externally visible side effects, following
     the order in the IR. (This includes volatile loads and stores.)</li>
 
-<li>An instruction <i>control-depends</i> on a <a href="#i_br"><tt>br</tt></a>,
-    <a href="#i_switch"><tt>switch</tt></a>, or
-    <a href="#i_indirectbr"><tt>indirectbr</tt></a> if the <tt>br</tt>,
-    <tt>switch</tt>, or <tt>indirectbr</tt> has multiple successors and the
-    instruction is always executed when control transfers to one of the
-    successors, and may not be executed when control is transfered to
-    another.</li>
-
-<!-- FIXME: invoke, unwind, exceptions -->
+<li>An instruction <i>control-depends</i> on a
+    <a href="#terminators">terminator instruction</a>
+    if the terminator instruction has multiple successors and the instruction
+    is always executed when control transfers to one of the successors, and
+    may not be executed when control is transfered to another.</li>
 
 <li>Dependence is transitive.</li>