From b9319c4fa4f42438f484d144be9a1306765cf998 Mon Sep 17 00:00:00 2001 From: Sebastian Buchwald Date: Thu, 31 Aug 2023 21:56:34 +0200 Subject: [PATCH] Cleanup code after dropping ICC support in favor of ICX The commit removes all uses of ICC's __INTEL_COMPILER macro and other references to ICC. It also adds ICX info to the compiler command and fixes two typos in Makefile's help output. closes https://github.com/official-stockfish/Stockfish/pull/4769 No functional change --- src/Makefile | 4 ++-- src/bitboard.h | 4 ++-- src/misc.cpp | 29 +++++++++++------------------ src/types.h | 19 ++++++++++--------- 4 files changed, 25 insertions(+), 31 deletions(-) diff --git a/src/Makefile b/src/Makefile index d6443845..f5a420b7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -804,8 +804,8 @@ help: @echo "" @echo "Supported compilers:" @echo "" - @echo "gcc > Gnu compiler (default)" - @echo "mingw > Gnu compiler with MinGW under Windows" + @echo "gcc > GNU compiler (default)" + @echo "mingw > GNU compiler with MinGW under Windows" @echo "clang > LLVM Clang compiler" @echo "icx > Intel oneAPI DPC++/C++ Compiler" @echo "ndk > Google NDK to cross-compile for Android" diff --git a/src/bitboard.h b/src/bitboard.h index f9175333..c05b6e3f 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -262,7 +262,7 @@ inline int popcount(Bitboard b) { union { Bitboard bb; uint16_t u[4]; } v = { b }; return PopCnt16[v.u[0]] + PopCnt16[v.u[1]] + PopCnt16[v.u[2]] + PopCnt16[v.u[3]]; -#elif defined(_MSC_VER) || defined(__INTEL_COMPILER) +#elif defined(_MSC_VER) return (int)_mm_popcnt_u64(b); @@ -276,7 +276,7 @@ inline int popcount(Bitboard b) { /// lsb() and msb() return the least/most significant bit in a non-zero bitboard -#if defined(__GNUC__) // GCC, Clang, ICC +#if defined(__GNUC__) // GCC, Clang, ICX inline Square lsb(Bitboard b) { assert(b); diff --git a/src/misc.cpp b/src/misc.cpp index a72a1c13..83ea8e10 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -193,22 +193,21 @@ std::string compiler_info() { /// Predefined macros hell: /// -/// __GNUC__ Compiler is gcc, Clang or Intel on Linux -/// __INTEL_COMPILER Compiler is Intel -/// _MSC_VER Compiler is MSVC or Intel on Windows -/// _WIN32 Building on Windows (any) -/// _WIN64 Building on Windows 64 bit +/// __GNUC__ Compiler is GCC, Clang or ICX +/// __clang__ Compiler is Clang or ICX +/// __INTEL_LLVM_COMPILER Compiler is ICX +/// _MSC_VER Compiler is MSVC +/// _WIN32 Building on Windows (any) +/// _WIN64 Building on Windows 64 bit std::string compiler = "\nCompiled by "; - #ifdef __clang__ + #if defined(__INTEL_LLVM_COMPILER) + compiler += "ICX "; + compiler += stringify(__INTEL_LLVM_COMPILER); + #elif defined(__clang__) compiler += "clang++ "; compiler += make_version_string(__clang_major__, __clang_minor__, __clang_patchlevel__); - #elif __INTEL_COMPILER - compiler += "Intel compiler "; - compiler += "(version "; - compiler += stringify(__INTEL_COMPILER) " update " stringify(__INTEL_COMPILER_UPDATE); - compiler += ")"; #elif _MSC_VER compiler += "MSVC "; compiler += "(version "; @@ -425,13 +424,7 @@ void prefetch(void*) {} void prefetch(void* addr) { -# if defined(__INTEL_COMPILER) - // This hack prevents prefetches from being optimized away by - // Intel compiler. Both MSVC and gcc seem not be affected by this. - __asm__ (""); -# endif - -# if defined(__INTEL_COMPILER) || defined(_MSC_VER) +# if defined(_MSC_VER) _mm_prefetch((char*)addr, _MM_HINT_T0); # else __builtin_prefetch(addr); diff --git a/src/types.h b/src/types.h index bb319c2b..f81d30fe 100644 --- a/src/types.h +++ b/src/types.h @@ -48,11 +48,12 @@ /// Predefined macros hell: /// -/// __GNUC__ Compiler is gcc, Clang or Intel on Linux -/// __INTEL_COMPILER Compiler is Intel -/// _MSC_VER Compiler is MSVC or Intel on Windows -/// _WIN32 Building on Windows (any) -/// _WIN64 Building on Windows 64 bit +/// __GNUC__ Compiler is GCC, Clang or ICX +/// __clang__ Compiler is Clang or ICX +/// __INTEL_LLVM_COMPILER Compiler is ICX +/// _MSC_VER Compiler is MSVC +/// _WIN32 Building on Windows (any) +/// _WIN64 Building on Windows 64 bit #if defined(__GNUC__ ) && (__GNUC__ < 9 || (__GNUC__ == 9 && __GNUC_MINOR__ <= 2)) && defined(_WIN32) && !defined(__clang__) #define ALIGNAS_ON_STACK_VARIABLES_BROKEN @@ -65,12 +66,12 @@ # define IS_64BIT #endif -#if defined(USE_POPCNT) && (defined(__INTEL_COMPILER) || defined(_MSC_VER)) -# include // Intel and Microsoft header for _mm_popcnt_u64() +#if defined(USE_POPCNT) && defined(_MSC_VER) +# include // Microsoft header for _mm_popcnt_u64() #endif -#if !defined(NO_PREFETCH) && (defined(__INTEL_COMPILER) || defined(_MSC_VER)) -# include // Intel and Microsoft header for _mm_prefetch() +#if !defined(NO_PREFETCH) && defined(_MSC_VER) +# include // Microsoft header for _mm_prefetch() #endif #if defined(USE_PEXT) -- 2.39.2