From: Joost VandeVondele Date: Sun, 24 Jun 2018 16:14:48 +0000 (+0200) Subject: Remove unneeded branch X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=33b2f6398c419e0c906d58314ada408b460e635c Remove unneeded branch Storing unconditionally the current generation and bound is equivalent to master. Part of the condition was added as a speed optimization in #429. Here the branch is fully eliminated. passed STC single-threaded: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 73515 W: 16378 L: 16359 D: 40778 http://tests.stockfishchess.org/tests/view/5b2fc38c0ebc5902b2e57fd5 passed STC multi-threaded: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 63725 W: 12916 L: 12874 D: 37935 http://tests.stockfishchess.org/tests/view/5b307b8f0ebc5902b2e5895f The multithreaded test was run after a plausible suggestion by @mstembera that the effect of this could be larger with many cores. The result seems to indicate this doesn't really matter on the 8core architecture abundantly available on fishtest. No functional change --- diff --git a/src/tt.cpp b/src/tt.cpp index 26791809..98d59365 100644 --- a/src/tt.cpp +++ b/src/tt.cpp @@ -119,8 +119,7 @@ TTEntry* TranspositionTable::probe(const Key key, bool& found) const { for (int i = 0; i < ClusterSize; ++i) if (!tte[i].key16 || tte[i].key16 == key16) { - if ((tte[i].genBound8 & 0xFC) != generation8 && tte[i].key16) - tte[i].genBound8 = uint8_t(generation8 | tte[i].bound()); // Refresh + tte[i].genBound8 = uint8_t(generation8 | tte[i].bound()); // Refresh return found = (bool)tte[i].key16, &tte[i]; }