Move CheckInfo under StateInfo
authorSt├ęphane Nicolet <cassio@free.fr>
Sun, 3 Jul 2016 08:35:44 +0000 (10:35 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 27 Aug 2016 07:53:26 +0000 (09:53 +0200)
commit805afcbf3d5db39c85b759232cfb99ab0a250311
tree4543fd67b2299230d39555ec829e19fe00fb472a
parent4c5cbb1b14b283679e3e0096b7973c97b75088f3
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.
src/evaluate.cpp
src/movegen.cpp
src/position.cpp
src/position.h
src/search.cpp
src/syzygy/tbprobe.cpp
src/uci.cpp