[PATCH] D132571: [RLEV] Pick a correct insert point when incoming instruction is itself a phi node
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 29 07:50:26 PDT 2022
nikic added inline comments.
================
Comment at: llvm/lib/Transforms/Utils/LoopUtils.cpp:1400
+ (isa<PHINode>(Inst) || isa<LandingPadInst>(Inst)) ?
+ &*Inst->getParent()->getFirstInsertionPt() : Inst;
+ RewritePhiSet.emplace_back(PN, i, ExitValue, InsertPt, HighCost);
----------------
Any reason we don't just use `PN->getIncomingBlock(i)->getTerminator()` as the insertion point? That seems like a more obvious place to materialize an edge value.
================
Comment at: llvm/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll:188
+ %inc137.lcssa = phi i32 [ %inc137, %for.body ]
+ %conv = trunc i32 %inc137.lcssa to i16
+ ret void
----------------
Can you please return the value from the function? The problem is a bit hard to understand if the RLEV results gets optimized away.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D132571/new/
https://reviews.llvm.org/D132571
More information about the llvm-commits
mailing list