Full threadmshockwave·LLVM tries to canonicalize all the loops into one of the two canonical forms[1] before doing any useful analysis and transformations. It has been quite effectives. Not all loops can be shaped into a canonical one though.[1]: https://llvm.org/docs/LoopTerminology.htmlView on HN