mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-26 09:18:56 +00:00
Describe invoke instruction dependencies. Generalize the text for
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
This commit is contained in:
@@ -2357,6 +2357,11 @@ has undefined behavior.</p>
|
|||||||
<a href="#i_ret"><tt>ret</tt></a> instructions that dynamically transfer
|
<a href="#i_ret"><tt>ret</tt></a> instructions that dynamically transfer
|
||||||
control back to them.</li>
|
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
|
<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
|
referenced memory addresses, following the order in the IR
|
||||||
(including loads and stores implied by intrinsics such as
|
(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
|
recent preceding instruction with externally visible side effects, following
|
||||||
the order in the IR. (This includes volatile loads and stores.)</li>
|
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>,
|
<li>An instruction <i>control-depends</i> on a
|
||||||
<a href="#i_switch"><tt>switch</tt></a>, or
|
<a href="#terminators">terminator instruction</a>
|
||||||
<a href="#i_indirectbr"><tt>indirectbr</tt></a> if the <tt>br</tt>,
|
if the terminator instruction has multiple successors and the instruction
|
||||||
<tt>switch</tt>, or <tt>indirectbr</tt> has multiple successors and the
|
is always executed when control transfers to one of the successors, and
|
||||||
instruction is always executed when control transfers to one of the
|
may not be executed when control is transfered to another.</li>
|
||||||
successors, and may not be executed when control is transfered to
|
|
||||||
another.</li>
|
|
||||||
|
|
||||||
<!-- FIXME: invoke, unwind, exceptions -->
|
|
||||||
|
|
||||||
<li>Dependence is transitive.</li>
|
<li>Dependence is transitive.</li>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user