From: Bob Wilson Date: Thu, 29 May 2014 19:43:02 +0000 (+0000) Subject: Make the -mno-global-merge option work for arm64/aarch64. rdar://17024719 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a7e8472be21324151dd7cc75c595cd380548824d;p=clang Make the -mno-global-merge option work for arm64/aarch64. rdar://17024719 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209836 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 19816f745d..b623e10d3b 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -897,6 +897,14 @@ void Clang::AddAArch64TargetArgs(const ArgList &Args, CmdArgs.push_back("-backend-option"); CmdArgs.push_back("-aarch64-strict-align"); } + + // Setting -mno-global-merge disables the codegen global merge pass. Setting + // -mglobal-merge has no effect as the pass is enabled by default. + if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, + options::OPT_mno_global_merge)) { + if (A->getOption().matches(options::OPT_mno_global_merge)) + CmdArgs.push_back("-mno-global-merge"); + } } // Get CPU and ABI names. They are not independent diff --git a/test/Driver/mno-global-merge.c b/test/Driver/mno-global-merge.c index ec9f69e67c..a17848f04d 100644 --- a/test/Driver/mno-global-merge.c +++ b/test/Driver/mno-global-merge.c @@ -2,11 +2,19 @@ // RUN: -mno-global-merge -### -fsyntax-only %s 2> %t // RUN: FileCheck --check-prefix=CHECK-NGM < %t %s +// RUN: %clang -target arm64-apple-ios7 \ +// RUN: -mno-global-merge -### -fsyntax-only %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-NGM < %t %s + // CHECK-NGM: "-mno-global-merge" // RUN: %clang -target armv7-apple-darwin10 \ // RUN: -mglobal-merge -### -fsyntax-only %s 2> %t // RUN: FileCheck --check-prefix=CHECK-GM < %t %s +// RUN: %clang -target arm64-apple-ios7 \ +// RUN: -mglobal-merge -### -fsyntax-only %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-GM < %t %s + // CHECK-GM-NOT: "-mglobal-merge"