diff options
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/TargetLibraryInfo.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/Analysis/VectorUtils.cpp | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/TargetLibraryInfo.cpp b/llvm/lib/Analysis/TargetLibraryInfo.cpp index 0d0e8f1eeca..f1d4268ad42 100644 --- a/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -1637,3 +1637,19 @@ INITIALIZE_PASS(TargetLibraryInfoWrapperPass, "targetlibinfo", char TargetLibraryInfoWrapperPass::ID = 0; void TargetLibraryInfoWrapperPass::anchor() {} + +unsigned TargetLibraryInfoImpl::getWidestVF(StringRef ScalarF) const { + ScalarF = sanitizeFunctionName(ScalarF); + if (ScalarF.empty()) + return 1; + + unsigned VF = 1; + std::vector<VecDesc>::const_iterator I = + llvm::lower_bound(VectorDescs, ScalarF, compareWithScalarFnName); + while (I != VectorDescs.end() && StringRef(I->ScalarFnName) == ScalarF) { + if (I->VectorizationFactor > VF) + VF = I->VectorizationFactor; + ++I; + } + return VF; +} diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp index d11cb6a4d3c..44043bd582c 100644 --- a/llvm/lib/Analysis/VectorUtils.cpp +++ b/llvm/lib/Analysis/VectorUtils.cpp @@ -1166,6 +1166,9 @@ void VFABI::getVectorVariantNames( const StringRef S = CI.getAttribute(AttributeList::FunctionIndex, VFABI::MappingsAttrName) .getValueAsString(); + if (S.empty()) + return; + SmallVector<StringRef, 8> ListAttr; S.split(ListAttr, ","); |