ARM: Default to Swift when compiling for iOS 6 or later.
authorTilmann Scheller <tilmann.scheller@googlemail.com>
Mon, 2 Sep 2013 12:01:58 +0000 (12:01 +0000)
committerTilmann Scheller <tilmann.scheller@googlemail.com>
Mon, 2 Sep 2013 12:01:58 +0000 (12:01 +0000)
Test cases adjusted accordingly.

This fixes rdar://14871821.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189756 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMSubtarget.cpp
test/CodeGen/ARM/struct_byval.ll
test/CodeGen/ARM/swift-atomics.ll

index 3111f5e385ee2023b45b6579e55b1af751ae6e9c..a8e62e5a5598f7ae95c7680f92d6598e854545fb 100644 (file)
@@ -133,8 +133,13 @@ void ARMSubtarget::resetSubtargetFeatures(const MachineFunction *MF) {
 }
 
 void ARMSubtarget::resetSubtargetFeatures(StringRef CPU, StringRef FS) {
-  if (CPUString.empty())
-    CPUString = "generic";
+  if (CPUString.empty()) {
+    if (isTargetIOS() && !getTargetTriple().isOSVersionLT(6))
+      // Default to Swift for iOS 6 or later versions.
+      CPUString = "swift";
+    else
+      CPUString = "generic";
+  }
 
   // Insert the architecture feature derived from the target triple into the
   // feature string. This is important for setting features that are implied
index 012b9948537eaa85c0f4b960ff03ef26a10a9701..0b3d7afe6cdf0e767a77ffd9a9d6bb200c29bbf8 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=armv7-apple-ios6.0 | FileCheck %s
+; RUN: llc < %s -mtriple=armv7-apple-ios6.0 -mcpu=generic| FileCheck %s
 
 ; rdar://9877866
 %struct.SmallStruct = type { i32, [8 x i32], [37 x i8] }
index 1d7181557100a4f788610d1f2a2dfa314307cdf9..883165fc02445578cb4b64ee052956d7a6e5cc66 100644 (file)
@@ -1,5 +1,5 @@
-; RUN: llc -mtriple=armv7-apple-ios6.0 -mcpu=swift < %s | FileCheck %s
-; RUN: llc -mtriple=armv7-apple-ios6.0 < %s | FileCheck %s --check-prefix=CHECK-STRICT-ATOMIC
+; RUN: llc -mtriple=armv7-apple-ios6.0 < %s | FileCheck %s
+; RUN: llc -mtriple=armv7-apple-ios6.0 -mcpu=generic < %s | FileCheck %s --check-prefix=CHECK-STRICT-ATOMIC
 
 ; Release operations only need the store barrier provided by a "dmb ishst",