forked from OSchip/llvm-project
[docs][LoopTerminology] Add Loop Simplify Form description.
Information taken from https://youtu.be/3pRhvQi7Z10?t=481 and comments in LoopSimplify.h. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D74989
This commit is contained in:
parent
21056a4ea0
commit
2a49d650a5
|
@ -141,10 +141,25 @@ are important for working successfully with this interface.
|
|||
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)
|
||||
|
|
|
@ -803,12 +803,15 @@ loop to increment the value by the appropriate amount.
|
|||
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue