mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 00:26: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)
|
||||
_mm_prefetch((char*)first_entry(posKey), _MM_HINT_T0);
|
||||
#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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user