From: Fabian Fichter Date: Sat, 13 Jun 2020 11:31:21 +0000 (+0200) Subject: Avoid unnecessary recomputations in CTF bonus X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=1c77fb569e026d22c4a55b8d2f02b86601c8f962;p=fairystockfish.git Avoid unnecessary recomputations in CTF bonus No funtional change. --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index f471bb2..a30d93c 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -924,6 +924,10 @@ namespace { Bitboard onHold = 0; Bitboard onHold2 = 0; Bitboard processed = 0; + Bitboard blocked = pos.pieces(Us, PAWN) | attackedBy[Them][ALL_PIECES]; + Bitboard doubleBlocked = attackedBy2[Them] + | (pos.pieces(Us, PAWN) & (shift(pos.pieces()) | attackedBy[Them][ALL_PIECES])) + | (pawn_attacks_bb(pos.pieces(Them, PAWN) & pe->pawn_attacks(Them))); // Traverse all paths of the CTF pieces to the CTF targets. // Put squares that are attacked or occupied on hold for one iteration. for (int dist = 0; (ctfPieces || onHold || onHold2) && (ctfTargets & ~processed); dist++) @@ -941,8 +945,8 @@ namespace { Square s = pop_lsb(¤t); Bitboard attacks = ( (PseudoAttacks[Us][ptCtf][s] & pos.pieces()) | (PseudoMoves[Us][ptCtf][s] & ~pos.pieces())) & ~processed & pos.board_bb(); - ctfPieces |= attacks & ~(pos.pieces(Us, PAWN) | attackedBy[Them][ALL_PIECES]); - onHold |= attacks & ~((pos.pieces(Us, PAWN) & (shift(pos.pieces()) | attackedBy[Them][ALL_PIECES])) | attackedBy2[Them] | (pawn_attacks_bb(pos.pieces(Them, PAWN) & pe->pawn_attacks(Them)))); + ctfPieces |= attacks & ~blocked; + onHold |= attacks & ~doubleBlocked; onHold2 |= attacks; } }