mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-21 17:46:26 +08:00
Move CheckInfo under StateInfo
This greately simplifies usage because hides to the search the implementation specific CheckInfo. This is based on the work done by Marco in pull request #716, implementing on top of it the ideas in the discussion: caching the calls to slider_blockers() in the CheckInfo structure, and simplifying the slider_blockers() function by removing its first parameter. Compared to master, bench is identical but the number of calls to slider_blockers() during bench goes down from 22461515 to 18853422, hopefully being a little bit faster overall. archlinux, gcc-6 make profile-build ARCH=x86-64-bmi2 50 runs each bench: base = 2356320 +/- 981 test = 2403811 +/- 981 diff = 47490 +/- 1828 speedup = 0.0202 P(speedup > 0) = 1.0000 perft 6: base = 175498484 +/- 429925 test = 183997959 +/- 429925 diff = 8499474 +/- 469401 speedup = 0.0484 P(speedup > 0) = 1.0000 perft 7 (but only 10 runs): base = 185403228 +/- 468705 test = 188777591 +/- 468705 diff = 3374363 +/- 476687 speedup = 0.0182 P(speedup > 0) = 1.0000 $ ./pyshbench ../Stockfish/master ../Stockfish/test 20 run base test diff ... base = 2501728 +/- 182034 test = 2532997 +/- 182034 diff = 31268 +/- 5116 speedup = 0.0125 P(speedup > 0) = 1.0000 No functional change.
This commit is contained in:
committed by
Marco Costalba
parent
4c5cbb1b14
commit
805afcbf3d
@@ -75,7 +75,7 @@ namespace {
|
||||
while (is >> token && (m = UCI::to_move(pos, token)) != MOVE_NONE)
|
||||
{
|
||||
States->push_back(StateInfo());
|
||||
pos.do_move(m, States->back(), pos.gives_check(m, CheckInfo(pos)));
|
||||
pos.do_move(m, States->back(), pos.gives_check(m));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user