mirror of
https://github.com/sockspls/badfish
synced 2025-05-03 10:09:35 +00: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:
parent
60b5da4cc8
commit
f4140ecc0c
1 changed files with 4 additions and 1 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue