From 9145a3d4ab7eb05d9fb113b5392e8961df629b88 Mon Sep 17 00:00:00 2001 From: Jian Cai Date: Mon, 7 Jun 2021 14:30:32 -0700 Subject: [PATCH] Revert "[AArch64] handle -Wa,-march=" This reverts commit fd11a26d368c5a909fb88548fef2cee7a6c2c931. --- clang/lib/Driver/ToolChains/Arch/AArch64.cpp | 12 ++------ clang/lib/Driver/ToolChains/Arch/AArch64.h | 3 +- clang/lib/Driver/ToolChains/Clang.cpp | 2 +- clang/test/Driver/aarch64-target-as-march.s | 46 ---------------------------- 4 files changed, 4 insertions(+), 59 deletions(-) delete mode 100644 clang/test/Driver/aarch64-target-as-march.s diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp index cb98d42..503685a 100644 --- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -185,20 +185,12 @@ getAArch64MicroArchFeaturesFromMcpu(const Driver &D, StringRef Mcpu, void aarch64::getAArch64TargetFeatures(const Driver &D, const llvm::Triple &Triple, const ArgList &Args, - std::vector &Features, - bool ForAS) { + std::vector &Features) { Arg *A; bool success = true; // Enable NEON by default. Features.push_back("+neon"); - if (ForAS && - (A = Args.getLastArg(options::OPT_Wa_COMMA, options::OPT_Xassembler))) { - llvm::StringRef WaMArch; - for (StringRef Value : A->getValues()) - if (Value.startswith("-march=")) - WaMArch = Value.substr(7); - success = getAArch64ArchFeaturesFromMarch(D, WaMArch, Args, Features); - } else if ((A = Args.getLastArg(options::OPT_march_EQ))) + if ((A = Args.getLastArg(options::OPT_march_EQ))) success = getAArch64ArchFeaturesFromMarch(D, A->getValue(), Args, Features); else if ((A = Args.getLastArg(options::OPT_mcpu_EQ))) success = getAArch64ArchFeaturesFromMcpu(D, A->getValue(), Args, Features); diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.h b/clang/lib/Driver/ToolChains/Arch/AArch64.h index d47c402..713af87 100644 --- a/clang/lib/Driver/ToolChains/Arch/AArch64.h +++ b/clang/lib/Driver/ToolChains/Arch/AArch64.h @@ -22,8 +22,7 @@ namespace aarch64 { void getAArch64TargetFeatures(const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args, - std::vector &Features, - bool ForAS); + std::vector &Features); std::string getAArch64TargetCPU(const llvm::opt::ArgList &Args, const llvm::Triple &Triple, llvm::opt::Arg *&A); diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 6fdd7e2..a0e1208 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -344,7 +344,7 @@ static void getTargetFeatures(const Driver &D, const llvm::Triple &Triple, case llvm::Triple::aarch64: case llvm::Triple::aarch64_32: case llvm::Triple::aarch64_be: - aarch64::getAArch64TargetFeatures(D, Triple, Args, Features, ForAS); + aarch64::getAArch64TargetFeatures(D, Triple, Args, Features); break; case llvm::Triple::x86: case llvm::Triple::x86_64: diff --git a/clang/test/Driver/aarch64-target-as-march.s b/clang/test/Driver/aarch64-target-as-march.s deleted file mode 100644 index a9301ad..0000000 --- a/clang/test/Driver/aarch64-target-as-march.s +++ /dev/null @@ -1,46 +0,0 @@ -/// These tests make sure that options passed to the assembler -/// via -Wa or -Xassembler are applied correctly to assembler inputs. - -/// Does not apply to non assembly files -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.1-a \ -// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-1 %s -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Xassembler -march=armv8.1-a \ -// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-1 %s - -// TARGET-FEATURE-1-NOT: "-target-feature" "+v8.1a" - -/// Does apply to assembler input -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.2-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=TARGET-FEATURE-2 %s -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Xassembler -march=armv8.2-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=TARGET-FEATURE-2 %s - -// TARGET-FEATURE-2: "-target-feature" "+v8.2a" - -/// No unused argument warnings when there are multiple values -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.1-a -Wa,-march=armv8.2-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=UNUSED-WARNING %s - -// UNUSED-WARNING-NOT: warning: argument unused during compilation - -/// Last march to assembler wins -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.2-a -Wa,-march=armv8.1-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=MULTIPLE-VALUES %s -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.2-a,-march=armv8.1-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=MULTIPLE-VALUES %s -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Xassembler -march=armv8.2-a -Xassembler \ -// RUN: -march=armv8.1-a %s 2>&1 | FileCheck --check-prefix=MULTIPLE-VALUES %s - -// MULTIPLE-VALUES: "-target-feature" "+v8.1a -// MULTIPLE-VALUES-NOT: "-target-feature" "+v8.2a - -/// march to compiler and assembler, we choose the one suited to the input file type -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.3-a -march=armv8.4-a %s 2>&1 | \ -// RUN: FileCheck --check-prefix=TARGET-FEATURE-3 %s -// RUN: %clang --target=aarch64-linux-gnueabi -### -c -Wa,-march=armv8.3-a -march=armv8.4-a \ -// RUN: %S/Inputs/wildcard1.c 2>&1 | FileCheck --check-prefix=TARGET-FEATURE-4 %s - -// TARGET-FEATURE-3: "-target-feature" "+v8.3a" -// TARGET-FEATURE-3-NOT: "-target-feature" "+v8.4a" -// TARGET-FEATURE-4: "-target-feature" "+v8.4a" -// TARGET-FEATURE-4-NOT: "-target-feature" "+v8.3a" -- 2.7.4