From: John W. <joe...@us...> - 2005-01-31 10:23:54
|
Update of /cvsroot/javabdd/JavaBDD/buddy/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27783/buddy/src Modified Files: kernel.c Log Message: Special optimization in makenode search when using small nodes. Index: kernel.c =================================================================== RCS file: /cvsroot/javabdd/JavaBDD/buddy/src/kernel.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** kernel.c 31 Jan 2005 10:03:20 -0000 1.6 --- kernel.c 31 Jan 2005 10:23:39 -0000 1.7 *************** *** 1366,1369 **** --- 1366,1387 ---- res = HASH(hash); + #if defined(SMALL_NODES) + if (res != 0) { + int m1 = (level << LEV_LPOS) | low; + int m2 = ((level << (LEV_HPOS-LEV_LBITS)) & LEV_HMASK) | high; + do { + if (bddnodes[res].low_llev == m1 && bddnodes[res].high_hlev == m2) { + #ifdef CACHESTATS + bddcachestats.uniqueHit++; + #endif + return res; + } + res = NEXT(res); + #ifdef CACHESTATS + bddcachestats.uniqueChain++; + #endif + } while (res != 0); + } + #else // SMALL_NODES while(res != 0) { *************** *** 1381,1384 **** --- 1399,1403 ---- #endif } + #endif // SMALL_NODES /* No existing node -> build one */ |