Skip to content

Commit

Permalink
Cleanup code after dropping ICC support in favor of ICX
Browse files Browse the repository at this point in the history
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 #4769

No functional change
  • Loading branch information
UniQP authored and Disservin committed Sep 11, 2023
1 parent 3d1b067 commit b9319c4
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 31 deletions.
4 changes: 2 additions & 2 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions src/bitboard.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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);
Expand Down
29 changes: 11 additions & 18 deletions src/misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 ";
Expand Down Expand Up @@ -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);
Expand Down
19 changes: 10 additions & 9 deletions src/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -65,12 +66,12 @@
# define IS_64BIT
#endif

#if defined(USE_POPCNT) && (defined(__INTEL_COMPILER) || defined(_MSC_VER))
# include <nmmintrin.h> // Intel and Microsoft header for _mm_popcnt_u64()
#if defined(USE_POPCNT) && defined(_MSC_VER)
# include <nmmintrin.h> // Microsoft header for _mm_popcnt_u64()
#endif

#if !defined(NO_PREFETCH) && (defined(__INTEL_COMPILER) || defined(_MSC_VER))
# include <xmmintrin.h> // Intel and Microsoft header for _mm_prefetch()
#if !defined(NO_PREFETCH) && defined(_MSC_VER)
# include <xmmintrin.h> // Microsoft header for _mm_prefetch()
#endif

#if defined(USE_PEXT)
Expand Down

0 comments on commit b9319c4

Please sign in to comment.