[#llvm-LoopConstrainer] = xref:llvm.adoc[llvm]::LoopConstrainer :relfileprefix: ../ :mrdocs: Constrain a loop to run within a given iteration range. == Synopsis Declared in `<llvm/Transforms/Utils/LoopConstrainer.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class LoopConstrainer; ---- == Description The algorithm this class implements is given a Loop and a range [Begin,] End). The algorithm then tries to break out a "main loop" out of the loop it is given in a way that the "main loop" runs with the induction variable in a subset of [Begin, End). The algorithm emits appropriate pre and post] loops to run any remaining iterations. The pre loop runs any iterations in which the induction variable is < Begin, and the post loop runs any iterations in which the induction variable is >= End. == Types [cols="1,4"] |=== | Name| Description | xref:llvm/LoopConstrainer/SubRanges.adoc[`SubRanges`] | Subranges that restrict the main loop's iteration space. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:llvm/LoopConstrainer/2constructor.adoc[`LoopConstrainer`] [.small]#[constructor]# | Construct a constrainer for loop `L` with structure `LS` and range `SR.` | xref:llvm/LoopConstrainer/run.adoc[`run`] | Run the loop constraining algorithm. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#