From 9f6045111a845401d7189ea2a98a156e2d45773b Mon Sep 17 00:00:00 2001 From: Erich Keane Date: Thu, 24 Jan 2019 15:28:57 +0000 Subject: [PATCH] [CPU-Dispatch] Make pentium_iii_no_xmm_regs and pentium_iii alias. I discovered that in ICC (where this list comes from), that the two pentium_iii versions were actually identical despite the two different names (despite them implying a difference). Because of this, they ended up having identical manglings, which obviously caused problems when used together. This patch makes pentium_iii_no_xmm_regs an alias for pentium_iii so that it can still be used, but has the same meaning as ICC. However, we still prohibit using the two together which is different (albeit better) behavior. Change-Id: I4f3c9a47e48490c81525c8a3d23ed4201921b288 llvm-svn: 352054 --- clang/include/clang/Basic/X86Target.def | 2 +- clang/test/Sema/attr-cpuspecific.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Basic/X86Target.def b/clang/include/clang/Basic/X86Target.def index 993f8d0977f6..c6719ff2aff0 100644 --- a/clang/include/clang/Basic/X86Target.def +++ b/clang/include/clang/Basic/X86Target.def @@ -300,7 +300,7 @@ CPU_SPECIFIC("pentium_pro", 'C', "+cmov") CPU_SPECIFIC("pentium_mmx", 'D', "+mmx") CPU_SPECIFIC("pentium_ii", 'E', "+cmov,+mmx") CPU_SPECIFIC("pentium_iii", 'H', "+cmov,+mmx,+sse") -CPU_SPECIFIC("pentium_iii_no_xmm_regs", 'H',"+cmov,+sse") +CPU_SPECIFIC_ALIAS("pentium_iii_no_xmm_regs", "pentium_iii") CPU_SPECIFIC("pentium_4", 'J', "+cmov,+mmx,+sse,+sse2") CPU_SPECIFIC("pentium_m", 'K', "+cmov,+mmx,+sse,+sse2") CPU_SPECIFIC("pentium_4_sse3", 'L', "+cmov,+mmx,+sse,+sse2,+sse3") diff --git a/clang/test/Sema/attr-cpuspecific.c b/clang/test/Sema/attr-cpuspecific.c index e87ad4de7525..ae86742ca081 100644 --- a/clang/test/Sema/attr-cpuspecific.c +++ b/clang/test/Sema/attr-cpuspecific.c @@ -112,3 +112,6 @@ int __attribute__((cpu_specific(pentium_4))) called_invalid_value(void){ return int use3(void) { return called_invalid_value(); } + +// expected-warning@+1 {{CPU list contains duplicate entries; attribute ignored}} +int __attribute__((cpu_dispatch(pentium_iii, pentium_iii_no_xmm_regs))) dupe_p3(void); -- 2.34.1