[PATCH] D107552: [InstCombine] Combine lshr of add that intends to get the carry as llvm.uadd.with.overflow
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 9 10:33:07 PDT 2021
craig.topper added inline comments.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp:1105
+ for (TruncInst *Trunc : Truncs) {
+ Trunc->replaceAllUsesWith(UAdd);
+ }
----------------
lebedev.ri wrote:
> craig.topper wrote:
> > craig.topper wrote:
> > > We probably need to do something here to schedule the dead truncates to revisited to remove them. But I'm not sure.
> > I think this should use InstCombinerImpl::replaceInstUsesWith rather than Instruction::replaceAllUsesWith. Then I think it should call InstCombinerImpl::eraseInstFromFunction.
> >
> > @spatel or @lebedev.ri does that sound right?
> Right, the pass-specific call should be used.
> I don't think we need to call `eraseInstFromFunction()` explcitly,
> that should be handled automatically once you return non-null from this function.
> Generally, i would think not having an intermediate vector would be better, but not sure.
The truncates aren’t directly part of the chain of instructions we’re changing so I’m not sure if the get queued properly for DCE once we return.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107552/new/
https://reviews.llvm.org/D107552
More information about the llvm-commits
mailing list