[PATCH] D26594: IR: Change the gep_type_iterator API to avoid always exposing the "current" type.
Haicheng Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 2 14:07:50 PST 2016
haicheng added inline comments.
================
Comment at: llvm/trunk/include/llvm/Analysis/TargetTransformInfoImpl.h:516
if (static_cast<T *>(this)->isLegalAddressingMode(
- PointerType::get(*GTI, AS), const_cast<GlobalValue *>(BaseGV),
+ PointerType::get(Type::getInt8Ty(PointeeType->getContext()), AS),
+ const_cast<GlobalValue *>(BaseGV),
----------------
pcc wrote:
> haicheng wrote:
> > Hi Peter,
> >
> > Would you please take a look at D27357 ?
> >
> > Should I change this line to fix the bug in the baseline?
> >
> > Thank you,
> >
> > Haicheng
> Yes please, sorry about the conflict. This would appear to be the right code change for D27357:
> ```
> diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
> index 2934e9c..7bc6415 100644
> --- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
> +++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
> @@ -483,7 +483,9 @@ public:
> int64_t Scale = 0;
>
> auto GTI = gep_type_begin(PointeeType, Operands);
> + Type *TargetType;
> for (auto I = Operands.begin(); I != Operands.end(); ++I, ++GTI) {
> + TargetType = GTI.getIndexedType();
> // We assume that the cost of Scalar GEP with constant index and the
> // cost of Vector GEP with splat constant index are the same.
> const ConstantInt *ConstIdx = dyn_cast<ConstantInt>(*I);
> @@ -513,9 +515,8 @@ public:
> unsigned AS =
> (Ptr == nullptr ? 0 : Ptr->getType()->getPointerAddressSpace());
> if (static_cast<T *>(this)->isLegalAddressingMode(
> - PointerType::get(Type::getInt8Ty(PointeeType->getContext()), AS),
> - const_cast<GlobalValue *>(BaseGV),
> - BaseOffset, HasBaseReg, Scale, AS)) {
> + TargetType, const_cast<GlobalValue *>(BaseGV), BaseOffset,
> + HasBaseReg, Scale, AS)) {
> return TTI::TCC_Free;
> }
> return TTI::TCC_Basic;
> ```
Thank you. I will use your code.
Repository:
rL LLVM
https://reviews.llvm.org/D26594
More information about the llvm-commits
mailing list