From 574b7079b96703a748f89ef5adb7dc3e26b8f7fc Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 2 Dec 2021 22:49:08 +0100 Subject: Merge llvm-project main llvmorg-14-init-11187-g222442ec2d71 This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-11187-g222442ec2d71. PR: 261742 MFC after: 2 weeks (cherry picked from commit 4824e7fd18a1223177218d4aec1b3c6c5c4a444e) --- .../llvm/lib/Analysis/TargetLibraryInfo.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp') diff --git a/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp b/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp index 7326ba74c071..72fbd5ad3f68 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/TargetLibraryInfo.cpp @@ -166,8 +166,8 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, return; } - // memset_pattern16 is only available on iOS 3.0 and Mac OS X 10.5 and later. - // All versions of watchOS support it. + // memset_pattern{4,8,16} is only available on iOS 3.0 and Mac OS X 10.5 and + // later. All versions of watchOS support it. if (T.isMacOSX()) { // available IO unlocked variants on Mac OS X TLI.setAvailable(LibFunc_getc_unlocked); @@ -175,12 +175,20 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, TLI.setAvailable(LibFunc_putc_unlocked); TLI.setAvailable(LibFunc_putchar_unlocked); - if (T.isMacOSXVersionLT(10, 5)) + if (T.isMacOSXVersionLT(10, 5)) { + TLI.setUnavailable(LibFunc_memset_pattern4); + TLI.setUnavailable(LibFunc_memset_pattern8); TLI.setUnavailable(LibFunc_memset_pattern16); + } } else if (T.isiOS()) { - if (T.isOSVersionLT(3, 0)) + if (T.isOSVersionLT(3, 0)) { + TLI.setUnavailable(LibFunc_memset_pattern4); + TLI.setUnavailable(LibFunc_memset_pattern8); TLI.setUnavailable(LibFunc_memset_pattern16); + } } else if (!T.isWatchOS()) { + TLI.setUnavailable(LibFunc_memset_pattern4); + TLI.setUnavailable(LibFunc_memset_pattern8); TLI.setUnavailable(LibFunc_memset_pattern16); } @@ -684,7 +692,6 @@ static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, TLI.setUnavailable(LibFunc_strcat_chk); TLI.setUnavailable(LibFunc_strcpy_chk); TLI.setUnavailable(LibFunc_strlcat_chk); - TLI.setUnavailable(LibFunc_strlcat_chk); TLI.setUnavailable(LibFunc_strlcpy_chk); TLI.setUnavailable(LibFunc_strlen_chk); TLI.setUnavailable(LibFunc_strncat_chk); @@ -1523,6 +1530,8 @@ bool TargetLibraryInfoImpl::isValidProtoForLibFunc(const FunctionType &FTy, FTy.getParamType(2)->isPointerTy() && FTy.getParamType(3)->isIntegerTy()); + case LibFunc_memset_pattern4: + case LibFunc_memset_pattern8: case LibFunc_memset_pattern16: return (!FTy.isVarArg() && NumParams == 3 && FTy.getParamType(0)->isPointerTy() && -- cgit v1.2.3