[PATCH] D65164: Define some basic terminology around loops in our documentation
Michael Kruse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 24 06:23:42 PDT 2019
Meinersbur added a comment.
Thanks for taking the initiative.
================
Comment at: docs/LoopTerminology.rst:23
+ dominance requirement and such are not considered loops. LoopInfo
+ does not include such cycles.
+
----------------
jdoerfert wrote:
> Could we add something like:
> > commonly referred to as irreducible control flow, or irreducible loops.
Also, such cycles are called loops in any literature that I know. It's just that LoopInfo does not create a loop object for them since they do not have a dominating header.
================
Comment at: docs/LoopTerminology.rst:25-26
+
+* Loops can contain non-loop cycles and non-loop cycles may contain
+ loops.
+
----------------
The concept of a backedge should have been introduced for this. A cycle inside a loop can either be
* A backedge
* A backedge of a nested loop
* An irreducible loop
================
Comment at: docs/LoopTerminology.rst:83-84
+
+Iteration Count - The number of times the header has executed before
+some interesting event happens. Commonly used w/o qualification to
+refer to the iteration count at which the loop exits. Will always be
----------------
Non-rotated loops often have headers that only check the loop condition. The header executed, but if the condition evaluated to false, arguably nothing interesting happened, in particular the source language's loop body did not execute.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D65164/new/
https://reviews.llvm.org/D65164
More information about the llvm-commits
mailing list