• Alexandre Duret-Lutz's avatar
    [buddy] Reduce the size of bddNode to improve cache efficiency. · e7a46e10
    Alexandre Duret-Lutz authored
    The unicity table was mixed with the bddNode table for now
    apparent reason.  After the hash of some node is computed,
    bddnodes[hash] did only contain some random node (not the one
    looked for) whose .hash member would point to the actual node with
    this hash.  So that's a two step lookup.  With this patch, we sill
    have a two step lookup, but the .hash member have been moved to a
    separate array.  A consequence is that bddNode is now 16-byte long
    (instead of 20) so it will never span across two cache lines.
    
    * src/kernel.h (bddNode): Remove the hash member, and move it...
    (bddhash): ... as this new separate table.
    * src/kernel.c, src/reorder.c: Adjust all code.
    e7a46e10
kernel.h 8.02 KB