[LoopPredication] Fix where we generate widened condition. PR61963
Loop predication's predicateLoopExit pass does two incorrect things: It sinks the widenable call into the loop, thereby converting an invariant condition to a variant one It widens the widenable call at a branch thereby converting the branch into a loop-varying one. The latter is problematic when the branch may have been loop-invariant and prior optimizations (such as indvars) may have relied on this fact, and updated the deopt state accordingly. Now, when we widen this with a loop-varying condition, the deopt state is no longer correct. https://github.com/llvm/llvm-project/issues/61963 fixed. Differential Revision: https://reviews.llvm.org/D147662
Loading
Please sign in to comment