1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00

Moving downward splay updates to after side tree linkage, allowing the optimiser to do a better job. produces about 10% speedup: xc/release/djbench -x 1234 --sshift 8 mvff

Copied from Perforce
 Change: 184445
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Brooksby 2014-02-22 19:45:04 +00:00
parent ee50a7703d
commit 9d3bbb41dd

View file

@ -295,8 +295,8 @@ static Compare SplaySplit(Tree *nodeReturn,
goto assemble;
}
TreeRotateRight(&node);
tree->updateNode(tree, TreeRight(node));
SplayLinkRight(&node, &rightFirst);
tree->updateNode(tree, TreeRight(rightFirst));
break;
case CompareGREATER: /* zig-zag */
@ -329,8 +329,8 @@ static Compare SplaySplit(Tree *nodeReturn,
goto assemble;
}
TreeRotateLeft(&node);
tree->updateNode(tree, TreeLeft(node));
SplayLinkLeft(&node, &leftLast);
tree->updateNode(tree, TreeLeft(leftLast));
break;
case CompareLESS: /* zag-zig */
@ -627,7 +627,6 @@ static Tree SplayTreeSuccessor(SplayTree tree) {
* <design/splay/#impl.neighbours>.
*/
Bool SplayTreeNeighbours(Tree *leftReturn, Tree *rightReturn,
SplayTree tree, TreeKey key)
{