From: Fabian Fichter Date: Sun, 11 Nov 2018 21:18:28 +0000 (+0100) Subject: Speed up check info calculation X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=c76c427821870c48fb5f810366a84e7b18d6af90;p=fairystockfish.git Speed up check info calculation No functional change. --- diff --git a/src/position.cpp b/src/position.cpp index ecf827c..67c38d0 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -470,7 +470,8 @@ void Position::set_check_info(StateInfo* si) const { Square ksq = count(~sideToMove) ? square(~sideToMove) : SQ_NONE; - for (PieceType pt = PAWN; pt < KING; ++pt) + // For unused piece types, the check squares are left uninitialized + for (PieceType pt : piece_types()) si->checkSquares[pt] = ksq != SQ_NONE ? attacks_from(~sideToMove, pt, ksq) : 0; si->checkSquares[KING] = 0; si->shak = si->checkersBB & (byTypeBB[KNIGHT] | byTypeBB[ROOK] | byTypeBB[BERS]); @@ -651,7 +652,7 @@ Bitboard Position::slider_blockers(Bitboard sliders, Square s, Bitboard& pinners Bitboard blockers = 0; pinners = 0; - if (s == SQ_NONE) + if (s == SQ_NONE || !sliders) return blockers; // Snipers are sliders that attack 's' when a piece is removed