From 287b46aa633cb61762216cb1aed1b246d0ed0802 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 5 Jun 2010 09:40:47 +0200 Subject: [PATCH] Avoid calling evaluate() while razoring Micro optimization that gives a 0.5% speed improvment No functional change. Signed-off-by: Marco Costalba --- src/search.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/search.cpp b/src/search.cpp index 65395b4e..5a2495d4 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1148,6 +1148,10 @@ namespace { && !value_is_mate(beta) && !pos.has_pawn_on_7th(pos.side_to_move())) { + // Pass ss->eval to qsearch() and avoid an evaluate call + if (!tte || tte->static_value() == VALUE_NONE) + TT.store(posKey, ss->eval, VALUE_TYPE_EXACT, Depth(-127*OnePly), MOVE_NONE, ss->eval, ei.kingDanger[pos.side_to_move()]); + Value rbeta = beta - razor_margin(depth); Value v = qsearch(pos, ss, rbeta-1, rbeta, Depth(0)); if (v < rbeta) -- 2.39.2