@@ -285,8 +285,8 @@ Dependence on Cycles Headers
285285Contradictions in *convergence-before * are possible only between two
286286nodes that are inside some cycle. The dynamic instances of such nodes
287287may be interleaved in the same thread, and this interleaving may be
288- different for different threads.
289-
288+ different for different threads. Cycle headers serve as implicit
289+ * points of convergence * in the maximal converged-with relation.
290290When a thread executes a node ``X `` once and then executes it again,
291291it must have followed a closed path in the CFG that includes ``X ``.
292292Such a path must pass through the header of at least one cycle --- the
@@ -295,14 +295,6 @@ thread, two dynamic instances of ``X`` are either separated by the
295295execution of at least one cycle header, or ``X `` itself is a cycle
296296header.
297297
298- In reducible cycles (natural loops), each execution of the header is
299- equivalent to the start of a new iteration of the cycle. But this
300- analogy breaks down in the presence of explicit constraints on the
301- converged-with relation, such as those described in :ref: `future
302- work<convergence-note-convergence>`. Instead, cycle headers should be
303- treated as implicit *points of convergence * in a maximal
304- converged-with relation.
305-
306298Consider a sequence of nested cycles ``C1 ``, ``C2 ``, ..., ``Ck `` such
307299that ``C1 `` is the outermost cycle and ``Ck `` is the innermost cycle,
308300with headers ``H1 ``, ``H2 ``, ..., ``Hk `` respectively. When a thread
0 commit comments