mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23: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)
|
||||
{
|
||||
|
@ -1618,7 +1623,7 @@ void Thread::idle_loop() {
|
|||
if (bestSp)
|
||||
{
|
||||
sp = bestSp;
|
||||
|
||||
|
||||
// Recheck the conditions under lock protection
|
||||
Threads.mutex.lock();
|
||||
sp->mutex.lock();
|
||||
|
|
|
@ -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;
|
||||
|
@ -184,7 +183,7 @@ void Thread::split(Position& pos, Stack* ss, Value alpha, Value beta, Value* bes
|
|||
|
||||
Thread* slave;
|
||||
|
||||
while ( sp.slavesCount < MAX_SLAVES_PER_SPLITPOINT
|
||||
while ( sp.slavesCount < MAX_SLAVES_PER_SPLITPOINT
|
||||
&& (slave = Threads.available_slave(this)) != NULL)
|
||||
{
|
||||
sp.slavesMask.set(slave->idx);
|
||||
|
|
|
@ -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