mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 08:36:33 +08:00
Avoid Intel compiler optimizes away prefetching
Without this hack Intel compiler happily optimizes away the gcc builtin call. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -181,7 +181,10 @@ void TranspositionTable::prefetch(const Key posKey) const {
|
|||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
_mm_prefetch((char*)first_entry(posKey), _MM_HINT_T0);
|
_mm_prefetch((char*)first_entry(posKey), _MM_HINT_T0);
|
||||||
#else
|
#else
|
||||||
__builtin_prefetch((const void*)first_entry(posKey), 0, 3);
|
// We need to force an asm volatile here because gcc builtin
|
||||||
|
// is optimized away by Intel compiler.
|
||||||
|
char* addr = (char*)first_entry(posKey);
|
||||||
|
asm volatile("prefetcht0 %0" :: "m" (addr));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user