summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/searchsup.c17
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);
//