r353402 - [clang-cl] support /Oy- on aarch64

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 12 03:12:01 PST 2019


Merged to 8.0 in r353829.

On Thu, Feb 7, 2019 at 1:46 PM Martin Storsjo via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
>
> Author: mstorsjo
> Date: Thu Feb  7 04:46:49 2019
> New Revision: 353402
>
> URL: http://llvm.org/viewvc/llvm-project?rev=353402&view=rev
> Log:
> [clang-cl] support /Oy- on aarch64
>
> MSVC supports /Oy- on aarch64, so clang-cl should too.
>
> Patch by Nathan Froyd!
>
> Differential Revision: https://reviews.llvm.org/D57838
>
> Modified:
>     cfe/trunk/lib/Driver/ToolChains/MSVC.cpp
>     cfe/trunk/test/Driver/cl-options.c
>
> Modified: cfe/trunk/lib/Driver/ToolChains/MSVC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/MSVC.cpp?rev=353402&r1=353401&r2=353402&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/ToolChains/MSVC.cpp (original)
> +++ cfe/trunk/lib/Driver/ToolChains/MSVC.cpp Thu Feb  7 04:46:49 2019
> @@ -1407,10 +1407,10 @@ static void TranslateOptArg(Arg *A, llvm
>            DAL.AddFlagArg(
>                A, Opts.getOption(options::OPT_fno_omit_frame_pointer));
>        } else {
> -        // Don't warn about /Oy- in 64-bit builds (where
> +        // Don't warn about /Oy- in x86-64 builds (where
>          // SupportsForcingFramePointer is false).  The flag having no effect
>          // there is a compiler-internal optimization, and people shouldn't have
> -        // to special-case their build files for 64-bit clang-cl.
> +        // to special-case their build files for x86-64 clang-cl.
>          A->claim();
>        }
>        break;
> @@ -1441,8 +1441,8 @@ MSVCToolChain::TranslateArgs(const llvm:
>    DerivedArgList *DAL = new DerivedArgList(Args.getBaseArgs());
>    const OptTable &Opts = getDriver().getOpts();
>
> -  // /Oy and /Oy- only has an effect under X86-32.
> -  bool SupportsForcingFramePointer = getArch() == llvm::Triple::x86;
> +  // /Oy and /Oy- don't have an effect on X86-64
> +  bool SupportsForcingFramePointer = getArch() != llvm::Triple::x86_64;
>
>    // The -O[12xd] flag actually expands to several flags.  We must desugar the
>    // flags so that options embedded can be negated.  For example, the '-O2' flag
>
> Modified: cfe/trunk/test/Driver/cl-options.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-options.c?rev=353402&r1=353401&r2=353402&view=diff
> ==============================================================================
> --- cfe/trunk/test/Driver/cl-options.c (original)
> +++ cfe/trunk/test/Driver/cl-options.c Thu Feb  7 04:46:49 2019
> @@ -178,6 +178,10 @@
>  // Oy_2: -momit-leaf-frame-pointer
>  // Oy_2: -O2
>
> +// RUN: %clang_cl --target=aarch64-pc-windows-msvc -Werror /Oy- /O2 -### -- %s 2>&1 | FileCheck -check-prefix=Oy_aarch64 %s
> +// Oy_aarch64: -mdisable-fp-elim
> +// Oy_aarch64: -O2
> +
>  // RUN: %clang_cl --target=i686-pc-win32 -Werror /O2 /O2 -### -- %s 2>&1 | FileCheck -check-prefix=O2O2 %s
>  // O2O2: "-O2"
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list