File tree 2 files changed +20
-2
lines changed
2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -141,10 +141,25 @@ are important for working successfully with this interface.
141
141
reachability of the loop.
142
142
143
143
144
+ .. _loop-terminology-loop-simplify :
145
+
144
146
Loop Simplify Form
145
147
==================
146
148
147
- TBD
149
+ The Loop Simplify Form is a canonical form that makes
150
+ several analyses and transformations simpler and more effective.
151
+ It is ensured by the LoopSimplify
152
+ (:ref: `-loop-simplify <passes-loop-simplify >`) pass and is automatically
153
+ added by the pass managers when scheduling a LoopPass.
154
+ This pass is implemented in
155
+ `LoopInfo.h <http://llvm.org/doxygen/LoopSimplify_8h_source.html >`_.
156
+ When it is successful, the loop has:
157
+
158
+ * A preheader.
159
+ * A single backedge (which implies that there is a single latch).
160
+ * Dedicated exits. That is, no exit block for the loop
161
+ has a predecessor that is outside the loop. This implies
162
+ that all exit blocks are dominated by the loop header.
148
163
149
164
150
165
Loop Closed SSA (LCSSA)
Original file line number Diff line number Diff line change @@ -803,12 +803,15 @@ loop to increment the value by the appropriate amount.
803
803
804
804
A simple loop rotation transformation.
805
805
806
+ .. _passes-loop-simplify :
807
+
806
808
``-loop-simplify ``: Canonicalize natural loops
807
809
----------------------------------------------
808
810
809
811
This pass performs several transformations to transform natural loops into a
810
812
simpler form, which makes subsequent analyses and transformations simpler and
811
- more effective.
813
+ more effective. A summary of it can be found in
814
+ :ref: `Loop Terminology, Loop Simplify Form <loop-terminology-loop-simplify >`.
812
815
813
816
Loop pre-header insertion guarantees that there is a single, non-critical entry
814
817
edge from outside of the loop to the loop header. This simplifies a number of
You can’t perform that action at this time.
0 commit comments