Retire ss->bestMove

And introduce SPlitPoint bestMove to pass back the
best move after a split point.

This allow to define as const the search stack passed
to split.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2012-02-20 14:21:25 +01:00
parent 43f84efa15
commit 2608b9249d
4 changed files with 33 additions and 30 deletions

View File

@@ -34,9 +34,9 @@ const int MAX_SPLITPOINTS_PER_THREAD = 8;
struct SplitPoint {
// Const data after splitPoint has been setup
SplitPoint* parent;
// Const data after split point has been setup
const Position* pos;
const Search::Stack* ss;
Depth depth;
Value beta;
int nodeType;
@@ -45,7 +45,8 @@ struct SplitPoint {
// Const pointers to shared data
MovePicker* mp;
Search::Stack* ss;
SplitPoint* parent;
// Shared data
Lock lock;
@@ -53,6 +54,7 @@ struct SplitPoint {
volatile int64_t nodes;
volatile Value alpha;
volatile Value bestValue;
volatile Move bestMove;
volatile int moveCount;
volatile bool cutoff;
};
@@ -116,7 +118,7 @@ public:
const std::set<Move>& = std::set<Move>(), bool async = false);
template <bool Fake>
Value split(Position& pos, Search::Stack* ss, Value alpha, Value beta, Value bestValue,
Value split(Position& pos, Search::Stack* ss, Value alpha, Value beta, Value bestValue, Move* bestMove,
Depth depth, Move threatMove, int moveCount, MovePicker* mp, int nodeType);
private:
friend struct Thread;