This pass transforms loops that contain a conditional branch with induction variable. For example, it transforms left code to right code:
newbound = min(n, c)
while (iv < n) { while(iv < newbound) {
A A
if (iv < c) B
B C
C }
} if (iv != n) {
while (iv < n) {
A
C
}
}
clang-format: please reformat the code
-class SimpleLoopBoundSplitPass : public PassInfoMixin<SimpleLoopBoundSplitPass> { +class SimpleLoopBoundSplitPass + : public PassInfoMixin<SimpleLoopBoundSplitPass> {