fhahn created this revision.
fhahn added reviewers: jroelofs, ab, scanon, arphaman.
fhahn requested review of this revision.
Herald added a project: clang.

Building on D102489 <https://reviews.llvm.org/D102489>, default to 
Darwin_libsystem_m veclib on iOS based
targets.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D102494

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/test/Driver/darwin-veclib-default.c


Index: clang/test/Driver/darwin-veclib-default.c
===================================================================
--- /dev/null
+++ clang/test/Driver/darwin-veclib-default.c
@@ -0,0 +1,24 @@
+// Check default vector library options on Darwin platforms.
+
+// RUN: %clang -target x86_64-apple-darwin -S -### %s -arch x86_64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-MACOS %s
+
+// CHECK-MACOS: "-cc1"
+// CHECK-MACOS-NOT: -fveclib
+
+// RUN: %clang -target arm64-apple-darwinos -S -### %s -arch arm64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-DEFAULT %s
+
+// RUN: %clang -target arm64-apple-ios -S -### %s -arch arm64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-DEFAULT %s
+
+// CHECK-IOS-DEFAULT: "-cc1"
+// CHECK-IOS-DEFAULT: "-fveclib=Darwin_libsystem_m"
+
+// RUN: %clang -target arm64-apple-ios -S -### %s -arch arm64 
-fveclib=Accelerate 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-ACCELERATE %s
+
+// CHECK-IOS-ACCELERATE: "-cc1"
+// CHECK-IOS-ACCELERATE-NOT: "-fveclib=Darwin_libsystem_m"
+// CHECK-IOS-ACCELERATE: "-fveclib=Accelerate"
+// CHECK-IOS-ACCELERATE-NOT: "-fveclib=Darwin_libsystem_m"
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ clang/lib/Driver/ToolChains/Darwin.cpp
@@ -2486,6 +2486,11 @@
           options::OPT_fvisibility_inlines_hidden_static_local_var,
           options::OPT_fno_visibility_inlines_hidden_static_local_var))
     CC1Args.push_back("-fvisibility-inlines-hidden-static-local-var");
+
+  // If no vector library is specified by the user, default to
+  // Darwin_libsystem_m for iOS based targets.
+  if (isTargetIOSBased() && !DriverArgs.hasArgNoClaim(options::OPT_fveclib))
+    CC1Args.push_back("-fveclib=Darwin_libsystem_m");
 }
 
 DerivedArgList *


Index: clang/test/Driver/darwin-veclib-default.c
===================================================================
--- /dev/null
+++ clang/test/Driver/darwin-veclib-default.c
@@ -0,0 +1,24 @@
+// Check default vector library options on Darwin platforms.
+
+// RUN: %clang -target x86_64-apple-darwin -S -### %s -arch x86_64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-MACOS %s
+
+// CHECK-MACOS: "-cc1"
+// CHECK-MACOS-NOT: -fveclib
+
+// RUN: %clang -target arm64-apple-darwinos -S -### %s -arch arm64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-DEFAULT %s
+
+// RUN: %clang -target arm64-apple-ios -S -### %s -arch arm64 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-DEFAULT %s
+
+// CHECK-IOS-DEFAULT: "-cc1"
+// CHECK-IOS-DEFAULT: "-fveclib=Darwin_libsystem_m"
+
+// RUN: %clang -target arm64-apple-ios -S -### %s -arch arm64 -fveclib=Accelerate 2>&1 | \
+// RUN:   FileCheck --check-prefix CHECK-IOS-ACCELERATE %s
+
+// CHECK-IOS-ACCELERATE: "-cc1"
+// CHECK-IOS-ACCELERATE-NOT: "-fveclib=Darwin_libsystem_m"
+// CHECK-IOS-ACCELERATE: "-fveclib=Accelerate"
+// CHECK-IOS-ACCELERATE-NOT: "-fveclib=Darwin_libsystem_m"
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ clang/lib/Driver/ToolChains/Darwin.cpp
@@ -2486,6 +2486,11 @@
           options::OPT_fvisibility_inlines_hidden_static_local_var,
           options::OPT_fno_visibility_inlines_hidden_static_local_var))
     CC1Args.push_back("-fvisibility-inlines-hidden-static-local-var");
+
+  // If no vector library is specified by the user, default to
+  // Darwin_libsystem_m for iOS based targets.
+  if (isTargetIOSBased() && !DriverArgs.hasArgNoClaim(options::OPT_fveclib))
+    CC1Args.push_back("-fveclib=Darwin_libsystem_m");
 }
 
 DerivedArgList *
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to