@@ -550,6 +550,13 @@ multiclass BoolGOption<string flag_base, KeyPathAndMacro kpm,
550
550
Group<g_Group>;
551
551
}
552
552
553
+ multiclass BoolMOption<string flag_base, KeyPathAndMacro kpm,
554
+ Default default, FlagDef flag1, FlagDef flag2,
555
+ BothFlags both = BothFlags<[]>> {
556
+ defm NAME : BoolOption<"m", flag_base, kpm, default, flag1, flag2, both>,
557
+ Group<m_Group>;
558
+ }
559
+
553
560
// Works like BoolOption except without marshalling
554
561
multiclass BoolOptionWithoutMarshalling<string prefix = "", string spelling_base,
555
562
FlagDef flag1_base, FlagDef flag2_base,
@@ -4600,11 +4607,10 @@ def mretpoline : Flag<["-"], "mretpoline">, Group<m_Group>,
4600
4607
Visibility<[ClangOption, CLOption]>;
4601
4608
def mno_retpoline : Flag<["-"], "mno-retpoline">, Group<m_Group>,
4602
4609
Visibility<[ClangOption, CLOption]>;
4603
- defm speculative_load_hardening : BoolOption<"m", "speculative-load-hardening",
4610
+ defm speculative_load_hardening : BoolMOption< "speculative-load-hardening",
4604
4611
CodeGenOpts<"SpeculativeLoadHardening">, DefaultFalse,
4605
4612
PosFlag<SetTrue, [], [ClangOption, CC1Option]>,
4606
- NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption]>>,
4607
- Group<m_Group>;
4613
+ NegFlag<SetFalse>, BothFlags<[], [ClangOption, CLOption]>>;
4608
4614
def mlvi_hardening : Flag<["-"], "mlvi-hardening">, Group<m_Group>,
4609
4615
Visibility<[ClangOption, CLOption]>,
4610
4616
HelpText<"Enable all mitigations for Load Value Injection (LVI)">;
@@ -4821,13 +4827,13 @@ def mexec_model_EQ : Joined<["-"], "mexec-model=">, Group<m_wasm_Features_Driver
4821
4827
"explicitly terminated.">;
4822
4828
} // let Flags = [TargetSpecific]
4823
4829
4824
- defm amdgpu_ieee : BoolOption<"m", "amdgpu-ieee",
4830
+ defm amdgpu_ieee : BoolMOption< "amdgpu-ieee",
4825
4831
CodeGenOpts<"EmitIEEENaNCompliantInsts">, DefaultTrue,
4826
4832
PosFlag<SetTrue, [], [ClangOption], "Sets the IEEE bit in the expected default floating point "
4827
4833
" mode register. Floating point opcodes that support exception flag "
4828
4834
"gathering quiet and propagate signaling NaN inputs per IEEE 754-2008. "
4829
4835
"This option changes the ABI. (AMDGPU only)">,
4830
- NegFlag<SetFalse, [], [ClangOption, CC1Option]>>, Group<m_Group> ;
4836
+ NegFlag<SetFalse, [], [ClangOption, CC1Option]>>;
4831
4837
4832
4838
def mcode_object_version_EQ : Joined<["-"], "mcode-object-version=">, Group<m_Group>,
4833
4839
HelpText<"Specify code object ABI version. Defaults to 5. (AMDGPU only)">,
@@ -4846,14 +4852,14 @@ defm wavefrontsize64 : SimpleMFlag<"wavefrontsize64",
4846
4852
"Specify wavefront size 64", "Specify wavefront size 32",
4847
4853
" mode (AMDGPU only)">;
4848
4854
4849
- defm unsafe_fp_atomics : BoolOption<"m", "unsafe-fp-atomics",
4855
+ defm unsafe_fp_atomics : BoolMOption< "unsafe-fp-atomics",
4850
4856
TargetOpts<"AllowAMDGPUUnsafeFPAtomics">, DefaultFalse,
4851
4857
PosFlag<SetTrue, [], [ClangOption, CC1Option],
4852
4858
"Enable generation of unsafe floating point "
4853
4859
"atomic instructions. May generate more efficient code, but may not "
4854
4860
"respect rounding and denormal modes, and may give incorrect results "
4855
4861
"for certain memory destinations. (AMDGPU only)">,
4856
- NegFlag<SetFalse>>, Group<m_Group> ;
4862
+ NegFlag<SetFalse>>;
4857
4863
4858
4864
def faltivec : Flag<["-"], "faltivec">, Group<f_Group>;
4859
4865
def fno_altivec : Flag<["-"], "fno-altivec">, Group<f_Group>;
@@ -4941,11 +4947,10 @@ def mrop_protect : Flag<["-"], "mrop-protect">,
4941
4947
def mprivileged : Flag<["-"], "mprivileged">,
4942
4948
Group<m_ppc_Features_Group>;
4943
4949
4944
- defm regnames : BoolOption<"m", "regnames",
4950
+ defm regnames : BoolMOption< "regnames",
4945
4951
CodeGenOpts<"PPCUseFullRegisterNames">, DefaultFalse,
4946
4952
PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use full register names when writing assembly output">,
4947
- NegFlag<SetFalse, [], [ClangOption], "Use only register numbers when writing assembly output">>,
4948
- Group<m_Group>;
4953
+ NegFlag<SetFalse, [], [ClangOption], "Use only register numbers when writing assembly output">>;
4949
4954
} // let Flags = [TargetSpecific]
4950
4955
def maix_small_local_exec_tls : Flag<["-"], "maix-small-local-exec-tls">,
4951
4956
Group<m_ppc_Features_Group>,
@@ -4987,10 +4992,10 @@ def mxcoff_build_id_EQ : Joined<["-"], "mxcoff-build-id=">, Group<Link_Group>, M
4987
4992
def mignore_xcoff_visibility : Flag<["-"], "mignore-xcoff-visibility">, Group<m_Group>,
4988
4993
HelpText<"Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file">,
4989
4994
Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>;
4990
- defm backchain : BoolOption<"m", "backchain",
4995
+ defm backchain : BoolMOption< "backchain",
4991
4996
CodeGenOpts<"Backchain">, DefaultFalse,
4992
4997
PosFlag<SetTrue, [], [ClangOption], "Link stack frames through backchain on System Z">,
4993
- NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option]>>, Group<m_Group> ;
4998
+ NegFlag<SetFalse>, BothFlags<[], [ClangOption, CC1Option]>>;
4994
4999
4995
5000
def mno_warn_nonportable_cfstrings : Flag<["-"], "mno-warn-nonportable-cfstrings">, Group<m_Group>;
4996
5001
def mno_omit_leaf_frame_pointer : Flag<["-"], "mno-omit-leaf-frame-pointer">, Group<m_Group>;
@@ -6952,7 +6957,7 @@ def msmall_data_limit : Separate<["-"], "msmall-data-limit">,
6952
6957
def funwind_tables_EQ : Joined<["-"], "funwind-tables=">,
6953
6958
HelpText<"Generate unwinding tables for all functions">,
6954
6959
MarshallingInfoInt<CodeGenOpts<"UnwindTables">>;
6955
- defm constructor_aliases : BoolOption<"m", "constructor-aliases",
6960
+ defm constructor_aliases : BoolMOption< "constructor-aliases",
6956
6961
CodeGenOpts<"CXXCtorDtorAliases">, DefaultFalse,
6957
6962
PosFlag<SetTrue, [], [ClangOption], "Enable">,
6958
6963
NegFlag<SetFalse, [], [ClangOption], "Disable">,
0 commit comments