summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-07-12 00:29:05 +0000
committerReid Kleckner <reid@kleckner.net>2014-07-12 00:29:05 +0000
commit681ae920834f4634e282ba5d80cfd06db1d05f44 (patch)
tree9abc4eda39791eef0ef8d90b5b1588c4fb7f8f13
parent60755108391b515456f0f6cb4617e0a70a1f8ee1 (diff)
downloadbcm5719-llvm-681ae920834f4634e282ba5d80cfd06db1d05f44.tar.gz
bcm5719-llvm-681ae920834f4634e282ba5d80cfd06db1d05f44.zip
clang-cl: Make all x86 CPU feature flags available, such as -msse3
Ideally, we would use the /arch cl.exe flag for this stuff. Unfortunately, MSVC supports only 5 /arch flag values, which isn't nearly enough to cover all the CPU features that LLVM cares about. At the very least, we need to know about SSE3 and SSE4.1 in addition to SSE, SSE2, AVX, and AVX2. In the future we should add the relevant /arch mappings in addition to these gcc-style -m flags. llvm-svn: 212869
-rw-r--r--clang/include/clang/Driver/Options.td2
-rw-r--r--clang/test/Driver/cl-options.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 2a115ed4ce5..6af0f686b27 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -73,7 +73,7 @@ def g_flags_Group : OptionGroup<"<g flags group>">;
def i_Group : OptionGroup<"<i group>">, Group<CompileOnly_Group>;
def clang_i_Group : OptionGroup<"<clang i group>">, Group<i_Group>;
def m_Group : OptionGroup<"<m group>">, Group<CompileOnly_Group>;
-def m_x86_Features_Group : OptionGroup<"<m x86 features group>">, Group<m_Group>;
+def m_x86_Features_Group : OptionGroup<"<m x86 features group>">, Group<m_Group>, Flags<[CoreOption]>;
def m_hexagon_Features_Group : OptionGroup<"<m hexagon features group>">, Group<m_Group>;
def m_arm_Features_Group : OptionGroup<"<m arm features group>">, Group<m_Group>;
def m_aarch64_Features_Group : OptionGroup<"<m aarch64 features group>">, Group<m_Group>;
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c
index 90b63259feb..bd77bddbf1f 100644
--- a/clang/test/Driver/cl-options.c
+++ b/clang/test/Driver/cl-options.c
@@ -285,8 +285,10 @@
// Xclang: "-cc1"
// Xclang: "hellocc1"
-// We support -m32 and -m64.
-// RUN: %clang_cl /Zs /WX -m32 -m64 -### -- 2>&1 %s | FileCheck -check-prefix=MFLAGS %s
+// We support -m32 and -m64. We support all x86 CPU feature flags in gcc's -m
+// flag space.
+// RUN: %clang_cl /Zs /WX -m32 -m64 -msse3 -msse4.1 -mavx -mno-avx \
+// RUN: -### -- 2>&1 %s | FileCheck -check-prefix=MFLAGS %s
// MFLAGS-NOT: argument unused during compilation
// RTTI is on by default. /GR- controls -fno-rtti-data.
OpenPOWER on IntegriCloud