[#llvm-simplifyLoop] = xref:llvm.adoc[llvm]::simplifyLoop :relfileprefix: ../ :mrdocs: Simplify each loop in a loop nest recursively. == Synopsis Declared in `<llvm/Transforms/Utils/LoopSimplify.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool simplifyLoop( xref:llvm/Loop.adoc[Loop]* L, xref:llvm/DominatorTree.adoc[DominatorTree]* DT, xref:llvm/LoopInfo.adoc[LoopInfo]* LI, xref:llvm/ScalarEvolution.adoc[ScalarEvolution]* SE, xref:llvm/AssumptionCache.adoc[AssumptionCache]* AC, xref:llvm/MemorySSAUpdater.adoc[MemorySSAUpdater]* MSSAU, bool PreserveLCSSA); ---- == Description This takes a potentially un‐simplified loop L (and its children) and turns it into a simplified loop nest with preheaders and single backedges. It will update `DominatorTree,` `LoopInfo,` `ScalarEvolution` and `MemorySSA` analyses if they're non‐null, and LCSSA if `PreserveLCSSA` is true. == Return Value True if any modifications were made to the loop nest. == Parameters [cols="1,4"] |=== | Name| Description | *L* | The loop (and its children) to simplify. | *DT* | Optional DominatorTree to update, or nullptr. | *LI* | Optional LoopInfo to update, or nullptr. | *SE* | Optional ScalarEvolution to update, or nullptr. | *AC* | Optional AssumptionCache used during simplification, or nullptr. | *MSSAU* | Optional MemorySSA updater, or nullptr. | *PreserveLCSSA* | When true, preserve LCSSA form. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#