Skip to content

Commit 1107635

Browse files
committed
[Driver] Make supported Clang options visible to Classic Flang
Classic Flang accepts some Clang options that LLVM Flang (F18) does not. The Visibility of such options are modified to include "FlangOption".
1 parent dbef52e commit 1107635

File tree

1 file changed

+77
-22
lines changed

1 file changed

+77
-22
lines changed

clang/include/clang/Driver/Options.td

+77-22
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,11 @@ def ccc_gcc_name : Separate<["-"], "ccc-gcc-name">, InternalDriverOpt,
632632

633633
class InternalDebugOpt : Group<internal_debug_Group>,
634634
Flags<[NoXarchOption, HelpHidden]>,
635+
#ifdef ENABLE_CLASSIC_FLANG
636+
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>;
637+
#else
635638
Visibility<[ClangOption, CLOption, DXCOption]>;
639+
#endif
636640
def ccc_install_dir : Separate<["-"], "ccc-install-dir">, InternalDebugOpt,
637641
HelpText<"Simulate installation in the given directory">;
638642
def ccc_print_phases : Flag<["-"], "ccc-print-phases">,
@@ -765,6 +769,9 @@ def _DASH_DASH : Option<["--"], "", KIND_REMAINING_ARGS>,
765769
def A : JoinedOrSeparate<["-"], "A">, Flags<[RenderJoined]>,
766770
Group<gfortran_Group>;
767771
def B : JoinedOrSeparate<["-"], "B">, MetaVarName<"<prefix>">,
772+
#ifdef ENABLE_CLASSIC_FLANG
773+
Visibility<[ClangOption, FlangOption]>,
774+
#endif
768775
HelpText<"Search $prefix$file for executables, libraries, and data files. "
769776
"If $prefix is a directory, search $prefix/$file">;
770777
def gcc_install_dir_EQ : Joined<["--"], "gcc-install-dir=">,
@@ -1450,6 +1457,7 @@ def emit_ast : Flag<["-"], "emit-ast">,
14501457
HelpText<"Emit Clang AST files for source inputs">;
14511458
#ifdef ENABLE_CLASSIC_FLANG
14521459
def emit_flang_llvm : Flag<["-"], "emit-flang-llvm">,
1460+
Visibility<[FlangOption]>,
14531461
HelpText<"Emit Flang LLVM files for source inputs">;
14541462
#endif
14551463
def emit_llvm : Flag<["-"], "emit-llvm">,
@@ -3365,6 +3373,9 @@ def fopenmp : Flag<["-"], "fopenmp">, Group<f_Group>,
33653373
Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
33663374
HelpText<"Parse OpenMP pragmas and generate parallel code.">;
33673375
def fno_openmp : Flag<["-"], "fno-openmp">, Group<f_Group>,
3376+
#ifdef ENABLE_CLASSIC_FLANG
3377+
Visibility<[ClangOption, FlangOption]>,
3378+
#endif
33683379
Flags<[NoArgumentUnused]>;
33693380
def fopenmp_version_EQ : Joined<["-"], "fopenmp-version=">, Group<f_Group>,
33703381
Flags<[NoArgumentUnused]>,
@@ -3497,6 +3508,9 @@ defm openmp_optimistic_collapse : BoolFOption<"openmp-optimistic-collapse",
34973508
PosFlag<SetTrue, [], [ClangOption, CC1Option]>,
34983509
NegFlag<SetFalse>, BothFlags<[NoArgumentUnused, HelpHidden], []>>;
34993510
def static_openmp: Flag<["-"], "static-openmp">,
3511+
#ifdef ENABLE_CLASSIC_FLANG
3512+
Visibility<[ClangOption, FlangOption]>,
3513+
#endif
35003514
HelpText<"Use the static host OpenMP runtime while linking.">;
35013515
def fopenmp_new_driver : Flag<["-"], "fopenmp-new-driver">, Flags<[HelpHidden]>,
35023516
HelpText<"Use the new driver for OpenMP offloading.">;
@@ -4145,15 +4159,31 @@ def gdbx : Flag<["-"], "gdbx">, Group<gTune_Group>;
41454159
// Equivalent to our default dwarf version. Forces usual dwarf emission when
41464160
// CodeView is enabled.
41474161
def gdwarf : Flag<["-"], "gdwarf">, Group<g_Group>,
4162+
#ifdef ENABLE_CLASSIC_FLANG
4163+
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
4164+
#else
41484165
Visibility<[ClangOption, CLOption, DXCOption]>,
4166+
#endif
41494167
HelpText<"Generate source-level debug information with the default dwarf version">;
41504168
def gdwarf_2 : Flag<["-"], "gdwarf-2">, Group<g_Group>,
4169+
#ifdef ENABLE_CLASSIC_FLANG
4170+
Visibility<[ClangOption, FlangOption]>,
4171+
#endif
41514172
HelpText<"Generate source-level debug information with dwarf version 2">;
41524173
def gdwarf_3 : Flag<["-"], "gdwarf-3">, Group<g_Group>,
4174+
#ifdef ENABLE_CLASSIC_FLANG
4175+
Visibility<[ClangOption, FlangOption]>,
4176+
#endif
41534177
HelpText<"Generate source-level debug information with dwarf version 3">;
41544178
def gdwarf_4 : Flag<["-"], "gdwarf-4">, Group<g_Group>,
4179+
#ifdef ENABLE_CLASSIC_FLANG
4180+
Visibility<[ClangOption, FlangOption]>,
4181+
#endif
41554182
HelpText<"Generate source-level debug information with dwarf version 4">;
41564183
def gdwarf_5 : Flag<["-"], "gdwarf-5">, Group<g_Group>,
4184+
#ifdef ENABLE_CLASSIC_FLANG
4185+
Visibility<[ClangOption, FlangOption]>,
4186+
#endif
41574187
HelpText<"Generate source-level debug information with dwarf version 5">;
41584188
def gdwarf64 : Flag<["-"], "gdwarf64">, Group<g_Group>,
41594189
Visibility<[ClangOption, CC1Option, CC1AsOption]>,
@@ -4233,9 +4263,16 @@ def gno_simple_template_names : Flag<["-"], "gno-simple-template-names">,
42334263
def ggnu_pubnames : Flag<["-"], "ggnu-pubnames">, Group<g_flags_Group>,
42344264
Visibility<[ClangOption, CC1Option]>;
42354265
def gno_gnu_pubnames : Flag<["-"], "gno-gnu-pubnames">, Group<g_flags_Group>;
4266+
#ifdef ENABLE_CLASSIC_FLANG
4267+
def gpubnames : Flag<["-"], "gpubnames">, Group<g_flags_Group>,
4268+
Visibility<[ClangOption, CC1Option, FlangOption]>;
4269+
def gno_pubnames : Flag<["-"], "gno-pubnames">, Group<g_flags_Group>,
4270+
Visibility<[ClangOption, CC1Option, FlangOption]>;
4271+
#else
42364272
def gpubnames : Flag<["-"], "gpubnames">, Group<g_flags_Group>,
42374273
Visibility<[ClangOption, CC1Option]>;
42384274
def gno_pubnames : Flag<["-"], "gno-pubnames">, Group<g_flags_Group>;
4275+
#endif
42394276
def gdwarf_aranges : Flag<["-"], "gdwarf-aranges">, Group<g_flags_Group>;
42404277
def gmodules : Flag <["-"], "gmodules">, Group<gN_Group>,
42414278
HelpText<"Generate debug info with external references to clang modules"
@@ -5264,7 +5301,12 @@ def nostdincxx : Flag<["-"], "nostdinc++">, Visibility<[ClangOption, CC1Option]>
52645301
Group<IncludePath_Group>,
52655302
HelpText<"Disable standard #include directories for the C++ standard library">,
52665303
MarshallingInfoNegativeFlag<HeaderSearchOpts<"UseStandardCXXIncludes">>;
5304+
#ifdef ENABLE_CLASSIC_FLANG
5305+
def nostdlib : Flag<["-"], "nostdlib">, Group<Link_Group>,
5306+
Visibility<[ClangOption, FlangOption]>;
5307+
#else
52675308
def nostdlib : Flag<["-"], "nostdlib">, Group<Link_Group>;
5309+
#endif
52685310
def nostdlibxx : Flag<["-"], "nostdlib++">;
52695311
def object : Flag<["-"], "object">;
52705312
def o : JoinedOrSeparate<["-"], "o">,
@@ -5492,7 +5534,11 @@ def : Flag<["-"], "mtune=help">, Alias<print_supported_cpus>;
54925534
def time : Flag<["-"], "time">,
54935535
HelpText<"Time individual commands">;
54945536
def traditional_cpp : Flag<["-", "--"], "traditional-cpp">,
5537+
#ifdef ENABLE_CLASSIC_FLANG
5538+
Visibility<[ClangOption, CC1Option, FlangOption]>,
5539+
#else
54955540
Visibility<[ClangOption, CC1Option]>,
5541+
#endif
54965542
HelpText<"Enable some traditional CPP emulation">,
54975543
MarshallingInfoFlag<LangOpts<"TraditionalCPP">>;
54985544
def traditional : Flag<["-", "--"], "traditional">;
@@ -5569,7 +5615,12 @@ def fno_integrated_objemitter : Flag<["-"], "fno-integrated-objemitter">,
55695615
Group<f_Group>,
55705616
HelpText<"Use external machine object code emitter.">;
55715617

5618+
#ifdef ENABLE_CLASSIC_FLANG
5619+
def : Flag<["-"], "integrated-as">, Alias<fintegrated_as>,
5620+
Visibility<[ClangOption, CC1Option, FlangOption]>;
5621+
#else
55725622
def : Flag<["-"], "integrated-as">, Alias<fintegrated_as>;
5623+
#endif
55735624
def : Flag<["-"], "no-integrated-as">, Alias<fno_integrated_as>,
55745625
Visibility<[ClangOption, CC1Option, FlangOption]>;
55755626

@@ -6479,7 +6530,7 @@ defm loop_versioning : BoolOptionWithoutMarshalling<"f", "version-loops-for-stri
64796530

64806531
#ifdef ENABLE_CLASSIC_FLANG
64816532
def J : JoinedOrSeparate<["-"], "J">,
6482-
Flags<[RenderJoined]>,
6533+
Flags<[RenderJoined]>, Visibility<[FlangOption, FC1Option]>,
64836534
Group<gfortran_Group>;
64846535
#else
64856536
def J : JoinedOrSeparate<["-"], "J">,
@@ -8539,6 +8590,27 @@ def fcgl : DXCFlag<"fcgl">, Alias<emit_pristine_llvm>;
85398590
def enable_16bit_types : DXCFlag<"enable-16bit-types">, Alias<fnative_half_type>,
85408591
HelpText<"Enable 16-bit types and disable min precision types."
85418592
"Available in HLSL 2018 and shader model 6.2.">;
8593+
def hlsl_entrypoint : Option<["-"], "hlsl-entry", KIND_SEPARATE>,
8594+
Group<dxc_Group>,
8595+
Visibility<[ClangOption, CC1Option]>,
8596+
MarshallingInfoString<TargetOpts<"HLSLEntry">, "\"main\"">,
8597+
HelpText<"Entry point name for hlsl">;
8598+
def dxc_entrypoint : Option<["--", "/", "-"], "E", KIND_JOINED_OR_SEPARATE>,
8599+
Group<dxc_Group>,
8600+
Visibility<[DXCOption]>,
8601+
HelpText<"Entry point name">;
8602+
def dxc_validator_path_EQ : Joined<["--"], "dxv-path=">, Group<dxc_Group>,
8603+
HelpText<"DXIL validator installation path">;
8604+
def dxc_disable_validation : DXCFlag<"Vd">,
8605+
HelpText<"Disable validation">;
8606+
def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group<dxc_Group>,
8607+
Flags<[Ignored]>, Visibility<[DXCOption]>,
8608+
HelpText<"Embed PDB in shader container (ignored)">;
8609+
def spirv : DXCFlag<"spirv">,
8610+
HelpText<"Generate SPIR-V code">;
8611+
def fspv_target_env_EQ : Joined<["-"], "fspv-target-env=">, Group<dxc_Group>,
8612+
HelpText<"Specify the target environment">,
8613+
Values<"vulkan1.2, vulkan1.3">;
85428614

85438615
#ifdef ENABLE_CLASSIC_FLANG
85448616
// Classic Flang options that we recognize in the driver and pass along when
@@ -8558,6 +8630,8 @@ multiclass BooleanMFlag<string name> {
85588630
def _off : Flag<["-"], "Mno"#name>;
85598631
}
85608632

8633+
let Visibility = [FlangOption] in {
8634+
85618635
def Mfixed : Flag<["-"], "Mfixed">, Group<fortran_format_Group>,
85628636
HelpText<"Force fixed-form format Fortran">,
85638637
Flags<[HelpHidden]>;
@@ -8677,25 +8751,6 @@ def Hq_EQ : Joined<["-"], "Hq,">, Group<pgi_fortran_Group>;
86778751
def Mqq_EQ : Joined<["-"], "Mqq,">, Group<pgi_fortran_Group>;
86788752
def Hqq_EQ : Joined<["-"], "Hqq,">, Group<pgi_fortran_Group>;
86798753
def Wh_EQ : Joined<["-"], "Wh,">, Group<pgi_fortran_Group>;
8754+
8755+
} // let Visibility = [FlangOption]
86808756
#endif
8681-
def hlsl_entrypoint : Option<["-"], "hlsl-entry", KIND_SEPARATE>,
8682-
Group<dxc_Group>,
8683-
Visibility<[ClangOption, CC1Option]>,
8684-
MarshallingInfoString<TargetOpts<"HLSLEntry">, "\"main\"">,
8685-
HelpText<"Entry point name for hlsl">;
8686-
def dxc_entrypoint : Option<["--", "/", "-"], "E", KIND_JOINED_OR_SEPARATE>,
8687-
Group<dxc_Group>,
8688-
Visibility<[DXCOption]>,
8689-
HelpText<"Entry point name">;
8690-
def dxc_validator_path_EQ : Joined<["--"], "dxv-path=">, Group<dxc_Group>,
8691-
HelpText<"DXIL validator installation path">;
8692-
def dxc_disable_validation : DXCFlag<"Vd">,
8693-
HelpText<"Disable validation">;
8694-
def : Option<["/", "-"], "Qembed_debug", KIND_FLAG>, Group<dxc_Group>,
8695-
Flags<[Ignored]>, Visibility<[DXCOption]>,
8696-
HelpText<"Embed PDB in shader container (ignored)">;
8697-
def spirv : DXCFlag<"spirv">,
8698-
HelpText<"Generate SPIR-V code">;
8699-
def fspv_target_env_EQ : Joined<["-"], "fspv-target-env=">, Group<dxc_Group>,
8700-
HelpText<"Specify the target environment">,
8701-
Values<"vulkan1.2, vulkan1.3">;

0 commit comments

Comments
 (0)