From: Erich Keane Date: Thu, 24 Jan 2019 15:28:57 +0000 (+0000) Subject: [CPU-Dispatch] Make pentium_iii_no_xmm_regs and pentium_iii alias. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7afeccf2f0eda39d2b920785278a7aed4bdb94ab;p=clang [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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@352054 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/X86Target.def b/include/clang/Basic/X86Target.def index 993f8d0977..c6719ff2af 100644 --- a/include/clang/Basic/X86Target.def +++ b/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/test/Sema/attr-cpuspecific.c b/test/Sema/attr-cpuspecific.c index e87ad4de75..ae86742ca0 100644 --- a/test/Sema/attr-cpuspecific.c +++ b/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);