Index: lib/Basic/Targets/X86.cpp =================================================================== --- lib/Basic/Targets/X86.cpp +++ lib/Basic/Targets/X86.cpp @@ -830,35 +830,35 @@ break; case CK_Bonnell: defineCPUMacros(Builder, "atom"); + // gcc also defines 'bonnell', but we never have. See comment below. break; case CK_Silvermont: defineCPUMacros(Builder, "slm"); + // gcc also defines 'silvermont', but we never have. See comment below. break; case CK_Goldmont: defineCPUMacros(Builder, "goldmont"); break; case CK_Nehalem: case CK_Westmere: + defineCPUMacros(Builder, "corei7"); + // gcc also defines 'nehalem', but we never have. See comment below. + break; case CK_SandyBridge: case CK_IvyBridge: case CK_Haswell: case CK_Broadwell: case CK_SkylakeClient: - // FIXME: Historically, we defined this legacy name, it would be nice to - // remove it at some point. We've never exposed fine-grained names for - // recent primary x86 CPUs, and we should keep it that way. - defineCPUMacros(Builder, "corei7"); - break; case CK_SkylakeServer: - defineCPUMacros(Builder, "skx"); - break; case CK_Cannonlake: + case CK_KNM: + // We don't want to define fine-grained macros for new CPUs going forward. + // While at the same time maintaining compatibility with gcc for the ones + // we have historically defined. break; case CK_KNL: defineCPUMacros(Builder, "knl"); break; - case CK_KNM: - break; case CK_Lakemont: Builder.defineMacro("__tune_lakemont__"); break; Index: test/Preprocessor/predefined-arch-macros.c =================================================================== --- test/Preprocessor/predefined-arch-macros.c +++ test/Preprocessor/predefined-arch-macros.c @@ -427,11 +427,8 @@ // CHECK_COREI7_AVX_M32: #define __SSSE3__ 1 // CHECK_COREI7_AVX_M32: #define __XSAVEOPT__ 1 // CHECK_COREI7_AVX_M32: #define __XSAVE__ 1 -// CHECK_COREI7_AVX_M32: #define __corei7 1 -// CHECK_COREI7_AVX_M32: #define __corei7__ 1 // CHECK_COREI7_AVX_M32: #define __i386 1 // CHECK_COREI7_AVX_M32: #define __i386__ 1 -// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1 // CHECK_COREI7_AVX_M32: #define i386 1 // RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \ // RUN: -target i386-unknown-linux \ @@ -454,9 +451,6 @@ // CHECK_COREI7_AVX_M64: #define __XSAVE__ 1 // CHECK_COREI7_AVX_M64: #define __amd64 1 // CHECK_COREI7_AVX_M64: #define __amd64__ 1 -// CHECK_COREI7_AVX_M64: #define __corei7 1 -// CHECK_COREI7_AVX_M64: #define __corei7__ 1 -// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1 // CHECK_COREI7_AVX_M64: #define __x86_64 1 // CHECK_COREI7_AVX_M64: #define __x86_64__ 1 // @@ -477,11 +471,8 @@ // CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1 // CHECK_CORE_AVX_I_M32: #define __XSAVEOPT__ 1 // CHECK_CORE_AVX_I_M32: #define __XSAVE__ 1 -// CHECK_CORE_AVX_I_M32: #define __corei7 1 -// CHECK_CORE_AVX_I_M32: #define __corei7__ 1 // CHECK_CORE_AVX_I_M32: #define __i386 1 // CHECK_CORE_AVX_I_M32: #define __i386__ 1 -// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1 // CHECK_CORE_AVX_I_M32: #define i386 1 // RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \ // RUN: -target i386-unknown-linux \ @@ -504,9 +495,6 @@ // CHECK_CORE_AVX_I_M64: #define __XSAVE__ 1 // CHECK_CORE_AVX_I_M64: #define __amd64 1 // CHECK_CORE_AVX_I_M64: #define __amd64__ 1 -// CHECK_CORE_AVX_I_M64: #define __corei7 1 -// CHECK_CORE_AVX_I_M64: #define __corei7__ 1 -// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1 // CHECK_CORE_AVX_I_M64: #define __x86_64 1 // CHECK_CORE_AVX_I_M64: #define __x86_64__ 1 // @@ -533,11 +521,8 @@ // CHECK_CORE_AVX2_M32: #define __SSSE3__ 1 // CHECK_CORE_AVX2_M32: #define __XSAVEOPT__ 1 // CHECK_CORE_AVX2_M32: #define __XSAVE__ 1 -// CHECK_CORE_AVX2_M32: #define __corei7 1 -// CHECK_CORE_AVX2_M32: #define __corei7__ 1 // CHECK_CORE_AVX2_M32: #define __i386 1 // CHECK_CORE_AVX2_M32: #define __i386__ 1 -// CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1 // CHECK_CORE_AVX2_M32: #define i386 1 // RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \ // RUN: -target i386-unknown-linux \ @@ -566,9 +551,6 @@ // CHECK_CORE_AVX2_M64: #define __XSAVE__ 1 // CHECK_CORE_AVX2_M64: #define __amd64 1 // CHECK_CORE_AVX2_M64: #define __amd64__ 1 -// CHECK_CORE_AVX2_M64: #define __corei7 1 -// CHECK_CORE_AVX2_M64: #define __corei7__ 1 -// CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1 // CHECK_CORE_AVX2_M64: #define __x86_64 1 // CHECK_CORE_AVX2_M64: #define __x86_64__ 1 // @@ -597,11 +579,8 @@ // CHECK_BROADWELL_M32: #define __SSSE3__ 1 // CHECK_BROADWELL_M32: #define __XSAVEOPT__ 1 // CHECK_BROADWELL_M32: #define __XSAVE__ 1 -// CHECK_BROADWELL_M32: #define __corei7 1 -// CHECK_BROADWELL_M32: #define __corei7__ 1 // CHECK_BROADWELL_M32: #define __i386 1 // CHECK_BROADWELL_M32: #define __i386__ 1 -// CHECK_BROADWELL_M32: #define __tune_corei7__ 1 // CHECK_BROADWELL_M32: #define i386 1 // RUN: %clang -march=broadwell -m64 -E -dM %s -o - 2>&1 \ // RUN: -target i386-unknown-linux \ @@ -632,9 +611,6 @@ // CHECK_BROADWELL_M64: #define __XSAVE__ 1 // CHECK_BROADWELL_M64: #define __amd64 1 // CHECK_BROADWELL_M64: #define __amd64__ 1 -// CHECK_BROADWELL_M64: #define __corei7 1 -// CHECK_BROADWELL_M64: #define __corei7__ 1 -// CHECK_BROADWELL_M64: #define __tune_corei7__ 1 // CHECK_BROADWELL_M64: #define __x86_64 1 // CHECK_BROADWELL_M64: #define __x86_64__ 1 // @@ -892,9 +868,6 @@ // CHECK_SKX_M32: #define __XSAVE__ 1 // CHECK_SKX_M32: #define __i386 1 // CHECK_SKX_M32: #define __i386__ 1 -// CHECK_SKX_M32: #define __skx 1 -// CHECK_SKX_M32: #define __skx__ 1 -// CHECK_SKX_M32: #define __tune_skx__ 1 // CHECK_SKX_M32: #define i386 1 // RUN: %clang -march=skylake-avx512 -m64 -E -dM %s -o - 2>&1 \ @@ -936,9 +909,6 @@ // CHECK_SKX_M64: #define __XSAVE__ 1 // CHECK_SKX_M64: #define __amd64 1 // CHECK_SKX_M64: #define __amd64__ 1 -// CHECK_SKX_M64: #define __skx 1 -// CHECK_SKX_M64: #define __skx__ 1 -// CHECK_SKX_M64: #define __tune_skx__ 1 // CHECK_SKX_M64: #define __x86_64 1 // CHECK_SKX_M64: #define __x86_64__ 1 //