diff options
Diffstat (limited to 'src/searchsup.c')
| -rw-r--r-- | src/searchsup.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/searchsup.c b/src/searchsup.c index efdde67..8bc74ef 100644 --- a/src/searchsup.c +++ b/src/searchsup.c @@ -626,13 +626,20 @@ Return value: ASSERT(uDepth >= (IID_R_FACTOR + ONE_PLY)); // - // Compute next depth, possibly recurse + // Compute next depth. // + // This used to recurse here first (call itself at this same + // ctx->uPly, before the loop below), on the theory that an even + // shallower rescore's *side effects* -- hash/killer/history table + // population -- would help the loop below's own -Search() calls + // find cutoffs faster. Measured (see lmr_testing/RESULTS.md): removing + // it entirely produced a bit-identical result on all three test + // suites (ecm_ringers/confident_quick/hard_quick). Its own writes to + // iValue were always fully overwritten by this same call's loop + // right after it (same ctx->uPly, same move-stack range), so it had + // no way to help other than those side effects, and empirically it + // wasn't -- just wasted nodes. Removed. uDepth -= (IID_R_FACTOR + ONE_PLY); - if (uDepth >= (IID_R_FACTOR + ONE_PLY)) - { - (void)RescoreMovesViaSearch(ctx, uDepth, iAlpha, iBeta); - } ASSERT(uDepth < MAX_DEPTH_PER_SEARCH); // |
