[PATCH] D74989: [LoopTerminology] Loop Simplify Form
Michael Kruse via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 26 18:43:27 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2a49d650a5d2: [docs][LoopTerminology] Add Loop Simplify Form description. (authored by baziotis, committed by Meinersbur).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74989/new/
https://reviews.llvm.org/D74989
Files:
llvm/docs/LoopTerminology.rst
llvm/docs/Passes.rst
Index: llvm/docs/Passes.rst
===================================================================
--- llvm/docs/Passes.rst
+++ llvm/docs/Passes.rst
@@ -803,12 +803,15 @@
A simple loop rotation transformation.
+.. _passes-loop-simplify:
+
``-loop-simplify``: Canonicalize natural loops
----------------------------------------------
This pass performs several transformations to transform natural loops into a
simpler form, which makes subsequent analyses and transformations simpler and
-more effective.
+more effective. A summary of it can be found in
+:ref:`Loop Terminology, Loop Simplify Form <loop-terminology-loop-simplify>`.
Loop pre-header insertion guarantees that there is a single, non-critical entry
edge from outside of the loop to the loop header. This simplifies a number of
Index: llvm/docs/LoopTerminology.rst
===================================================================
--- llvm/docs/LoopTerminology.rst
+++ llvm/docs/LoopTerminology.rst
@@ -141,10 +141,25 @@
reachability of the loop.
+.. _loop-terminology-loop-simplify:
+
Loop Simplify Form
==================
-TBD
+The Loop Simplify Form is a canonical form that makes
+several analyses and transformations simpler and more effective.
+It is ensured by the LoopSimplify
+(:ref:`-loop-simplify <passes-loop-simplify>`) pass and is automatically
+added by the pass managers when scheduling a LoopPass.
+This pass is implemented in
+`LoopInfo.h <http://llvm.org/doxygen/LoopSimplify_8h_source.html>`_.
+When it is successful, the loop has:
+
+* A preheader.
+* A single backedge (which implies that there is a single latch).
+* Dedicated exits. That is, no exit block for the loop
+ has a predecessor that is outside the loop. This implies
+ that all exit blocks are dominated by the loop header.
Loop Closed SSA (LCSSA)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74989.246869.patch
Type: text/x-patch
Size: 1831 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200227/8928c9a5/attachment.bin>
More information about the llvm-commits
mailing list