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