mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Compute SplitPoint::spLevel on the fly
And retire a redundant field. This is important also from a concept point of view becuase we want to keep SMP structures as simple as possible with the only strictly necessary data. Verified with dbg_hit_on(sp->spLevel != level) that the values are 100% the same out of more 50K samples. No functional change.
This commit is contained in:
parent
6656ed8904
commit
dccaa145d2
3 changed files with 8 additions and 5 deletions
|
@ -1604,7 +1604,12 @@ void Thread::idle_loop() {
|
|||
&& sp->slavesCount < MAX_SLAVES_PER_SPLITPOINT
|
||||
&& available_to(Threads[i]))
|
||||
{
|
||||
int score = sp->spLevel * 256 * 256 + sp->slavesCount * 256 - sp->depth * 1;
|
||||
// Compute the recursive split points chain size
|
||||
int level = -1;
|
||||
for (SplitPoint* spp = Threads[i]->activeSplitPoint; spp; spp = spp->parentSplitPoint)
|
||||
level++;
|
||||
|
||||
int score = level * 256 * 256 + sp->slavesCount * 256 - sp->depth * 1;
|
||||
|
||||
if (score < bestScore)
|
||||
{
|
||||
|
|
|
@ -154,7 +154,6 @@ void Thread::split(Position& pos, Stack* ss, Value alpha, Value beta, Value* bes
|
|||
|
||||
sp.masterThread = this;
|
||||
sp.parentSplitPoint = activeSplitPoint;
|
||||
sp.spLevel = activeSplitPoint ? activeSplitPoint->spLevel + 1 : 0;
|
||||
sp.slavesMask = 0, sp.slavesMask.set(idx);
|
||||
sp.slavesCount = 1;
|
||||
sp.depth = depth;
|
||||
|
|
|
@ -73,7 +73,6 @@ struct SplitPoint {
|
|||
const Position* pos;
|
||||
Search::Stack* ss;
|
||||
Thread* masterThread;
|
||||
int spLevel;
|
||||
Depth depth;
|
||||
Value beta;
|
||||
int nodeType;
|
||||
|
|
Loading…
Add table
Reference in a new issue