]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Store Eval::Info in Search::Stack
[stockfish] / src / search.cpp
index 0bd1de4e57246b49e5e11a9ead90308a7aac2557..438c2d6fe858d85e1c72f1ed37c0ec73b74f48ce 100644 (file)
@@ -489,7 +489,6 @@ namespace {
 
     Move movesSearched[64];
     StateInfo st;
-    Eval::Info ei;
     const TTEntry *tte;
     SplitPoint* splitPoint;
     Key posKey;
@@ -524,7 +523,6 @@ namespace {
     bestValue = -VALUE_INFINITE;
     ss->currentMove = threatMove = (ss+1)->excludedMove = bestMove = MOVE_NONE;
     ss->ply = (ss-1)->ply + 1;
-    ss->ei = &ei;
     (ss+1)->skipNullMove = false; (ss+1)->reduction = DEPTH_ZERO;
     (ss+2)->killers[0] = (ss+2)->killers[1] = MOVE_NONE;
 
@@ -594,7 +592,7 @@ namespace {
         // Never assume anything on values stored in TT
         if (  (ss->staticEval = eval = tte->eval_value()) == VALUE_NONE
             ||(ss->evalMargin = tte->eval_margin()) == VALUE_NONE)
-            eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ei);
+            eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ss->ei);
 
         // Can ttValue be used as a better position evaluation?
         if (ttValue != VALUE_NONE)
@@ -604,7 +602,7 @@ namespace {
     }
     else
     {
-        eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ei);
+        eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ss->ei);
         TT.store(posKey, VALUE_NONE, BOUND_NONE, DEPTH_NONE, MOVE_NONE,
                  ss->staticEval, ss->evalMargin);
     }
@@ -1121,7 +1119,6 @@ split_point_start: // At split points actual search starts from here
     assert(depth <= DEPTH_ZERO);
 
     StateInfo st;
-    Eval::Info ei;
     const TTEntry* tte;
     Key posKey;
     Move ttMove, move, bestMove;
@@ -1178,10 +1175,10 @@ split_point_start: // At split points actual search starts from here
             // Never assume anything on values stored in TT
             if (  (ss->staticEval = bestValue = tte->eval_value()) == VALUE_NONE
                 ||(ss->evalMargin = tte->eval_margin()) == VALUE_NONE)
-                ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ei);
+                ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ss->ei);
         }
         else
-            ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ei);
+            ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ss->ei);
 
         // Stand pat. Return immediately if static value is at least beta
         if (bestValue >= beta)