diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h b/llvm/include/llvm/Analysis/TargetTransformInfo.h --- a/llvm/include/llvm/Analysis/TargetTransformInfo.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h @@ -939,7 +939,7 @@ /// creating vectors that span multiple vector registers. /// If false, the vectorization factor will be chosen based on the /// size of the widest element type. - bool shouldMaximizeVectorBandwidth(bool OptSize) const; + bool shouldMaximizeVectorBandwidth() const; /// \return The minimum vectorization factor for types of given element /// bit width, or 0 if there is no minimum VF. The returned value only @@ -1533,7 +1533,7 @@ virtual TypeSize getRegisterBitWidth(RegisterKind K) const = 0; virtual unsigned getMinVectorRegisterBitWidth() = 0; virtual Optional getMaxVScale() const = 0; - virtual bool shouldMaximizeVectorBandwidth(bool OptSize) const = 0; + virtual bool shouldMaximizeVectorBandwidth() const = 0; virtual ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const = 0; virtual unsigned getMaximumVF(unsigned ElemWidth, unsigned Opcode) const = 0; @@ -1976,8 +1976,8 @@ Optional getMaxVScale() const override { return Impl.getMaxVScale(); } - bool shouldMaximizeVectorBandwidth(bool OptSize) const override { - return Impl.shouldMaximizeVectorBandwidth(OptSize); + bool shouldMaximizeVectorBandwidth() const override { + return Impl.shouldMaximizeVectorBandwidth(); } ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const override { diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h --- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h @@ -391,7 +391,7 @@ Optional getMaxVScale() const { return None; } - bool shouldMaximizeVectorBandwidth(bool OptSize) const { return false; } + bool shouldMaximizeVectorBandwidth() const { return false; } ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const { return ElementCount::get(0, IsScalable); diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp --- a/llvm/lib/Analysis/TargetTransformInfo.cpp +++ b/llvm/lib/Analysis/TargetTransformInfo.cpp @@ -596,8 +596,8 @@ return TTIImpl->getMaxVScale(); } -bool TargetTransformInfo::shouldMaximizeVectorBandwidth(bool OptSize) const { - return TTIImpl->shouldMaximizeVectorBandwidth(OptSize); +bool TargetTransformInfo::shouldMaximizeVectorBandwidth() const { + return TTIImpl->shouldMaximizeVectorBandwidth(); } ElementCount TargetTransformInfo::getMinimumVF(unsigned ElemWidth, diff --git a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h --- a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h +++ b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h @@ -85,7 +85,7 @@ unsigned getMinVectorRegisterBitWidth() const; ElementCount getMinimumVF(unsigned ElemWidth, bool IsScalable) const; - bool shouldMaximizeVectorBandwidth(bool OptSize) const { + bool shouldMaximizeVectorBandwidth() const { return true; } bool supportsEfficientVectorElementLoadStore() { diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -5836,7 +5836,7 @@ } ElementCount MaxVF = MaxVectorSize; - if (TTI.shouldMaximizeVectorBandwidth(!isScalarEpilogueAllowed()) || + if (TTI.shouldMaximizeVectorBandwidth() || (MaximizeBandwidth && isScalarEpilogueAllowed())) { // Collect all viable vectorization factors larger than the default MaxVF // (i.e. MaxVectorSize).