@@ -615,8 +615,8 @@ class InternalDriverOpt : Group<internal_driver_Group>,
615
615
Flags<[NoXarchOption, HelpHidden]>;
616
616
def driver_mode : Joined<["--"], "driver-mode=">, Group<internal_driver_Group>,
617
617
Flags<[NoXarchOption, HelpHidden]>,
618
- Visibility<[ClangOption, CLOption, DXCOption]>,
619
- HelpText<"Set the driver mode to either 'gcc', 'g++', 'cpp', or 'cl '">;
618
+ Visibility<[ClangOption, FlangOption, CLOption, DXCOption]>,
619
+ HelpText<"Set the driver mode to either 'gcc', 'g++', 'cpp', 'cl' or 'flang '">;
620
620
def rsp_quoting : Joined<["--"], "rsp-quoting=">, Group<internal_driver_Group>,
621
621
Flags<[NoXarchOption, HelpHidden]>,
622
622
Visibility<[ClangOption, CLOption, DXCOption]>,
@@ -630,7 +630,9 @@ class InternalDebugOpt : Group<internal_debug_Group>,
630
630
Visibility<[ClangOption, CLOption, DXCOption]>;
631
631
def ccc_install_dir : Separate<["-"], "ccc-install-dir">, InternalDebugOpt,
632
632
HelpText<"Simulate installation in the given directory">;
633
- def ccc_print_phases : Flag<["-"], "ccc-print-phases">, InternalDebugOpt,
633
+ def ccc_print_phases : Flag<["-"], "ccc-print-phases">,
634
+ Flags<[NoXarchOption, HelpHidden]>, Visibility<[ClangOption, CLOption, DXCOption,
635
+ FlangOption]>,
634
636
HelpText<"Dump list of actions to perform">;
635
637
def ccc_print_bindings : Flag<["-"], "ccc-print-bindings">, InternalDebugOpt,
636
638
HelpText<"Show bindings of tools to actions">;
@@ -849,15 +851,15 @@ def MV : Flag<["-"], "MV">, Group<M_Group>, Visibility<[ClangOption, CC1Option]>
849
851
Normalizer<"makeFlagToValueNormalizer(DependencyOutputFormat::NMake)">;
850
852
def Mach : Flag<["-"], "Mach">, Group<Link_Group>;
851
853
def O0 : Flag<["-"], "O0">, Group<O_Group>, Flags<[HelpHidden]>,
852
- Visibility<[ClangOption, CC1Option, FC1Option]>;
854
+ Visibility<[ClangOption, CC1Option, FC1Option, FlangOption ]>;
853
855
def O4 : Flag<["-"], "O4">, Group<O_Group>, Flags<[HelpHidden]>,
854
- Visibility<[ClangOption, CC1Option, FC1Option]>;
856
+ Visibility<[ClangOption, CC1Option, FC1Option, FlangOption ]>;
855
857
def ObjCXX : Flag<["-"], "ObjC++">, Flags<[NoXarchOption]>,
856
858
HelpText<"Treat source input files as Objective-C++ inputs">;
857
859
def ObjC : Flag<["-"], "ObjC">, Flags<[NoXarchOption]>,
858
860
HelpText<"Treat source input files as Objective-C inputs">;
859
861
def O : Joined<["-"], "O">, Group<O_Group>,
860
- Visibility<[ClangOption, CC1Option, FC1Option]>;
862
+ Visibility<[ClangOption, CC1Option, FC1Option, FlangOption ]>;
861
863
def O_flag : Flag<["-"], "O">, Visibility<[ClangOption, CC1Option, FC1Option]>,
862
864
Alias<O>, AliasArgs<["1"]>;
863
865
def Ofast : Joined<["-"], "Ofast">, Group<O_Group>,
@@ -893,7 +895,7 @@ def Wa_COMMA : CommaJoined<["-"], "Wa,">,
893
895
HelpText<"Pass the comma separated arguments in <arg> to the assembler">,
894
896
MetaVarName<"<arg>">;
895
897
def Wall : Flag<["-"], "Wall">, Group<W_Group>, Flags<[HelpHidden]>,
896
- Visibility<[ClangOption, CC1Option]>;
898
+ Visibility<[ClangOption, CC1Option, FlangOption ]>;
897
899
def WCL4 : Flag<["-"], "WCL4">, Group<W_Group>, Flags<[HelpHidden]>,
898
900
Visibility<[ClangOption, CC1Option]>;
899
901
def Wsystem_headers : Flag<["-"], "Wsystem-headers">, Group<W_Group>,
@@ -1095,12 +1097,14 @@ defm convergent_functions : BoolFOption<"convergent-functions",
1095
1097
// Common offloading options
1096
1098
let Group = offload_Group in {
1097
1099
def offload_arch_EQ : Joined<["--"], "offload-arch=">, Flags<[NoXarchOption]>,
1100
+ Visibility<[ClangOption, FlangOption]>,
1098
1101
HelpText<"Specify an offloading device architecture for CUDA, HIP, or OpenMP. (e.g. sm_35). "
1099
1102
"If 'native' is used the compiler will detect locally installed architectures. "
1100
1103
"For HIP offloading, the device architecture can be followed by target ID features "
1101
1104
"delimited by a colon (e.g. gfx908:xnack+:sramecc-). May be specified more than once.">;
1102
1105
def no_offload_arch_EQ : Joined<["--"], "no-offload-arch=">,
1103
1106
Flags<[NoXarchOption]>,
1107
+ Visibility<[ClangOption, FlangOption]>,
1104
1108
HelpText<"Remove CUDA/HIP offloading device architecture (e.g. sm_35, gfx906) from the list of devices to compile for. "
1105
1109
"'all' resets the list to its default value.">;
1106
1110
@@ -1999,7 +2003,7 @@ defm fast_math : BoolFOption<"fast-math",
1999
2003
PosFlag<SetTrue, [], [ClangOption, CC1Option, FC1Option, FlangOption],
2000
2004
"Allow aggressive, lossy floating-point optimizations",
2001
2005
[cl_fast_relaxed_math.KeyPath]>,
2002
- NegFlag<SetFalse>>;
2006
+ NegFlag<SetFalse, [], [ClangOption, CC1Option, FC1Option, FlangOption] >>;
2003
2007
defm math_errno : BoolFOption<"math-errno",
2004
2008
LangOpts<"MathErrno">, DefaultFalse,
2005
2009
PosFlag<SetTrue, [], [ClangOption, CC1Option],
@@ -2356,8 +2360,8 @@ def funsafe_math_optimizations : Flag<["-"], "funsafe-math-optimizations">,
2356
2360
ImpliedByAnyOf<[cl_unsafe_math_optimizations.KeyPath, ffast_math.KeyPath]>;
2357
2361
def fno_unsafe_math_optimizations : Flag<["-"], "fno-unsafe-math-optimizations">,
2358
2362
Group<f_Group>;
2359
- def fassociative_math : Flag<["-"], "fassociative-math">, Group<f_Group>;
2360
- def fno_associative_math : Flag<["-"], "fno-associative-math">, Group<f_Group>;
2363
+ def fassociative_math : Flag<["-"], "fassociative-math">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
2364
+ def fno_associative_math : Flag<["-"], "fno-associative-math">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
2361
2365
defm reciprocal_math : BoolFOption<"reciprocal-math",
2362
2366
LangOpts<"AllowRecip">, DefaultFalse,
2363
2367
PosFlag<SetTrue, [], [ClangOption, CC1Option, FC1Option, FlangOption],
@@ -2385,14 +2389,16 @@ defm signed_zeros : BoolFOption<"signed-zeros",
2385
2389
[cl_no_signed_zeros.KeyPath, funsafe_math_optimizations.KeyPath]>,
2386
2390
PosFlag<SetFalse>>;
2387
2391
def fhonor_nans : Flag<["-"], "fhonor-nans">, Group<f_Group>,
2392
+ Visibility<[ClangOption, FlangOption]>,
2388
2393
HelpText<"Specify that floating-point optimizations are not allowed that "
2389
2394
"assume arguments and results are not NANs.">;
2390
- def fno_honor_nans : Flag<["-"], "fno-honor-nans">, Group<f_Group>;
2395
+ def fno_honor_nans : Flag<["-"], "fno-honor-nans">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
2391
2396
def fhonor_infinities : Flag<["-"], "fhonor-infinities">,
2392
- Group<f_Group>,
2397
+ Group<f_Group>, Visibility<[ClangOption, FlangOption]>,
2393
2398
HelpText<"Specify that floating-point optimizations are not allowed that "
2394
2399
"assume arguments and results are not +-inf.">;
2395
- def fno_honor_infinities : Flag<["-"], "fno-honor-infinities">, Group<f_Group>;
2400
+ def fno_honor_infinities : Flag<["-"], "fno-honor-infinities">,
2401
+ Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
2396
2402
// This option was originally misspelt "infinites" [sic].
2397
2403
def : Flag<["-"], "fhonor-infinites">, Alias<fhonor_infinities>;
2398
2404
def : Flag<["-"], "fno-honor-infinites">, Alias<fno_honor_infinities>;
@@ -2682,9 +2688,9 @@ def flto_EQ : Joined<["-"], "flto=">,
2682
2688
Visibility<[ClangOption, CLOption, CC1Option, FC1Option, FlangOption]>,
2683
2689
Group<f_Group>,
2684
2690
HelpText<"Set LTO mode">, Values<"thin,full">;
2685
- def flto_EQ_jobserver : Flag<["-"], "flto=jobserver">, Group<f_Group>,
2691
+ def flto_EQ_jobserver : Flag<["-"], "flto=jobserver">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>,
2686
2692
Alias<flto_EQ>, AliasArgs<["full"]>, HelpText<"Enable LTO in 'full' mode">;
2687
- def flto_EQ_auto : Flag<["-"], "flto=auto">, Group<f_Group>,
2693
+ def flto_EQ_auto : Flag<["-"], "flto=auto">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>,
2688
2694
Alias<flto_EQ>, AliasArgs<["full"]>, HelpText<"Enable LTO in 'full' mode">;
2689
2695
def flto : Flag<["-"], "flto">,
2690
2696
Visibility<[ClangOption, CLOption, CC1Option, FC1Option, FlangOption]>,
@@ -2696,7 +2702,7 @@ defm unified_lto : BoolFOption<"unified-lto",
2696
2702
NegFlag<SetFalse, [], [ClangOption], "Use distinct LTO pipelines">,
2697
2703
BothFlags<[], [ClangOption, CC1Option], "">>;
2698
2704
def fno_lto : Flag<["-"], "fno-lto">,
2699
- Visibility<[ClangOption, CLOption, CC1Option]>, Group<f_Group>,
2705
+ Visibility<[ClangOption, CLOption, DXCOption, CC1Option, FlangOption ]>, Group<f_Group>,
2700
2706
HelpText<"Disable LTO mode (default)">;
2701
2707
def foffload_lto_EQ : Joined<["-"], "foffload-lto=">,
2702
2708
Visibility<[ClangOption, CLOption]>, Group<f_Group>,
@@ -3207,7 +3213,7 @@ def fopenmp_use_tls : Flag<["-"], "fopenmp-use-tls">, Group<f_Group>,
3207
3213
def fnoopenmp_use_tls : Flag<["-"], "fnoopenmp-use-tls">, Group<f_Group>,
3208
3214
Flags<[NoArgumentUnused, HelpHidden]>, Visibility<[ClangOption, CC1Option]>;
3209
3215
def fopenmp_targets_EQ : CommaJoined<["-"], "fopenmp-targets=">,
3210
- Flags<[NoXarchOption]>, Visibility<[ClangOption, CC1Option]>,
3216
+ Flags<[NoXarchOption]>, Visibility<[ClangOption, CC1Option, FlangOption ]>,
3211
3217
HelpText<"Specify comma-separated list of triples OpenMP offloading targets to be supported">;
3212
3218
def fopenmp_relocatable_target : Flag<["-"], "fopenmp-relocatable-target">,
3213
3219
Group<f_Group>, Flags<[NoArgumentUnused, HelpHidden]>,
@@ -3239,7 +3245,7 @@ def fopenmp_cuda_teams_reduction_recs_num_EQ : Joined<["-"], "fopenmp-cuda-teams
3239
3245
//===----------------------------------------------------------------------===//
3240
3246
3241
3247
let Flags = [NoArgumentUnused] in {
3242
- let Visibility = [ClangOption, CC1Option, FC1Option] in {
3248
+ let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption ] in {
3243
3249
let Group = f_Group in {
3244
3250
3245
3251
def fopenmp_target_debug : Flag<["-"], "fopenmp-target-debug">,
@@ -3272,7 +3278,7 @@ def R_Joined : Joined<["-"], "R">, Group<R_Group>,
3272
3278
} // let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption]
3273
3279
3274
3280
let Flags = [NoArgumentUnused, HelpHidden] in {
3275
- let Visibility = [ClangOption, CC1Option, FC1Option] in {
3281
+ let Visibility = [ClangOption, CC1Option, FC1Option, FlangOption ] in {
3276
3282
let Group = f_Group in {
3277
3283
3278
3284
def fopenmp_target_debug_EQ : Joined<["-"], "fopenmp-target-debug=">;
@@ -3363,8 +3369,8 @@ def fpcc_struct_return : Flag<["-"], "fpcc-struct-return">, Group<f_Group>,
3363
3369
def fpch_preprocess : Flag<["-"], "fpch-preprocess">, Group<f_Group>;
3364
3370
def fpic : Flag<["-"], "fpic">, Group<f_Group>;
3365
3371
def fno_pic : Flag<["-"], "fno-pic">, Group<f_Group>;
3366
- def fpie : Flag<["-"], "fpie">, Group<f_Group>;
3367
- def fno_pie : Flag<["-"], "fno-pie">, Group<f_Group>;
3372
+ def fpie : Flag<["-"], "fpie">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
3373
+ def fno_pie : Flag<["-"], "fno-pie">, Visibility<[ClangOption, FlangOption]>, Group<f_Group>;
3368
3374
defm pic_data_is_text_relative : SimpleMFlag<"pic-data-is-text-relative",
3369
3375
"Assume", "Don't assume", " data segments are relative to text segment">;
3370
3376
def fdirect_access_external_data : Flag<["-"], "fdirect-access-external-data">, Group<f_Group>,
@@ -3928,13 +3934,13 @@ def gline_tables_only : Flag<["-"], "gline-tables-only">, Group<gN_Group>,
3928
3934
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
3929
3935
HelpText<"Emit debug line number tables only">;
3930
3936
def gline_directives_only : Flag<["-"], "gline-directives-only">, Group<gN_Group>,
3931
- Visibility<[ClangOption, CLOption, DXCOption]>,
3937
+ Visibility<[ClangOption, CLOption, DXCOption, FlangOption ]>,
3932
3938
HelpText<"Emit debug line info directives only">;
3933
3939
def gmlt : Flag<["-"], "gmlt">, Alias<gline_tables_only>;
3934
- def g0 : Flag<["-"], "g0">, Group<gN_Group>;
3935
- def g1 : Flag<["-"], "g1">, Group<gN_Group>, Alias<gline_tables_only>;
3936
- def g2 : Flag<["-"], "g2">, Group<gN_Group>;
3937
- def g3 : Flag<["-"], "g3">, Group<gN_Group>;
3940
+ def g0 : Flag<["-"], "g0">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]> ;
3941
+ def g1 : Flag<["-"], "g1">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]>, Alias<gline_tables_only>;
3942
+ def g2 : Flag<["-"], "g2">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]> ;
3943
+ def g3 : Flag<["-"], "g3">, Group<gN_Group>, Visibility<[ClangOption, FlangOption]> ;
3938
3944
def ggdb : Flag<["-"], "ggdb">, Group<gTune_Group>;
3939
3945
def ggdb0 : Flag<["-"], "ggdb0">, Group<ggdbN_Group>;
3940
3946
def ggdb1 : Flag<["-"], "ggdb1">, Group<ggdbN_Group>;
@@ -4217,7 +4223,7 @@ def mwatchos_simulator_version_min_EQ : Joined<["-"], "mwatchos-simulator-versio
4217
4223
def mwatchsimulator_version_min_EQ : Joined<["-"], "mwatchsimulator-version-min=">, Alias<mwatchos_simulator_version_min_EQ>;
4218
4224
} // let Flags = [TargetSpecific]
4219
4225
def march_EQ : Joined<["-"], "march=">, Group<m_Group>,
4220
- Flags<[TargetSpecific]>, Visibility<[ClangOption, CLOption]>,
4226
+ Flags<[TargetSpecific]>, Visibility<[ClangOption, CLOption, DXCOption, FlangOption ]>,
4221
4227
HelpText<"For a list of available architectures for the target use '-mcpu=help'">;
4222
4228
def masm_EQ : Joined<["-"], "masm=">, Group<m_Group>, Flags<[NoXarchOption]>;
4223
4229
def inline_asm_EQ : Joined<["-"], "inline-asm=">, Group<m_Group>,
@@ -4246,8 +4252,6 @@ def mthreads : Joined<["-"], "mthreads">, Group<m_Group>;
4246
4252
def mguard_EQ : Joined<["-"], "mguard=">, Group<m_Group>,
4247
4253
HelpText<"Enable or disable Control Flow Guard checks and guard tables emission">,
4248
4254
Values<"none,cf,cf-nochecks">;
4249
- def mcpu_EQ : Joined<["-"], "mcpu=">, Group<m_Group>,
4250
- HelpText<"For a list of available CPUs for the target use '-mcpu=help'">;
4251
4255
def mmcu_EQ : Joined<["-"], "mmcu=">, Group<m_Group>;
4252
4256
def msim : Flag<["-"], "msim">, Group<m_Group>;
4253
4257
def mdynamic_no_pic : Joined<["-"], "mdynamic-no-pic">, Group<m_Group>;
@@ -5032,8 +5036,8 @@ def nodriverkitlib : Flag<["-"], "nodriverkitlib">;
5032
5036
def nofixprebinding : Flag<["-"], "nofixprebinding">;
5033
5037
def nolibc : Flag<["-"], "nolibc">;
5034
5038
def nomultidefs : Flag<["-"], "nomultidefs">;
5035
- def nopie : Flag<["-"], "nopie">;
5036
- def no_pie : Flag<["-"], "no-pie">, Alias<nopie>;
5039
+ def nopie : Flag<["-"], "nopie">, Visibility<[ClangOption, FlangOption]> ;
5040
+ def no_pie : Flag<["-"], "no-pie">, Visibility<[ClangOption, FlangOption]>, Alias<nopie>;
5037
5041
def noprebind : Flag<["-"], "noprebind">;
5038
5042
def noprofilelib : Flag<["-"], "noprofilelib">;
5039
5043
def noseglinkedit : Flag<["-"], "noseglinkedit">;
@@ -5392,8 +5396,6 @@ def _for_linker_EQ : Joined<["--"], "for-linker=">, Alias<Xlinker>;
5392
5396
def _for_linker : Separate<["--"], "for-linker">, Alias<Xlinker>;
5393
5397
def _force_link_EQ : Joined<["--"], "force-link=">, Alias<u>;
5394
5398
def _force_link : Separate<["--"], "force-link">, Alias<u>;
5395
- def _help_hidden : Flag<["--"], "help-hidden">,
5396
- HelpText<"Display help for hidden options">;
5397
5399
def _imacros_EQ : Joined<["--"], "imacros=">, Alias<imacros>;
5398
5400
def _include_barrier : Flag<["--"], "include-barrier">, Alias<I_>;
5399
5401
def _include_directory_after_EQ : Joined<["--"], "include-directory-after=">, Alias<idirafter>;
@@ -5449,8 +5451,6 @@ def _version : Flag<["--"], "version">,
5449
5451
def _signed_char : Flag<["--"], "signed-char">, Alias<fsigned_char>;
5450
5452
def _std : Separate<["--"], "std">, Alias<std_EQ>;
5451
5453
def _stdlib : Separate<["--"], "stdlib">, Alias<stdlib_EQ>;
5452
- def _sysroot_EQ : Joined<["--"], "sysroot=">;
5453
- def _sysroot : Separate<["--"], "sysroot">, Alias<_sysroot_EQ>;
5454
5454
def _target_help : Flag<["--"], "target-help">;
5455
5455
def _trace_includes : Flag<["--"], "trace-includes">, Alias<H>;
5456
5456
def _undefine_macro_EQ : Joined<["--"], "undefine-macro=">, Alias<U>;
@@ -5463,6 +5463,24 @@ def _warn_ : Joined<["--"], "warn-">, Alias<W_Joined>;
5463
5463
def _write_dependencies : Flag<["--"], "write-dependencies">, Alias<MD>;
5464
5464
def _write_user_dependencies : Flag<["--"], "write-user-dependencies">, Alias<MMD>;
5465
5465
5466
+ def _help_hidden : Flag<["--"], "help-hidden">,
5467
+ Visibility<[ClangOption, FlangOption]>,
5468
+ HelpText<"Display help for hidden options">;
5469
+ def _sysroot_EQ : Joined<["--"], "sysroot=">, Visibility<[ClangOption, FlangOption]>;
5470
+ def _sysroot : Separate<["--"], "sysroot">, Alias<_sysroot_EQ>;
5471
+
5472
+ //===----------------------------------------------------------------------===//
5473
+ // Target Options (clang + flang-new)
5474
+ //===----------------------------------------------------------------------===//
5475
+ let Flags = [TargetSpecific] in {
5476
+ let Visibility = [ClangOption, FlangOption] in {
5477
+
5478
+ def mcpu_EQ : Joined<["-"], "mcpu=">, Group<m_Group>,
5479
+ HelpText<"For a list of available CPUs for the target use '-mcpu=help'">;
5480
+
5481
+ } // let Vis = [Default, FlangOption]
5482
+ } // let Flags = [TargetSpecific]
5483
+
5466
5484
// Hexagon feature flags.
5467
5485
let Flags = [TargetSpecific] in {
5468
5486
def mieee_rnd_near : Flag<["-"], "mieee-rnd-near">,
@@ -5810,7 +5828,7 @@ def mno_vzeroupper : Flag<["-"], "mno-vzeroupper">, Group<m_x86_Features_Group>;
5810
5828
// style of double-dash and equals-joined flags.
5811
5829
def target_legacy_spelling : Separate<["-"], "target">,
5812
5830
Alias<target>,
5813
- Visibility<[ClangOption, CLOption, DXCOption]>;
5831
+ Visibility<[ClangOption, CLOption, DXCOption, FlangOption ]>;
5814
5832
5815
5833
// Special internal option to handle -Xlinker --no-demangle.
5816
5834
def Z_Xlinker__no_demangle : Flag<["-"], "Z-Xlinker-no-demangle">,
@@ -5835,7 +5853,8 @@ multiclass BooleanFFlag<string name> {
5835
5853
}
5836
5854
5837
5855
multiclass FlangIgnoredDiagOpt<string name> {
5838
- def unsupported_warning_w#NAME : Flag<["-", "--"], "W"#name>, Group<flang_ignored_w_Group>;
5856
+ def unsupported_warning_w#NAME : Flag<["-", "--"], "W"#name>,
5857
+ Visibility<[FlangOption]>, Group<flang_ignored_w_Group>;
5839
5858
}
5840
5859
5841
5860
defm : BooleanFFlag<"keep-inline-functions">, Group<clang_ignored_gcc_optimization_f_Group>;
0 commit comments