@@ -523,6 +523,13 @@ multiclass BoolGOption<string flag_base, KeyPathAndMacro kpm,
523
523
Group<g_Group>;
524
524
}
525
525
526
+ multiclass BoolMOption<string flag_base, KeyPathAndMacro kpm,
527
+ Default default, FlagDef flag1, FlagDef flag2,
528
+ BothFlags both = BothFlags<[]>> {
529
+ defm NAME : BoolOption<"m", flag_base, kpm, default, flag1, flag2, both>,
530
+ Group<m_Group>;
531
+ }
532
+
526
533
// Works like BoolOption except without marshalling
527
534
multiclass BoolOptionWithoutMarshalling<string prefix = "", string spelling_base,
528
535
FlagDef flag1_base, FlagDef flag2_base,
@@ -4630,11 +4637,10 @@ def mretpoline : Flag<["-"], "mretpoline">, Group<m_Group>,
4630
4637
Visibility<[ClangOption, CLOption]>;
4631
4638
def mno_retpoline : Flag<["-"], "mno-retpoline">, Group<m_Group>,
4632
4639
Visibility<[ClangOption, CLOption]>;
4633
- defm speculative_load_hardening : BoolOption<"m", "speculative-load-hardening",
4640
+ defm speculative_load_hardening : BoolMOption< "speculative-load-hardening",
4634
4641
CodeGenOpts<"SpeculativeLoadHardening">, DefaultFalse,
4635
4642
PosFlag<SetTrue, [], [ClangOption, CC1Option]>,
4636
- NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption]>>,
4637
- Group<m_Group>;
4643
+ NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption]>>;
4638
4644
def mlvi_hardening : Flag<["-"], "mlvi-hardening">, Group<m_Group>,
4639
4645
Visibility<[ClangOption, CLOption]>,
4640
4646
HelpText<"Enable all mitigations for Load Value Injection (LVI)">;
@@ -4839,13 +4845,13 @@ def mexec_model_EQ : Joined<["-"], "mexec-model=">, Group<m_wasm_Features_Driver
4839
4845
"explicitly terminated.">;
4840
4846
} // let Flags = [TargetSpecific]
4841
4847
4842
- defm amdgpu_ieee : BoolOption<"m", "amdgpu-ieee",
4848
+ defm amdgpu_ieee : BoolMOption< "amdgpu-ieee",
4843
4849
CodeGenOpts<"EmitIEEENaNCompliantInsts">, DefaultTrue,
4844
4850
PosFlag<SetTrue, [], [ClangOption], "Sets the IEEE bit in the expected default floating point "
4845
4851
" mode register. Floating point opcodes that support exception flag "
4846
4852
"gathering quiet and propagate signaling NaN inputs per IEEE 754-2008. "
4847
4853
"This option changes the ABI. (AMDGPU only)">,
4848
- NegFlag<SetFalse, [], [ClangOption, CC1Option]>>, Group<m_Group> ;
4854
+ NegFlag<SetFalse, [], [ClangOption, CC1Option]>>;
4849
4855
4850
4856
def mcode_object_version_EQ : Joined<["-"], "mcode-object-version=">, Group<m_Group>,
4851
4857
HelpText<"Specify code object ABI version. Defaults to 4. (AMDGPU only)">,
@@ -4869,14 +4875,14 @@ defm amdgpu_precise_memory_op
4869
4875
: SimpleMFlag<"amdgpu-precise-memory-op", "Enable", "Disable",
4870
4876
" precise memory mode (AMDGPU only)">;
4871
4877
4872
- defm unsafe_fp_atomics : BoolOption<"m", "unsafe-fp-atomics",
4878
+ defm unsafe_fp_atomics : BoolMOption< "unsafe-fp-atomics",
4873
4879
TargetOpts<"AllowAMDGPUUnsafeFPAtomics">, DefaultFalse,
4874
4880
PosFlag<SetTrue, [], [ClangOption, CC1Option],
4875
4881
"Enable generation of unsafe floating point "
4876
4882
"atomic instructions. May generate more efficient code, but may not "
4877
4883
"respect rounding and denormal modes, and may give incorrect results "
4878
4884
"for certain memory destinations. (AMDGPU only)">,
4879
- NegFlag<SetFalse>>, Group<m_Group> ;
4885
+ NegFlag<SetFalse>>;
4880
4886
4881
4887
// TODO: Remove during upstreaming target id.
4882
4888
def mxnack : Flag<["-"], "mxnack">, Group<m_amdgpu_Features_Group>,
@@ -4969,11 +4975,10 @@ def mrop_protect : Flag<["-"], "mrop-protect">,
4969
4975
def mprivileged : Flag<["-"], "mprivileged">,
4970
4976
Group<m_ppc_Features_Group>;
4971
4977
4972
- defm regnames : BoolOption<"m", "regnames",
4978
+ defm regnames : BoolMOption< "regnames",
4973
4979
CodeGenOpts<"PPCUseFullRegisterNames">, DefaultFalse,
4974
4980
PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use full register names when writing assembly output">,
4975
- NegFlag<SetFalse, [], [ClangOption], "Use only register numbers when writing assembly output">>,
4976
- Group<m_Group>;
4981
+ NegFlag<SetFalse, [], [ClangOption], "Use only register numbers when writing assembly output">>;
4977
4982
} // let Flags = [TargetSpecific]
4978
4983
def maix_small_local_exec_tls : Flag<["-"], "maix-small-local-exec-tls">,
4979
4984
Group<m_ppc_Features_Group>,
@@ -5015,10 +5020,10 @@ def mxcoff_build_id_EQ : Joined<["-"], "mxcoff-build-id=">, Group<Link_Group>, M
5015
5020
def mignore_xcoff_visibility : Flag<["-"], "mignore-xcoff-visibility">, Group<m_Group>,
5016
5021
HelpText<"Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file">,
5017
5022
Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>;
5018
- defm backchain : BoolOption<"m", "backchain",
5023
+ defm backchain : BoolMOption< "backchain",
5019
5024
CodeGenOpts<"Backchain">, DefaultFalse,
5020
5025
PosFlag<SetTrue, [], [ClangOption], "Link stack frames through backchain on System Z">,
5021
- NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option]>>, Group<m_Group> ;
5026
+ NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option]>>;
5022
5027
5023
5028
def mno_warn_nonportable_cfstrings : Flag<["-"], "mno-warn-nonportable-cfstrings">, Group<m_Group>;
5024
5029
def mno_omit_leaf_frame_pointer : Flag<["-"], "mno-omit-leaf-frame-pointer">, Group<m_Group>;
@@ -6989,7 +6994,7 @@ def msmall_data_limit : Separate<["-"], "msmall-data-limit">,
6989
6994
def funwind_tables_EQ : Joined<["-"], "funwind-tables=">,
6990
6995
HelpText<"Generate unwinding tables for all functions">,
6991
6996
MarshallingInfoInt<CodeGenOpts<"UnwindTables">>;
6992
- defm constructor_aliases : BoolOption<"m", "constructor-aliases",
6997
+ defm constructor_aliases : BoolMOption< "constructor-aliases",
6993
6998
CodeGenOpts<"CXXCtorDtorAliases">, DefaultFalse,
6994
6999
PosFlag<SetTrue, [], [ClangOption], "Enable">,
6995
7000
NegFlag<SetFalse, [], [ClangOption], "Disable">,
0 commit comments