[RLEV] Pick a correct insert point when incoming instruction is itself a phi node
authorPhilip Reames <preames@rivosinc.com>
Mon, 29 Aug 2022 18:37:42 +0000 (11:37 -0700)
committerPhilip Reames <listmail@philipreames.com>
Mon, 29 Aug 2022 18:44:33 +0000 (11:44 -0700)
commitc37b1a5f764380f83ba08ae0cebca2b162123eb6
tree0275787e1e824dba6af3be93f4b00b4a945fbe30
parente1489d5e51886617a1076bc33f17737f825500e3
[RLEV] Pick a correct insert point when incoming instruction is itself a phi node

This fixes https://github.com/llvm/llvm-project/issues/57336. It was exposed by a recent SCEV change, but appears to have been a long standing issue.

Note that the whole insert into the loop instead of a split exit edge is slightly contrived to begin with; it's there solely because IndVarSimplify preserves the CFG.

Differential Revision: https://reviews.llvm.org/D132571
llvm/lib/Transforms/Utils/LoopUtils.cpp
llvm/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll