Index: cfe/trunk/include/clang/Driver/Options.td =================================================================== --- cfe/trunk/include/clang/Driver/Options.td +++ cfe/trunk/include/clang/Driver/Options.td @@ -1693,8 +1693,6 @@ def m32 : Flag<["-"], "m32">, Group, Flags<[DriverOption, CoreOption]>; def mqdsp6_compat : Flag<["-"], "mqdsp6-compat">, Group, Flags<[DriverOption,CC1Option]>, HelpText<"Enable hexagon-qdsp6 backward compatibility">; -def m3dnowa : Flag<["-"], "m3dnowa">, Group; -def m3dnow : Flag<["-"], "m3dnow">, Group; def m64 : Flag<["-"], "m64">, Group, Flags<[DriverOption, CoreOption]>; def mx32 : Flag<["-"], "mx32">, Group, Flags<[DriverOption, CoreOption]>; def mabi_EQ : Joined<["-"], "mabi=">, Group; @@ -1781,13 +1779,9 @@ def meabi : Separate<["-"], "meabi">, Group, Flags<[CC1Option]>, HelpText<"Set EABI type, e.g. 4, 5 or gnu (default depends on triple)">, Values<"default,4,5,gnu">; -def mmmx : Flag<["-"], "mmmx">, Group; -def mno_3dnowa : Flag<["-"], "mno-3dnowa">, Group; -def mno_3dnow : Flag<["-"], "mno-3dnow">, Group; def mno_constant_cfstrings : Flag<["-"], "mno-constant-cfstrings">, Group; def mno_global_merge : Flag<["-"], "mno-global-merge">, Group, Flags<[CC1Option]>, HelpText<"Disable merging of globals">; -def mno_mmx : Flag<["-"], "mno-mmx">, Group; def mno_pascal_strings : Flag<["-"], "mno-pascal-strings">, Alias; def mno_red_zone : Flag<["-"], "mno-red-zone">, Group; @@ -1795,65 +1789,6 @@ def mno_rtd: Flag<["-"], "mno-rtd">, Group; def mno_soft_float : Flag<["-"], "mno-soft-float">, Group; def mno_stackrealign : Flag<["-"], "mno-stackrealign">, Group; -def mno_x87 : Flag<["-"], "mno-x87">, Group; -def mno_80387 : Flag<["-"], "mno-80387">, Alias; -def mno_sse2 : Flag<["-"], "mno-sse2">, Group; -def mno_sse3 : Flag<["-"], "mno-sse3">, Group; -def mno_sse4a : Flag<["-"], "mno-sse4a">, Group; -def mno_sse4_1 : Flag<["-"], "mno-sse4.1">, Group; -def mno_sse4_2 : Flag<["-"], "mno-sse4.2">, Group; -// -mno-sse4 turns off sse4.1 which has the effect of turning off everything -// later than 4.1. -msse4 turns on 4.2 which has the effect of turning on -// everything earlier than 4.2. -def mno_sse4 : Flag<["-"], "mno-sse4">, Alias; -def mno_sse : Flag<["-"], "mno-sse">, Group; -def mno_ssse3 : Flag<["-"], "mno-ssse3">, Group; -def mno_aes : Flag<["-"], "mno-aes">, Group; -def mno_avx : Flag<["-"], "mno-avx">, Group; -def mno_avx2 : Flag<["-"], "mno-avx2">, Group; -def mno_avx512f : Flag<["-"], "mno-avx512f">, Group; -def mno_avx512cd : Flag<["-"], "mno-avx512cd">, Group; -def mno_avx512vpopcntdq : Flag<["-"], "mno-avx512vpopcntdq">, Group; -def mno_avx512er : Flag<["-"], "mno-avx512er">, Group; -def mno_avx512pf : Flag<["-"], "mno-avx512pf">, Group; -def mno_avx512dq : Flag<["-"], "mno-avx512dq">, Group; -def mno_avx512bw : Flag<["-"], "mno-avx512bw">, Group; -def mno_avx512vl : Flag<["-"], "mno-avx512vl">, Group; -def mno_avx512vbmi : Flag<["-"], "mno-avx512vbmi">, Group; -def mno_avx512ifma : Flag<["-"], "mno-avx512ifma">, Group; -def mno_pclmul : Flag<["-"], "mno-pclmul">, Group; -def mno_lzcnt : Flag<["-"], "mno-lzcnt">, Group; -def mno_rdrnd : Flag<["-"], "mno-rdrnd">, Group; -def mno_fsgsbase : Flag<["-"], "mno-fsgsbase">, Group; -def mno_bmi : Flag<["-"], "mno-bmi">, Group; -def mno_bmi2 : Flag<["-"], "mno-bmi2">, Group; -def mno_popcnt : Flag<["-"], "mno-popcnt">, Group; -def mno_tbm : Flag<["-"], "mno-tbm">, Group; -def mno_lwp : Flag<["-"], "mno-lwp">, Group; -def mno_fma4 : Flag<["-"], "mno-fma4">, Group; -def mno_fma : Flag<["-"], "mno-fma">, Group; -def mno_xop : Flag<["-"], "mno-xop">, Group; -def mno_f16c : Flag<["-"], "mno-f16c">, Group; -def mno_rtm : Flag<["-"], "mno-rtm">, Group; -def mno_prfchw : Flag<["-"], "mno-prfchw">, Group; -def mno_rdseed : Flag<["-"], "mno-rdseed">, Group; -def mno_adx : Flag<["-"], "mno-adx">, Group; -def mno_sha : Flag<["-"], "mno-sha">, Group; -def mno_cx16 : Flag<["-"], "mno-cx16">, Group; -def mno_fxsr : Flag<["-"], "mno-fxsr">, Group; -def mno_xsave : Flag<["-"], "mno-xsave">, Group; -def mno_xsaveopt : Flag<["-"], "mno-xsaveopt">, Group; -def mno_xsavec : Flag<["-"], "mno-xsavec">, Group; -def mno_xsaves : Flag<["-"], "mno-xsaves">, Group; -def mno_mwaitx : Flag<["-"], "mno-mwaitx">, Group; -def mno_clzero : Flag<["-"], "mno-clzero">, Group; -def mno_pku : Flag<["-"], "mno-pku">, Group; -def mno_clflushopt : Flag<["-"], "mno-clflushopt">, Group; -def mno_clwb : Flag<["-"], "mno-clwb">, Group; -def mno_movbe : Flag<["-"], "mno-movbe">, Group; -def mno_mpx : Flag<["-"], "mno-mpx">, Group; -def mno_sgx : Flag<["-"], "mno-sgx">, Group; -def mno_prefetchwt1 : Flag<["-"], "mno-prefetchwt1">, Group; def munaligned_access : Flag<["-"], "munaligned-access">, Group, HelpText<"Allow memory accesses to be unaligned (AArch32/AArch64 only)">; @@ -1999,62 +1934,6 @@ def mno_pie_copy_relocations : Flag<["-"], "mno-pie-copy-relocations">, Group; def mfentry : Flag<["-"], "mfentry">, HelpText<"Insert calls to fentry at function entry (x86 only)">, Flags<[CC1Option]>, Group; -def mx87 : Flag<["-"], "mx87">, Group; -def m80387 : Flag<["-"], "m80387">, Alias; -def msse2 : Flag<["-"], "msse2">, Group; -def msse3 : Flag<["-"], "msse3">, Group; -def msse4a : Flag<["-"], "msse4a">, Group; -def msse4_1 : Flag<["-"], "msse4.1">, Group; -def msse4_2 : Flag<["-"], "msse4.2">, Group; -def msse4 : Flag<["-"], "msse4">, Alias; -def msse : Flag<["-"], "msse">, Group; -def mssse3 : Flag<["-"], "mssse3">, Group; -def maes : Flag<["-"], "maes">, Group; -def mavx : Flag<["-"], "mavx">, Group; -def mavx2 : Flag<["-"], "mavx2">, Group; -def mavx512f : Flag<["-"], "mavx512f">, Group; -def mavx512cd : Flag<["-"], "mavx512cd">, Group; -def mavx512vpopcntdq : Flag<["-"], "mavx512vpopcntdq">, Group; -def mavx512er : Flag<["-"], "mavx512er">, Group; -def mavx512pf : Flag<["-"], "mavx512pf">, Group; -def mavx512dq : Flag<["-"], "mavx512dq">, Group; -def mavx512bw : Flag<["-"], "mavx512bw">, Group; -def mavx512vl : Flag<["-"], "mavx512vl">, Group; -def mavx512vbmi : Flag<["-"], "mavx512vbmi">, Group; -def mavx512ifma : Flag<["-"], "mavx512ifma">, Group; -def mpclmul : Flag<["-"], "mpclmul">, Group; -def mlzcnt : Flag<["-"], "mlzcnt">, Group; -def mrdrnd : Flag<["-"], "mrdrnd">, Group; -def mfsgsbase : Flag<["-"], "mfsgsbase">, Group; -def mbmi : Flag<["-"], "mbmi">, Group; -def mbmi2 : Flag<["-"], "mbmi2">, Group; -def mpopcnt : Flag<["-"], "mpopcnt">, Group; -def mtbm : Flag<["-"], "mtbm">, Group; -def mlwp : Flag<["-"], "mlwp">, Group; -def mfma4 : Flag<["-"], "mfma4">, Group; -def mfma : Flag<["-"], "mfma">, Group; -def mxop : Flag<["-"], "mxop">, Group; -def mf16c : Flag<["-"], "mf16c">, Group; -def mrtm : Flag<["-"], "mrtm">, Group; -def mprfchw : Flag<["-"], "mprfchw">, Group; -def mrdseed : Flag<["-"], "mrdseed">, Group; -def mpku : Flag<["-"], "mpku">, Group; -def madx : Flag<["-"], "madx">, Group; -def msha : Flag<["-"], "msha">, Group; -def mcx16 : Flag<["-"], "mcx16">, Group; -def mfxsr : Flag<["-"], "mfxsr">, Group; -def mxsave : Flag<["-"], "mxsave">, Group; -def mxsaveopt : Flag<["-"], "mxsaveopt">, Group; -def mxsavec : Flag<["-"], "mxsavec">, Group; -def mxsaves : Flag<["-"], "mxsaves">, Group; -def mmwaitx : Flag<["-"], "mmwaitx">, Group; -def mclzero : Flag<["-"], "mclzero">, Group; -def mclflushopt : Flag<["-"], "mclflushopt">, Group; -def mclwb : Flag<["-"], "mclwb">, Group; -def mmovbe : Flag<["-"], "mmovbe">, Group; -def mmpx : Flag<["-"], "mmpx">, Group; -def msgx : Flag<["-"], "msgx">, Group; -def mprefetchwt1 : Flag<["-"], "mprefetchwt1">, Group; def mips16 : Flag<["-"], "mips16">, Group; def mno_mips16 : Flag<["-"], "mno-mips16">, Group; def mmicromips : Flag<["-"], "mmicromips">, Group; @@ -2521,6 +2400,131 @@ Group, HelpText<"Disable Hexagon Double Vector eXtensions">; + +// X86 feature flags +def mx87 : Flag<["-"], "mx87">, Group; +def mno_x87 : Flag<["-"], "mno-x87">, Group; +def m80387 : Flag<["-"], "m80387">, Alias; +def mno_80387 : Flag<["-"], "mno-80387">, Alias; +def mmmx : Flag<["-"], "mmmx">, Group; +def mno_mmx : Flag<["-"], "mno-mmx">, Group; +def m3dnow : Flag<["-"], "m3dnow">, Group; +def mno_3dnow : Flag<["-"], "mno-3dnow">, Group; +def m3dnowa : Flag<["-"], "m3dnowa">, Group; +def mno_3dnowa : Flag<["-"], "mno-3dnowa">, Group; +def msse : Flag<["-"], "msse">, Group; +def mno_sse : Flag<["-"], "mno-sse">, Group; +def msse2 : Flag<["-"], "msse2">, Group; +def mno_sse2 : Flag<["-"], "mno-sse2">, Group; +def msse3 : Flag<["-"], "msse3">, Group; +def mno_sse3 : Flag<["-"], "mno-sse3">, Group; +def mssse3 : Flag<["-"], "mssse3">, Group; +def mno_ssse3 : Flag<["-"], "mno-ssse3">, Group; +def msse4_1 : Flag<["-"], "msse4.1">, Group; +def mno_sse4_1 : Flag<["-"], "mno-sse4.1">, Group; +def msse4_2 : Flag<["-"], "msse4.2">, Group; +def mno_sse4_2 : Flag<["-"], "mno-sse4.2">, Group; +def msse4 : Flag<["-"], "msse4">, Alias; +// -mno-sse4 turns off sse4.1 which has the effect of turning off everything +// later than 4.1. -msse4 turns on 4.2 which has the effect of turning on +// everything earlier than 4.2. +def mno_sse4 : Flag<["-"], "mno-sse4">, Alias; +def msse4a : Flag<["-"], "msse4a">, Group; +def mno_sse4a : Flag<["-"], "mno-sse4a">, Group; +def mavx : Flag<["-"], "mavx">, Group; +def mno_avx : Flag<["-"], "mno-avx">, Group; +def mavx2 : Flag<["-"], "mavx2">, Group; +def mno_avx2 : Flag<["-"], "mno-avx2">, Group; +def mavx512f : Flag<["-"], "mavx512f">, Group; +def mno_avx512f : Flag<["-"], "mno-avx512f">, Group; +def mavx512bw : Flag<["-"], "mavx512bw">, Group; +def mno_avx512bw : Flag<["-"], "mno-avx512bw">, Group; +def mavx512cd : Flag<["-"], "mavx512cd">, Group; +def mno_avx512cd : Flag<["-"], "mno-avx512cd">, Group; +def mavx512dq : Flag<["-"], "mavx512dq">, Group; +def mno_avx512dq : Flag<["-"], "mno-avx512dq">, Group; +def mavx512er : Flag<["-"], "mavx512er">, Group; +def mno_avx512er : Flag<["-"], "mno-avx512er">, Group; +def mavx512ifma : Flag<["-"], "mavx512ifma">, Group; +def mno_avx512ifma : Flag<["-"], "mno-avx512ifma">, Group; +def mavx512pf : Flag<["-"], "mavx512pf">, Group; +def mno_avx512pf : Flag<["-"], "mno-avx512pf">, Group; +def mavx512vbmi : Flag<["-"], "mavx512vbmi">, Group; +def mno_avx512vbmi : Flag<["-"], "mno-avx512vbmi">, Group; +def mavx512vl : Flag<["-"], "mavx512vl">, Group; +def mno_avx512vl : Flag<["-"], "mno-avx512vl">, Group; +def mavx512vpopcntdq : Flag<["-"], "mavx512vpopcntdq">, Group; +def mno_avx512vpopcntdq : Flag<["-"], "mno-avx512vpopcntdq">, Group; +def madx : Flag<["-"], "madx">, Group; +def mno_adx : Flag<["-"], "mno-adx">, Group; +def maes : Flag<["-"], "maes">, Group; +def mno_aes : Flag<["-"], "mno-aes">, Group; +def mbmi : Flag<["-"], "mbmi">, Group; +def mno_bmi : Flag<["-"], "mno-bmi">, Group; +def mbmi2 : Flag<["-"], "mbmi2">, Group; +def mno_bmi2 : Flag<["-"], "mno-bmi2">, Group; +def mclflushopt : Flag<["-"], "mclflushopt">, Group; +def mno_clflushopt : Flag<["-"], "mno-clflushopt">, Group; +def mclwb : Flag<["-"], "mclwb">, Group; +def mno_clwb : Flag<["-"], "mno-clwb">, Group; +def mclzero : Flag<["-"], "mclzero">, Group; +def mno_clzero : Flag<["-"], "mno-clzero">, Group; +def mcx16 : Flag<["-"], "mcx16">, Group; +def mno_cx16 : Flag<["-"], "mno-cx16">, Group; +def mf16c : Flag<["-"], "mf16c">, Group; +def mno_f16c : Flag<["-"], "mno-f16c">, Group; +def mfma : Flag<["-"], "mfma">, Group; +def mno_fma : Flag<["-"], "mno-fma">, Group; +def mfma4 : Flag<["-"], "mfma4">, Group; +def mno_fma4 : Flag<["-"], "mno-fma4">, Group; +def mfsgsbase : Flag<["-"], "mfsgsbase">, Group; +def mno_fsgsbase : Flag<["-"], "mno-fsgsbase">, Group; +def mfxsr : Flag<["-"], "mfxsr">, Group; +def mno_fxsr : Flag<["-"], "mno-fxsr">, Group; +def mlwp : Flag<["-"], "mlwp">, Group; +def mno_lwp : Flag<["-"], "mno-lwp">, Group; +def mlzcnt : Flag<["-"], "mlzcnt">, Group; +def mno_lzcnt : Flag<["-"], "mno-lzcnt">, Group; +def mmovbe : Flag<["-"], "mmovbe">, Group; +def mno_movbe : Flag<["-"], "mno-movbe">, Group; +def mmpx : Flag<["-"], "mmpx">, Group; +def mno_mpx : Flag<["-"], "mno-mpx">, Group; +def mmwaitx : Flag<["-"], "mmwaitx">, Group; +def mno_mwaitx : Flag<["-"], "mno-mwaitx">, Group; +def mpku : Flag<["-"], "mpku">, Group; +def mno_pku : Flag<["-"], "mno-pku">, Group; +def mpclmul : Flag<["-"], "mpclmul">, Group; +def mno_pclmul : Flag<["-"], "mno-pclmul">, Group; +def mpopcnt : Flag<["-"], "mpopcnt">, Group; +def mno_popcnt : Flag<["-"], "mno-popcnt">, Group; +def mprefetchwt1 : Flag<["-"], "mprefetchwt1">, Group; +def mno_prefetchwt1 : Flag<["-"], "mno-prefetchwt1">, Group; +def mprfchw : Flag<["-"], "mprfchw">, Group; +def mno_prfchw : Flag<["-"], "mno-prfchw">, Group; +def mrdrnd : Flag<["-"], "mrdrnd">, Group; +def mno_rdrnd : Flag<["-"], "mno-rdrnd">, Group; +def mrtm : Flag<["-"], "mrtm">, Group; +def mno_rtm : Flag<["-"], "mno-rtm">, Group; +def mrdseed : Flag<["-"], "mrdseed">, Group; +def mno_rdseed : Flag<["-"], "mno-rdseed">, Group; +def msgx : Flag<["-"], "msgx">, Group; +def mno_sgx : Flag<["-"], "mno-sgx">, Group; +def msha : Flag<["-"], "msha">, Group; +def mno_sha : Flag<["-"], "mno-sha">, Group; +def mtbm : Flag<["-"], "mtbm">, Group; +def mno_tbm : Flag<["-"], "mno-tbm">, Group; +def mxop : Flag<["-"], "mxop">, Group; +def mno_xop : Flag<["-"], "mno-xop">, Group; +def mxsave : Flag<["-"], "mxsave">, Group; +def mno_xsave : Flag<["-"], "mno-xsave">, Group; +def mxsavec : Flag<["-"], "mxsavec">, Group; +def mno_xsavec : Flag<["-"], "mno-xsavec">, Group; +def mxsaveopt : Flag<["-"], "mxsaveopt">, Group; +def mno_xsaveopt : Flag<["-"], "mno-xsaveopt">, Group; +def mxsaves : Flag<["-"], "mxsaves">, Group; +def mno_xsaves : Flag<["-"], "mno-xsaves">, Group; + + // These are legacy user-facing driver-level option spellings. They are always // aliases for options that are spelled using the more common Unix / GNU flag // style of double-dash and equals-joined flags.