diff options
Diffstat (limited to 'clang/include/clang/Driver/Options.td')
-rw-r--r-- | clang/include/clang/Driver/Options.td | 138 |
1 files changed, 115 insertions, 23 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 3c04aeb..49e917a 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1422,6 +1422,21 @@ def fno_hip_emit_relocatable : Flag<["-"], "fno-hip-emit-relocatable">, HelpText<"Do not override toolchain to compile HIP source to relocatable">; } +// Clang specific/exclusive options for OpenACC. +def openacc_macro_override + : Separate<["-"], "fexperimental-openacc-macro-override">, + Visibility<[ClangOption, CC1Option]>, + Group<f_Group>, + HelpText<"Overrides the _OPENACC macro value for experimental testing " + "during OpenACC support development">; +def openacc_macro_override_EQ + : Joined<["-"], "fexperimental-openacc-macro-override=">, + Alias<openacc_macro_override>; + +// End Clang specific/exclusive options for OpenACC. + +def libclc_lib_EQ : Joined<["--"], "libclc-lib=">, Group<opencl_Group>, + HelpText<"Namespec of libclc OpenCL bitcode library to link">; def libomptarget_amdgpu_bc_path_EQ : Joined<["--"], "libomptarget-amdgpu-bc-path=">, Group<i_Group>, HelpText<"Path to libomptarget-amdgcn bitcode library">; def libomptarget_amdgcn_bc_path_EQ : Joined<["--"], "libomptarget-amdgcn-bc-path=">, Group<i_Group>, @@ -1627,6 +1642,17 @@ defm auto_import : BoolFOption<"auto-import", def offload_EQ : CommaJoined<["--"], "offload=">, Flags<[NoXarchOption]>, Alias<offload_targets_EQ>, HelpText<"Specify comma-separated list of offloading target triples (CUDA and HIP only)">; +// This flag is only here so we can test the named loops implementation +// in C++ mode and C language modes before C2y to make sure it actually +// works; it should be removed once the syntax of the feature is stable +// enough to backport it to earlier language modes (and to C++ if it ever +// gets standardised as a C++ feature). +defm named_loops + : BoolFOption< + "named-loops", LangOpts<"NamedLoops">, DefaultFalse, + PosFlag<SetTrue, [], [CC1Option], "Enable support for named loops">, + NegFlag<SetFalse>>; + // C++ Coroutines defm coroutines : BoolFOption<"coroutines", LangOpts<"Coroutines">, Default<cpp20.KeyPath>, @@ -1836,7 +1862,7 @@ defm pseudo_probe_for_profiling CodeGenOpts<"PseudoProbeForProfiling">, DefaultFalse, PosFlag<SetTrue, [], [ClangOption], "Emit">, NegFlag<SetFalse, [], [ClangOption], "Do not emit">, - BothFlags<[], [ClangOption, CC1Option], + BothFlags<[], [ClangOption, CC1Option, CLOption], " pseudo probes for sample profiling">>; def fprofile_list_EQ : Joined<["-"], "fprofile-list=">, Group<f_Group>, Visibility<[ClangOption, CC1Option, CLOption]>, @@ -2597,16 +2623,27 @@ def fsanitize_undefined_trap_on_error def fno_sanitize_undefined_trap_on_error : Flag<["-"], "fno-sanitize-undefined-trap-on-error">, Group<f_clang_Group>, Alias<fno_sanitize_trap_EQ>, AliasArgs<["undefined"]>; -defm sanitize_debug_trap_reasons - : BoolFOption< - "sanitize-debug-trap-reasons", - CodeGenOpts<"SanitizeDebugTrapReasons">, DefaultTrue, - PosFlag<SetTrue, [], [ClangOption, CC1Option], - "Annotate trap blocks in debug info with UBSan trap reasons">, - NegFlag<SetFalse, [], [ClangOption, CC1Option], - "Do not annotate trap blocks in debug info with UBSan trap " - "reasons">>; - +def fsanitize_debug_trap_reasons_EQ + : Joined<["-"], "fsanitize-debug-trap-reasons=">, Group<f_Group>, + Visibility<[ClangOption, CC1Option]>, + HelpText<"Set how trap reasons are emitted. " + "`none` - Not emitted. This gives the smallest debug info; " + "`basic` - Emit a fixed trap message per check type. This increases the " + "debug info size but not as much as `detailed`; " + "`detailed` - Emit a more detailed trap message. This increases the " + "debug info size the most. Default is `detailed`.">, + Values<"none,basic,detailed">, + NormalizedValuesScope<"CodeGenOptions::SanitizeDebugTrapReasonKind">, + NormalizedValues<["None", "Basic", "Detailed"]>, + MarshallingInfoEnum<CodeGenOpts<"SanitizeDebugTrapReasons">, "Detailed">; +def fsanitize_debug_trap_reasons + : Flag<["-"], "fsanitize-debug-trap-reasons">, Group<f_clang_Group>, + Alias<fsanitize_debug_trap_reasons_EQ>, AliasArgs<["detailed"]>, + HelpText<"Alias for -fsanitize-debug-trap-reasons=detailed">; +def fno_sanitize_debug_trap_reasons + : Flag<["-"], "fno-sanitize-debug-trap-reasons">, Group<f_clang_Group>, + Alias<fsanitize_debug_trap_reasons_EQ>, AliasArgs<["none"]>, + HelpText<"Alias for -fsanitize-debug-trap-reasons=none">; defm sanitize_minimal_runtime : BoolOption<"f", "sanitize-minimal-runtime", CodeGenOpts<"SanitizeMinimalRuntime">, DefaultFalse, PosFlag<SetTrue>, @@ -3281,6 +3318,13 @@ defm modules_reduced_bmi : BoolOption<"f", "modules-reduced-bmi", PosFlag<SetTrue, [], [ClangOption, CC1Option], "Generate the reduced BMI">>; +def fmodules_driver : Flag<["-"], "fmodules-driver">, + Group<f_Group>, Visibility<[ClangOption]>, + HelpText<"Enable support for driver managed module builds (experimental)">; +def fno_modules_driver : Flag<["-"], "fno-modules-driver">, + Group<f_Group>, Visibility<[ClangOption]>, + HelpText<"Disable support for driver managed module builds (experimental)">; + def experimental_modules_reduced_bmi : Flag<["-"], "fexperimental-modules-reduced-bmi">, Group<f_Group>, Visibility<[ClangOption, CC1Option]>, Alias<fmodules_reduced_bmi>; @@ -3716,14 +3760,20 @@ def fopenmp_relocatable_target : Flag<["-"], "fopenmp-relocatable-target">, def fnoopenmp_relocatable_target : Flag<["-"], "fnoopenmp-relocatable-target">, Group<f_Group>, Flags<[NoArgumentUnused, HelpHidden]>, Visibility<[ClangOption, CC1Option]>; -def fopenmp_simd : Flag<["-"], "fopenmp-simd">, Group<f_Group>, - Flags<[NoArgumentUnused]>, Visibility<[ClangOption, CC1Option]>, - HelpText<"Emit OpenMP code only for SIMD-based constructs.">; +def fopenmp_simd : Flag<["-"], "fopenmp-simd">, + Group<f_Group>, + Flags<[NoArgumentUnused]>, + Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>, + HelpText<"Emit OpenMP code only for SIMD-based constructs.">; def fopenmp_enable_irbuilder : Flag<["-"], "fopenmp-enable-irbuilder">, Group<f_Group>, Flags<[NoArgumentUnused, HelpHidden]>, Visibility<[ClangOption, CC1Option]>, HelpText<"Use the experimental OpenMP-IR-Builder codegen path.">; -def fno_openmp_simd : Flag<["-"], "fno-openmp-simd">, Group<f_Group>, - Flags<[NoArgumentUnused]>, Visibility<[ClangOption, CC1Option]>; +def fno_openmp_simd + : Flag<["-"], "fno-openmp-simd">, + Group<f_Group>, + Flags<[NoArgumentUnused]>, + Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>, + HelpText<"Do not emit code for any OpenMP constructs.">; def fopenmp_cuda_mode : Flag<["-"], "fopenmp-cuda-mode">, Group<f_Group>, Flags<[NoArgumentUnused, HelpHidden]>, Visibility<[ClangOption, CC1Option]>; def fno_openmp_cuda_mode : Flag<["-"], "fno-openmp-cuda-mode">, Group<f_Group>, @@ -4525,6 +4575,7 @@ defm aarch64_jump_table_hardening: OptInCC1FFlag<"aarch64-jump-table-hardening", defm ptrauth_objc_isa : OptInCC1FFlag<"ptrauth-objc-isa", "Enable signing and authentication of Objective-C object's 'isa' field">; defm ptrauth_objc_interface_sel : OptInCC1FFlag<"ptrauth-objc-interface-sel", "Enable signing and authentication of Objective-C object's 'SEL' fields">; defm ptrauth_objc_class_ro : OptInCC1FFlag<"ptrauth-objc-class-ro", "Enable signing and authentication for ObjC class_ro pointers">; +defm ptrauth_block_descriptor_pointers : OptInCC1FFlag<"ptrauth-block-descriptor-pointers", "Enable signing and authentication of block descriptors">; } def fenable_matrix : Flag<["-"], "fenable-matrix">, Group<f_Group>, @@ -5574,7 +5625,8 @@ def mno_outline_atomics : Flag<["-"], "mno-outline-atomics">, Group<f_clang_Grou HelpText<"Don't generate local calls to out-of-line atomic operations">; def mno_implicit_float : Flag<["-"], "mno-implicit-float">, Group<m_Group>, HelpText<"Don't generate implicit floating point or vector instructions">; -def mimplicit_float : Flag<["-"], "mimplicit-float">, Group<m_Group>; +def mimplicit_float : Flag<["-"], "mimplicit-float">, Group<m_Group>, + HelpText<"Generate implicit floating point or vector instructions">; def mrecip : Flag<["-"], "mrecip">, Group<m_Group>, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>, HelpText<"Equivalent to '-mrecip=all'">; @@ -6790,10 +6842,10 @@ def mapx_features_EQ : CommaJoined<["-"], "mapx-features=">, Group<m_x86_Feature def mno_apx_features_EQ : CommaJoined<["-"], "mno-apx-features=">, Group<m_x86_Features_Group>, HelpText<"Disable features of APX">, Values<"egpr,push2pop2,ppx,ndd,ccmp,nf,cf,zu">, Visibility<[ClangOption, CLOption, FlangOption]>; def mapxf : Flag<["-"], "mapxf">, Alias<mapx_features_EQ>, - AliasArgs<["egpr","push2pop2","ppx","ndd","ccmp","nf","cf","zu"]>, + AliasArgs<["egpr","push2pop2","ppx","ndd","ccmp","nf","zu"]>, Group<m_x86_Features_Group>; def mno_apxf : Flag<["-"], "mno-apxf">, Alias<mno_apx_features_EQ>, - AliasArgs<["egpr","push2pop2","ppx","ndd","ccmp","nf","cf","zu"]>, + AliasArgs<["egpr","push2pop2","ppx","ndd","ccmp","nf","zu"]>, Group<m_x86_Features_Group>; def mapx_inline_asm_use_gpr32 : Flag<["-"], "mapx-inline-asm-use-gpr32">, Group<m_Group>, HelpText<"Enable use of GPR32 in inline assembly for APX">; @@ -6964,7 +7016,6 @@ def static_libgfortran : Flag<["-"], "static-libgfortran">, Group<gfortran_Group // "f" options with values for gfortran. def fblas_matmul_limit_EQ : Joined<["-"], "fblas-matmul-limit=">, Group<gfortran_Group>; def fcheck_EQ : Joined<["-"], "fcheck=">, Group<gfortran_Group>; -def fcoarray_EQ : Joined<["-"], "fcoarray=">, Group<gfortran_Group>; def ffpe_trap_EQ : Joined<["-"], "ffpe-trap=">, Group<gfortran_Group>; def ffree_line_length_VALUE : Joined<["-"], "ffree-line-length-">, Group<gfortran_Group>; def finit_character_EQ : Joined<["-"], "finit-character=">, Group<gfortran_Group>; @@ -8668,11 +8719,21 @@ def fopenmp_is_target_device : Flag<["-"], "fopenmp-is-target-device">, HelpText<"Generate code only for an OpenMP target device.">; def : Flag<["-"], "fopenmp-is-device">, Alias<fopenmp_is_target_device>; def fopenmp_host_ir_file_path : Separate<["-"], "fopenmp-host-ir-file-path">, - HelpText<"Path to the IR file produced by the frontend for the host.">; + HelpText<"Path to the IR file produced by the frontend for the host.">, + MarshallingInfoString<LangOpts<"OMPHostIRFile">>; } // let Visibility = [CC1Option, FC1Option] //===----------------------------------------------------------------------===// +// Coarray Options +//===----------------------------------------------------------------------===// + +def fcoarray : Flag<["-"], "fcoarray">, + Group<f_Group>, + Visibility<[FlangOption, FC1Option]>, + HelpText<"Enable Coarray features">; + +//===----------------------------------------------------------------------===// // SYCL Options //===----------------------------------------------------------------------===// @@ -9366,6 +9427,11 @@ def res_may_alias : Option<["/", "-"], "res-may-alias", KIND_FLAG>, Visibility<[DXCOption, ClangOption, CC1Option]>, HelpText<"Assume that UAVs/SRVs may alias">, MarshallingInfoFlag<CodeGenOpts<"ResMayAlias">>; +def dxc_strip_rootsignature : + Option<["/", "-"], "Qstrip-rootsignature", KIND_FLAG>, + Group<dxc_Group>, + Visibility<[DXCOption]>, + HelpText<"Omit the root signature from produced DXContainer">; def target_profile : DXCJoinedOrSeparate<"T">, MetaVarName<"<profile>">, HelpText<"Set target profile">, Values<"ps_6_0, ps_6_1, ps_6_2, ps_6_3, ps_6_4, ps_6_5, ps_6_6, ps_6_7," @@ -9398,6 +9464,18 @@ def dxc_rootsig_ver : Alias<fdx_rootsignature_version>, Group<dxc_Group>, Visibility<[DXCOption]>; +def fdx_rootsignature_define : + Joined<["-"], "fdx-rootsignature-define=">, + Group<dxc_Group>, + Visibility<[ClangOption, CC1Option]>, + MarshallingInfoString<LangOpts<"HLSLRootSigOverride">, "\"\"">, + HelpText<"Override entry function root signature with root signature at " + "given macro name.">; +def dxc_rootsig_define : + Separate<["-"], "rootsig-define">, + Alias<fdx_rootsignature_define>, + Group<dxc_Group>, + Visibility<[DXCOption]>; def hlsl_entrypoint : Option<["-"], "hlsl-entry", KIND_SEPARATE>, Group<dxc_Group>, Visibility<[ClangOption, CC1Option]>, @@ -9430,8 +9508,12 @@ def fspv_target_env_EQ : Joined<["-"], "fspv-target-env=">, Group<dxc_Group>, def fspv_extension_EQ : Joined<["-"], "fspv-extension=">, Group<dxc_Group>, - HelpText<"Specify the available SPIR-V extensions. If this option is not " - "specified, then all extensions are available.">; + HelpText< + "Specify the available SPIR-V extensions. If this option is not " + "specified, then all extensions are available. If KHR is specified, " + "then all KHR extensions will be available. If DXC is specifided, " + "then all extensions implemented by the DirectX Shader compiler will " + "be available. This option is useful for moving from DXC to Clang.">; def fvk_use_dx_layout : DXCFlag<"fvk-use-dx-layout">, HelpText<"Use DirectX memory layout for Vulkan resources.">; @@ -9442,6 +9524,16 @@ def fvk_use_scalar_layout : DXCFlag<"fvk-use-scalar-layout">, HelpText<"Use scalar memory layout for Vulkan resources.">; +def fhlsl_spv_use_unknown_image_format + : Flag<["-"], "fspv-use-unknown-image-format">, + Group<dxc_Group>, + Visibility<[CC1Option, DXCOption]>, + HelpText<"For storage images and texel buffers, sets the default format " + "to 'Unknown' when not specified via the `vk::image_format` " + "attribute. If this option is not used, the format is inferred " + "from the resource's data type.">, + MarshallingInfoFlag<LangOpts<"HLSLSpvUseUnknownImageFormat">>; + def no_wasm_opt : Flag<["--"], "no-wasm-opt">, Group<m_Group>, HelpText<"Disable the wasm-opt optimizer">, |