r191429 - Ignore some -f options that are supported by gcc.

Reid Kleckner rnk at google.com
Thu Sep 26 08:47:37 PDT 2013


On Thu, Sep 26, 2013 at 6:10 AM, Rafael Espindola <
rafael.espindola at gmail.com> wrote:

> Author: rafael
> Date: Thu Sep 26 08:10:14 2013
> New Revision: 191429
>
> URL: http://llvm.org/viewvc/llvm-project?rev=191429&view=rev
> Log:
> Ignore some -f options that are supported by gcc.
>
> It is possible that we should say some of these are unsupported, but this
> is
> not any worse than the old behavior of ignoring all unknown -f options.
>
> Modified:
>     cfe/trunk/include/clang/Driver/Options.td
>     cfe/trunk/test/Driver/clang_f_opts.c
>
> Modified: cfe/trunk/include/clang/Driver/Options.td
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=191429&r1=191428&r2=191429&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/Options.td (original)
> +++ cfe/trunk/include/clang/Driver/Options.td Thu Sep 26 08:10:14 2013
> @@ -1364,6 +1364,37 @@ def Z_reserved_lib_stdcxx : Flag<["-"],
>  def Z_reserved_lib_cckext : Flag<["-"], "Z-reserved-lib-cckext">,
>      Flags<[LinkerInput, NoArgumentUnused, Unsupported]>,
> Group<reserved_lib_Group>;
>
> +// Ignored options
> +// FIXME: multiclasess produce suffixes, not prefixes. This is fine for
> now
> +// since it is only used in ignored options.
> +multiclass BooleanFFlag<list<string> prefixes, string name> {
> +  def _f : Flag<["-"], "f"#name>;
> +  def _fno : Flag<["-"], "fno-"#name>;
> +}
>

This doesn't actually use prefixes.  Since all -f flags only use a dash
prefix, can you nuke prefixes here?


> +
> +def fprofile_dir : Joined<["-"], "fprofile-dir=">,
> Group<clang_ignored_f_Group>;
> +
> +defm profile_use : BooleanFFlag<["-"], "profile-use">,
> Group<clang_ignored_f_Group>;
> +def fprofile_use_eq : Joined<["-"], "fprofile-use=">,
> Group<clang_ignored_f_Group>;
> +
> +defm falign_functions : BooleanFFlag<["-"], "align-functions">,
> Group<clang_ignored_f_Group>;
> +def falign_functions_eq : Joined<["-"], "falign-functions=">,
> Group<clang_ignored_f_Group>;
> +
> +defm tracer : BooleanFFlag<["-"], "tracer">, Group<clang_ignored_f_Group>;
> +defm unroll_all_loops : BooleanFFlag<["-"], "unroll-all-loops">,
> Group<clang_ignored_f_Group>;
> +defm sse : BooleanFFlag<["-"], "see">, Group<clang_ignored_f_Group>;
> +defm rounding_math : BooleanFFlag<["-"], "rounding-math">,
> Group<clang_ignored_f_Group>;
> +defm profile_values : BooleanFFlag<["-"], "profile-values">,
> Group<clang_ignored_f_Group>;
> +defm profile_correction : BooleanFFlag<["-"], "profile-correction">,
> Group<clang_ignored_f_Group>;
> +defm prefetch_loop_arrays : BooleanFFlag<["-"], "prefetch-loop-arrays">,
> Group<clang_ignored_f_Group>;
> +defm permissive : BooleanFFlag<["-"], "permissive">,
> Group<clang_ignored_f_Group>;
> +defm non_call_exceptions : BooleanFFlag<["-"], "non-call-exceptions">,
> Group<clang_ignored_f_Group>;
> +defm ivopts : BooleanFFlag<["-"], "ivopts">, Group<clang_ignored_f_Group>;
> +defm ident : BooleanFFlag<["-"], "ident">, Group<clang_ignored_f_Group>;
> +defm gcse : BooleanFFlag<["-"], "gcse">, Group<clang_ignored_f_Group>;
> +defm eliminate_unused_debug_types : BooleanFFlag<["-"],
> "eliminate-unused-debug-types">, Group<clang_ignored_f_Group>;
> +defm float_store : BooleanFFlag<["-"], "float-store">,
> Group<clang_ignored_f_Group>;
> +
>  include "CC1Options.td"
>
>  include "CLCompatOptions.td"
>
> Modified: cfe/trunk/test/Driver/clang_f_opts.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang_f_opts.c?rev=191429&r1=191428&r2=191429&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/Driver/clang_f_opts.c (original)
> +++ cfe/trunk/test/Driver/clang_f_opts.c Thu Sep 26 08:10:14 2013
> @@ -99,3 +99,26 @@
>  // RUN: %clang -### -S -O4 %s 2>&1 | FileCheck -check-prefix=CHECK-MAX-O
> %s
>  // CHECK-MAX-O: warning: -O4 is equivalent to -O3
>  // CHECK-MAX-O: -O3
> +
> +// Test that we don't error on these.
> +// RUN: %clang -### -S
>      \
> +// RUN:     -falign-functions -falign-functions=2 -fno-align-functions
>      \
> +// RUN:     -fasynchronous-unwind-tables -fno-asynchronous-unwind-tables
>      \
> +// RUN:     -fbuiltin -fno-builtin
>      \
> +// RUN:     -ffloat-store -fno-float-store
>      \
> +// RUN:     -feliminate-unused-debug-types
> -fno-eliminate-unused-debug-types  \
> +// RUN:     -fgcse -fno-gcse
>      \
> +// RUN:     -fident -fno-ident
>      \
> +// RUN:     -fivopts -fno-ivopts
>      \
> +// RUN:     -fnon-call-exceptions -fno-non-call-exceptions
>      \
> +// RUN:     -fpermissive -fno-permissive
>      \
> +// RUN:     -fprefetch-loop-arrays -fno-prefetch-loop-arrays
>      \
> +// RUN:     -fprofile-correction -fno-profile-correction
>      \
> +// RUN:     -fprofile-dir=bar
>     \
> +// RUN:     -fprofile-use -fprofile-use=zed -fno-profile-use
>      \
> +// RUN:     -fprofile-values -fno-profile-values
>      \
> +// RUN:     -frounding-math -fno-rounding-math
>      \
> +// RUN:     -fsee -fno-see
>      \
> +// RUN:     -ftracer -fno-tracer
>      \
> +// RUN:     -funroll-all-loops -fno-unroll-all-loops
>      \
> +// RUN:     %s
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130926/bb0611c7/attachment.html>


More information about the cfe-commits mailing list