The current splaying implementation does a bottom up splaying but starting at
the root (should do a top down). It works but performs worst. One example of
this is that while in the implementation described in
http://www.cs.cmu.edu/~sleator/papers/self-adjusting.pdf the root node ends at
most two levels down, in the current implementation it can end at an arbiratry
depth (example in the mailing list). So the property of keeping recently used
nodes up doesn't work.

Interestingly it doesn't hurt performance so much. Aactually it improves the
performance compared to the previous version (previous bottom up
implementation) because of the recursive nature of the former one.

(patch and in depth explanation here)
http://gcc.gnu.org/ml/gcc/2006-11/msg00074.html
http://gcc.gnu.org/ml/gcc/2006-07/msg00210.html


-- 
           Summary: Incorrect splaying that not assures the caching property
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: other
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ian dot blanes at campus dot uab dot es


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30920

Reply via email to