[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