]> granicus.if.org Git - clang/commitdiff
Turning IAS on by default on ARM/Thumb
authorRenato Golin <renato.golin@linaro.org>
Wed, 11 Dec 2013 09:35:10 +0000 (09:35 +0000)
committerRenato Golin <renato.golin@linaro.org>
Wed, 11 Dec 2013 09:35:10 +0000 (09:35 +0000)
This is an experimental feature, where -integrated-as will be
on by default on ARM/Thumb. We aim to detect the missing features
so that the next release is stable.

Updating the ReleaseNotes, too.

Also moving the AArch64 into the same place.

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

docs/ReleaseNotes.rst
lib/Driver/ToolChains.cpp
lib/Driver/ToolChains.h
test/Driver/freebsd.c

index 9765357d7aa61e7ce330b8fe8485e35fadd54604..569d5e8420a0ab4add9836b1a777e5a6d28bed85 100644 (file)
@@ -64,7 +64,16 @@ New Compiler Flags
 C Language Changes in Clang
 ---------------------------
 
-...
+The integrated assembler is now turned on by default on ARM (and Thumb),
+so the use of the option `-integrated-as` is now redundant on those
+architectures. This is an important move to both *eat our own dog food*
+and to ease cross-compilation tremendously.
+
+We are aware of the problems that this may cause for code bases that
+rely on specific GNU syntax or extensions, and we're working towards
+getting them all fixed. Please, report bugs or feature requests if
+you find anything. In the meantime, use `-no-integrated-as` to revert
+back the call to GNU assembler.
 
 C11 Feature Support
 ^^^^^^^^^^^^^^^^^^^
index 63584882cd30dd328ace3728abf342f8b1149b42..3a3b26a78e8ae2f9027c6afecf4e19684dc7d817 100644 (file)
@@ -1611,7 +1611,10 @@ bool Generic_GCC::isPICDefaultForced() const {
 
 bool Generic_GCC::IsIntegratedAssemblerDefault() const {
   return getTriple().getArch() == llvm::Triple::x86 ||
-    getTriple().getArch() == llvm::Triple::x86_64;
+         getTriple().getArch() == llvm::Triple::x86_64 ||
+         getTriple().getArch() == llvm::Triple::aarch64 ||
+         getTriple().getArch() == llvm::Triple::arm ||
+         getTriple().getArch() == llvm::Triple::thumb;
 }
 
 /// Hexagon Toolchain
index 7c4d59fe9ab74889434fd5261f2d353dc9705507..c061a1f46261dd3eff51a8a2dbabe2b3e7204fbc 100644 (file)
@@ -413,12 +413,6 @@ public:
   Generic_ELF(const Driver &D, const llvm::Triple &Triple,
               const llvm::opt::ArgList &Args)
       : Generic_GCC(D, Triple, Args) {}
-
-  virtual bool IsIntegratedAssemblerDefault() const {
-    if (getTriple().getArch() == llvm::Triple::aarch64)
-      return true;
-    return Generic_GCC::IsIntegratedAssemblerDefault();
-  }
 };
 
 class LLVM_LIBRARY_VISIBILITY AuroraUX : public Generic_GCC {
index 9435923d586374215409730401606d97c4fbf21d..795372fb8965032aef545c32426d92673aca8c12 100644 (file)
 // CHECK-NORMAL: crt1.o
 // CHECK-NORMAL: crtbegin.o
 
-// RUN: %clang %s -### -o %t.o -target arm-unknown-freebsd10.0 2>&1 \
+// RUN: %clang %s -### -o %t.o -target arm-unknown-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM %s
 // CHECK-ARM: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions"
 // CHECK-ARM: as{{.*}}" "-mfpu=softvfp"{{.*}}"-matpcs"
 
-// RUN: %clang %s -### -o %t.o -target arm-gnueabi-freebsd10.0 2>&1 \
+// RUN: %clang %s -### -o %t.o -target arm-gnueabi-freebsd10.0 -no-integrated-as 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-ARM-EABI %s
 // CHECK-ARM-EABI-NOT: clang{{.*}}" "-cc1"{{.*}}" "-fsjlj-exceptions"
 // CHECK-ARM-EABI: as{{.*}}" "-mfpu=softvfp" "-meabi=5"