[PATCH] D65834: TLI: Darwin sometimes does not support _bcmp, so do not emit it for Darwin

Alex Lorenz via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 6 16:39:20 PDT 2019


arphaman created this revision.
arphaman added reviewers: jfb, t.p.northover.
Herald added subscribers: dexonsmith, jkorous, hiraditya, fedor.sergeev.
Herald added a project: LLVM.

Not all Darwin targets support _bcmp in all circumstances. Unfortunately after https://reviews.llvm.org/D56593 clang started emitting _bcmp for all Darwin targets. This patch reverts the previous behavior for Darwin.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65834

Files:
  llvm/lib/Analysis/TargetLibraryInfo.cpp
  llvm/test/Transforms/InferFunctionAttrs/annotate.ll


Index: llvm/test/Transforms/InferFunctionAttrs/annotate.ll
===================================================================
--- llvm/test/Transforms/InferFunctionAttrs/annotate.ll
+++ llvm/test/Transforms/InferFunctionAttrs/annotate.ll
@@ -241,8 +241,8 @@
 ; CHECK: declare i64 @atoll(i8* nocapture) [[G2]]
 declare i64 @atoll(i8*)
 
-; CHECK-DARWIN: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G2]]
 ; CHECK-LINUX: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G2]]
+; CHECK-DARWIN-NOT: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G2]]
 ; CHECK-UNKNOWN-NOT: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G2]]
 ; CHECK-NVPTX-NOT: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G2]]
 declare i32 @bcmp(i8*, i8*, i64)
Index: llvm/lib/Analysis/TargetLibraryInfo.cpp
===================================================================
--- llvm/lib/Analysis/TargetLibraryInfo.cpp
+++ llvm/lib/Analysis/TargetLibraryInfo.cpp
@@ -58,7 +58,7 @@
     return TT.isGNUEnvironment() || TT.isMusl();
   // Both NetBSD and OpenBSD are planning to remove the function. Windows does
   // not have it.
-  return TT.isOSFreeBSD() || TT.isOSSolaris() || TT.isOSDarwin();
+  return TT.isOSFreeBSD() || TT.isOSSolaris();
 }
 
 /// Initialize the set of available library functions based on the specified


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65834.213747.patch
Type: text/x-patch
Size: 1335 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190806/bc63437a/attachment.bin>


More information about the llvm-commits mailing list