mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 00:56:39 +08:00
Revert setting a flag when TT value equals static evaluation
Strangely enough it seems that optimization doesn't work. After 760 games at 1+0: +155 -184 =421 -13 ELO Probably the overhead, although small, for setting the flag is not compensated by the saved evaluation call. This could be due to the fact that after a TT value is stored, if and when we hit the position again the stored TT value is actually used as a cut-off so that we don't need to go on with another search and evaluation is avoided in any case. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -1455,7 +1455,7 @@ namespace {
|
||||
if (isCheck)
|
||||
staticValue = -VALUE_INFINITE;
|
||||
|
||||
else if (tte && (tte->type() == VALUE_TYPE_EVAL || tte->staticValue()))
|
||||
else if (tte && tte->type() == VALUE_TYPE_EVAL)
|
||||
{
|
||||
// Use the cached evaluation score if possible
|
||||
assert(tte->value() == evaluate(pos, ei, threadID));
|
||||
@@ -1569,21 +1569,10 @@ namespace {
|
||||
if (!pvNode)
|
||||
{
|
||||
Depth d = (depth == Depth(0) ? Depth(0) : Depth(-1));
|
||||
Value v = value_to_tt(bestValue, ply);
|
||||
TTEntry* e;
|
||||
if (bestValue < beta)
|
||||
e = TT.store(pos, v, d, MOVE_NONE, VALUE_TYPE_UPPER);
|
||||
TT.store(pos, value_to_tt(bestValue, ply), d, MOVE_NONE, VALUE_TYPE_UPPER);
|
||||
else
|
||||
e = TT.store(pos, v, d, MOVE_NONE, VALUE_TYPE_LOWER);
|
||||
|
||||
assert(e && e == TT.retrieve(pos));
|
||||
assert(!e->staticValue());
|
||||
|
||||
// If the just stored value happens to be equal to the static evaluation
|
||||
// score then set the flag, so to avoid calling evaluation() next time we
|
||||
// hit this position.
|
||||
if (staticValue == v && !ei.futilityMargin)
|
||||
e->setStaticValue();
|
||||
TT.store(pos, value_to_tt(bestValue, ply), d, MOVE_NONE, VALUE_TYPE_LOWER);
|
||||
}
|
||||
|
||||
// Update killers only for good check moves
|
||||
|
||||
Reference in New Issue
Block a user