[PATCH] D27518: Moving isComplex decision to TTI
Hal Finkel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 13 12:44:23 PST 2016
hfinkel added inline comments.
================
Comment at: include/llvm/Analysis/TargetTransformInfo.h:606
+ /// of address-computation cost
+ struct AddressAccessInfo {
+ bool isStrided; /// True in case the access is strided (AddRec).
----------------
mkuper wrote:
> delena wrote:
> > mkuper wrote:
> > > delena wrote:
> > > > Why do you need a struct? "Value *" will contain everything.
> > > >
> > > > Value *Stride;
> > > >
> > > > if (Stride == nullptr) - no stride,
> > > > dyn_cast<ConstantInt>(Stride) - answers the question isConstant()
> > > >
> > > IIUC, we don't necessarily have a Value* in hand, this originates from a SCEV, right?
> > yes. We can use const SCEV*.
> I'm not sure passing a SCEV* to TTI makes sense, in terms of layering.
I don't see why that should be a problem. The backends already depend on SCEV (and the rest of analysis) because of IR-level passes. TTI should definitely use SCEV where appropriate.
https://reviews.llvm.org/D27518
More information about the llvm-commits
mailing list