mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Reduce stack usage
Shrink dimensions of the biggest stack consumers arrays. In particular movesSearched[] can be safely shrinked without any impact on strenght or risk of crashing. Also MAX_PLY can be reverted to 100 with almost no impact so to limit search recursion and hence stack allocation. A different case is for MAX_MOVES (used by Movepicker's moves[]), because we know that do exsist some artificial position with about 220 legal moves, so in those cases SF will crash. Anyhow these cases are never found in games. An open risk remains perft, especially run above handcrafted positions. This patch originates from a report by Daylen that found SF crashing on his Mac OS X 10.7.3 while in deep analysys on the following position: 8/3Q1pk1/5p2/4r3/5K2/8/8/8 w - - 0 1 No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
e0cae4bef8
commit
0049d3f337
2 changed files with 4 additions and 4 deletions
|
@ -531,7 +531,7 @@ namespace {
|
|||
assert((alpha == beta - 1) || PvNode);
|
||||
assert(depth > DEPTH_ZERO);
|
||||
|
||||
Move movesSearched[MAX_MOVES];
|
||||
Move movesSearched[64];
|
||||
StateInfo st;
|
||||
const TTEntry *tte;
|
||||
Key posKey;
|
||||
|
@ -944,7 +944,7 @@ split_point_start: // At split points actual search starts from here
|
|||
}
|
||||
|
||||
ss->currentMove = move;
|
||||
if (!SpNode && !captureOrPromotion)
|
||||
if (!SpNode && !captureOrPromotion && playedMoveCount < 64)
|
||||
movesSearched[playedMoveCount++] = move;
|
||||
|
||||
// Step 14. Make the move
|
||||
|
|
|
@ -79,8 +79,8 @@ const bool Is64Bit = false;
|
|||
typedef uint64_t Key;
|
||||
typedef uint64_t Bitboard;
|
||||
|
||||
const int MAX_MOVES = 256;
|
||||
const int MAX_PLY = 256;
|
||||
const int MAX_MOVES = 192;
|
||||
const int MAX_PLY = 100;
|
||||
const int MAX_PLY_PLUS_2 = MAX_PLY + 2;
|
||||
|
||||
const Bitboard FileABB = 0x0101010101010101ULL;
|
||||
|
|
Loading…
Add table
Reference in a new issue