[PATCH] D86050: [SCEV] Refactor isHighCostExpansionHelper
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 23 23:50:25 PDT 2020
lebedev.ri added inline comments.
================
Comment at: llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp:2056-2064
if (OrigPhiRef->getType()->isPointerTy() != Phi->getType()->isPointerTy())
continue;
if (BasicBlock *LatchBlock = L->getLoopLatch()) {
Instruction *OrigInc = dyn_cast<Instruction>(
OrigPhiRef->getIncomingValueForBlock(LatchBlock));
Instruction *IsomorphicInc =
----------------
samparker wrote:
> lebedev.ri wrote:
> > samparker wrote:
> > > lebedev.ri wrote:
> > > > I guess i'm starting getting confused again and thus stalling, but.
> > > >
> > > > >>! In D86050#2232843, @samparker wrote:
> > > > >> Please can you explain why the calculated costs changed for those X86 tests?
> > > > > These were introduced once the Add and Mul expressions were costed in the same manner as when we're calculating for an AddRec.
> > > >
> > > > Right. But why was that done in the first place? Was that intentional?
> > > > That doesn't look correct to me.
> > > >
> > > > Plain `Add` and `Mul` are *not* identical to `AddRec`.
> > > >
> > > > > I'll remove the change for this patch and add it back in a follow-up.
> > > It was intentional... Why wouldn't we want to check for constant zero for plain Adds and constant one for plain Muls?
> > > Why wouldn't we want to check for constant zero for plain Adds and constant one for plain Muls?
> > Because they shouldn't be there, they should be canonicalized away during SCEV creation.
> >
> > But my main question is, why did that result in *higher* cost, as it can be seen from the blocked transforms?
> I don't know, it didn't make sense to me. Anyway, it's not in the patch anymore.
> I don't know, it didn't make sense to me.
Honestly, recalling how many of these costmodelling patches were there recently,
i'm now somewhat worried that i didn't pay attention to them..
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86050/new/
https://reviews.llvm.org/D86050
More information about the llvm-commits
mailing list