Hi,
Recently the LoopUnrollAndJamPass was made a function pass, and here was the motivation for that: https://groups.google.com/forum/#!topic/llvm-dev/LF4rUjkVI2g.
I don’t see an obvious reason to keep IRCE as a LoopPass either, so I thought folks familiar with the pass could chime in if this seems like the right change.
An additional motivation is the need to either preserve BranchProbabilityInfo or have a new instance computed for each Loop (D72891). Making IRCE a FunctionPass will address this issue.
Thanks,
Alina