From 8c702d1f447aa6f33370756b7e53b8f1529cef58 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Sun, 23 Feb 2014 00:40:30 +0000 Subject: [PATCH] clang: add -f{no-,}integrate-as as consistent parameters The integrated assembler is a feature. This makes the new flags the default option, and the previous versions aliases. Ideally, at some point the aliases would be entirely removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201963 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Driver/Options.td | 11 +++++++++-- lib/Driver/ToolChain.cpp | 4 ++-- lib/Driver/Tools.cpp | 6 +++--- lib/Frontend/CompilerInvocation.cpp | 2 +- test/Driver/integrated-as.c | 11 +++++++++++ 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 915b502b93..1363692b10 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -947,7 +947,6 @@ def verify_pch : Flag<["-"], "verify-pch">, Group, Flags<[CC1Optio HelpText<"Load and verify that a pre-compiled header file is not stale">; def init : Separate<["-"], "init">; def install__name : Separate<["-"], "install_name">; -def integrated_as : Flag<["-"], "integrated-as">, Flags<[DriverOption]>; def iprefix : JoinedOrSeparate<["-"], "iprefix">, Group, Flags<[CC1Option]>, HelpText<"Set the -iwithprefix/-iwithprefixbefore prefix">, MetaVarName<"">; def iquote : JoinedOrSeparate<["-"], "iquote">, Group, Flags<[CC1Option]>, @@ -1191,7 +1190,6 @@ def mwarn_nonportable_cfstrings : Flag<["-"], "mwarn-nonportable-cfstrings">, Gr def no_canonical_prefixes : Flag<["-"], "no-canonical-prefixes">, Flags<[HelpHidden]>, HelpText<"Use relative instead of canonical paths">; def no_cpp_precomp : Flag<["-"], "no-cpp-precomp">, Group; -def no_integrated_as : Flag<["-"], "no-integrated-as">, Flags<[CC1Option, DriverOption]>; def no_integrated_cpp : Flag<["-", "--"], "no-integrated-cpp">, Flags<[DriverOption]>; def no_pedantic : Flag<["-", "--"], "no-pedantic">, Group; def no__dead__strip__inits__and__terms : Flag<["-"], "no_dead_strip_inits_and_terms">; @@ -1327,6 +1325,15 @@ def x : JoinedOrSeparate<["-"], "x">, Flags<[DriverOption,CC1Option]>, MetaVarName<"">; def y : Joined<["-"], "y">; +def fintegrated_as : Flag<["-"], "fintegrated-as">, Flags<[DriverOption]>, + Group, HelpText<"Enable the integrated assembler">; +def fno_integrated_as : Flag<["-"], "fno-integrated-as">, + Flags<[CC1Option, DriverOption]>, Group, + HelpText<"Disable the integrated assembler">; +def : Flag<["-"], "integrated-as">, Alias, Flags<[DriverOption]>; +def : Flag<["-"], "no-integrated-as">, Alias, + Flags<[CC1Option, DriverOption]>; + def working_directory : JoinedOrSeparate<["-"], "working-directory">, Flags<[CC1Option]>, HelpText<"Resolve file paths relative to the specified directory">; def working_directory_EQ : Joined<["-"], "working-directory=">, Flags<[CC1Option]>, diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp index 9c43706d4f..4103914d29 100644 --- a/lib/Driver/ToolChain.cpp +++ b/lib/Driver/ToolChain.cpp @@ -38,8 +38,8 @@ const Driver &ToolChain::getDriver() const { } bool ToolChain::useIntegratedAs() const { - return Args.hasFlag(options::OPT_integrated_as, - options::OPT_no_integrated_as, + return Args.hasFlag(options::OPT_fintegrated_as, + options::OPT_fno_integrated_as, IsIntegratedAssemblerDefault()); } diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 31192a2b02..06eb246260 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2521,7 +2521,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.hasArg(options::OPT_dA)) CmdArgs.push_back("-masm-verbose"); - if (!Args.hasFlag(options::OPT_integrated_as, options::OPT_no_integrated_as, + if (!Args.hasFlag(options::OPT_fintegrated_as, options::OPT_fno_integrated_as, IsIntegratedAssemblerDefault)) CmdArgs.push_back("-no-integrated-as"); @@ -4904,12 +4904,12 @@ void darwin::Assemble::ConstructJob(Compilation &C, const JobAction &JA, SourceAction = SourceAction->getInputs()[0]; } - // If -no_integrated_as is used add -Q to the darwin assember driver to make + // If -fno_integrated_as is used add -Q to the darwin assember driver to make // sure it runs its system assembler not clang's integrated assembler. // Applicable to darwin11+ and Xcode 4+. darwin<10 lacked integrated-as. // FIXME: at run-time detect assembler capabilities or rely on version // information forwarded by -target-assembler-version (future) - if (Args.hasArg(options::OPT_no_integrated_as)) { + if (Args.hasArg(options::OPT_fno_integrated_as)) { const llvm::Triple &T(getToolChain().getTriple()); if (!(T.isMacOSX() && T.isMacOSXVersionLT(10, 7))) CmdArgs.push_back("-Q"); diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index 4184847ec5..256b0fb6c2 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -366,7 +366,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, (Opts.OptimizationLevel > 1 && !Opts.OptimizeSize)); Opts.RerollLoops = Args.hasArg(OPT_freroll_loops); - Opts.DisableIntegratedAS = Args.hasArg(OPT_no_integrated_as); + Opts.DisableIntegratedAS = Args.hasArg(OPT_fno_integrated_as); Opts.Autolink = !Args.hasArg(OPT_fno_autolink); Opts.SampleProfileFile = Args.getLastArgValue(OPT_fprofile_sample_use_EQ); Opts.ProfileInstrGenerate = Args.hasArg(OPT_fprofile_instr_generate); diff --git a/test/Driver/integrated-as.c b/test/Driver/integrated-as.c index 5bf1f847b4..06d5ace4a1 100644 --- a/test/Driver/integrated-as.c +++ b/test/Driver/integrated-as.c @@ -3,6 +3,17 @@ // CHECK: cc1as // CHECK: -mrelax-all +// RUN: %clang -### -fintegrated-as -c -save-temps %s 2>&1 | FileCheck %s -check-prefix FIAS + +// FIAS: cc1as + +// RUN: %clang -### -fno-integrated-as -S %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix NOFIAS + +// NOFIAS-NOT: cc1as +// NOFIAS: -cc1 +// NOFIAS: -no-integrated-as + // RUN: %clang -### -c -integrated-as -Wa,-compress-debug-sections -Wno-missing-debug-compression %s 2>&1 | FileCheck --check-prefix=COMPRESS_DEBUG_QUIET %s // COMPRESS_DEBUG_QUIET-NOT: warning: DWARF compression is not implemented // COMPRESS_DEBUG_QUIET-NOT: warning: argument unused during compilation -- 2.40.0