[PATCH] D21237: LoopRotation: remove iterative calls to rotateLoops

Andrew Trick via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 13 17:31:52 PDT 2016

atrick added a comment.

Of course loop rotation and jump threading are both forms of tail-duplication. So what! That doesn't mean they should be the same pass. These things are done for different reasons. Loop rotation's job is to put loops into a canonical form for the sake of all other downstream loop passes.

When two passes share common transformations, they should share a utility. They should not be combined into one pass unless they 
(a) are driven be the same analysis
(b) have the same pass ordering dependencies

It is very likely that LLVM clients who care about compile time will run -loop-rotate, and not -jump-threading.
(They will also likely want a light-weight "tail duplication" which we unfortunately don't provide)


More information about the llvm-commits mailing list