diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -289,6 +289,17 @@ Group, HelpText; } +// Creates a positive and negative flags where both of them are prefixed with +// "m", have help text specified for positive and negative option, and a Group +// optionally specified by the opt_group argument, otherwise Group. +multiclass SimpleMFlag { + def m#NAME : Flag<["-"], "m"#name>, Group, + HelpText; + def mno_#NAME : Flag<["-"], "mno-"#name>, Group, + HelpText; +} + //===----------------------------------------------------------------------===// // BoolOption //===----------------------------------------------------------------------===// @@ -3138,23 +3149,18 @@ HelpText<"Specify code object ABI version. Defaults to 3. (AMDGPU only)">, MetaVarName<"">, Values<"2,3,4">; -def mcode_object_v3_legacy : Flag<["-"], "mcode-object-v3">, Group, - HelpText<"Legacy option to specify code object ABI V2 (-mnocode-object-v3) or V3 (-mcode-object-v3) (AMDGPU only)">; -def mno_code_object_v3_legacy : Flag<["-"], "mno-code-object-v3">, Group; - -def mcumode : Flag<["-"], "mcumode">, Group, - HelpText<"Specify CU (-mcumode) or WGP (-mno-cumode) wavefront execution mode (AMDGPU only)">; -def mno_cumode : Flag<["-"], "mno-cumode">, Group; - -def mtgsplit : Flag<["-"], "mtgsplit">, Group, - HelpText<"Enable threadgroup split execution mode (AMDGPU only)">; -def mno_tgsplit : Flag<["-"], "mno-tgsplit">, Group, - HelpText<"Disable threadgroup split execution mode (AMDGPU only)">; - -def mwavefrontsize64 : Flag<["-"], "mwavefrontsize64">, Group, - HelpText<"Specify wavefront size 64 mode (AMDGPU only)">; -def mno_wavefrontsize64 : Flag<["-"], "mno-wavefrontsize64">, Group, - HelpText<"Specify wavefront size 32 mode (AMDGPU only)">; +defm code_object_v3_legacy : SimpleMFlag<"code-object-v3", + "Legacy option to specify code object ABI V3", + "Legacy option to specify code object ABI V2", + " (AMDGPU only)">; +defm cumode : SimpleMFlag<"cumode", + "Specify CU wavefront", "Specify WGP wavefront", + " execution mode (AMDGPU only)", m_amdgpu_Features_Group>; +defm tgsplit : SimpleMFlag<"tgsplit", "Enable", "Disable", + " threadgroup split execution mode (AMDGPU only)", m_amdgpu_Features_Group>; +defm wavefrontsize64 : SimpleMFlag<"wavefrontsize64", + "Specify wavefront size 64", "Specify wavefront size 32", + " mode (AMDGPU only)">; defm unsafe_fp_atomics : BoolOption<"m", "unsafe-fp-atomics", TargetOpts<"AllowAMDGPUUnsafeFPAtomics">, DefaultFalse,