[llvm-commits] [llvm] r46224 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h

Chris Lattner clattner at apple.com
Mon Jan 21 14:36:05 PST 2008


On Jan 21, 2008, at 2:33 PM, Ted Kremenek wrote:
> URL: http://llvm.org/viewvc/llvm-project?rev=46224&view=rev
> Log:
> Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based  
> scheme. The
> problem was that we previously hashed based on the pointers of the  
> left and
> right children, but this is bogus: we can easily have different  
> trees that
> represent the same set. Now we use a hashing based scheme that  
> compares the
> *contents* of the trees, but not without having to do a full scan of  
> a tree. The
> only caveat is that with hashing is that we may have collisions,  
> which result in
> two different trees being falsely labeled as equivalent. If this  
> becomes a
> problem, we can add extra data to the profile to hopefully resolve  
> most
> collisions.

I don't think this works Ted: collisions *will* cause the tree to be  
corrupt, and you can't guarantee that they won't happen.  I don't  
think this is valid for all clients of the data structure.

-Chris




More information about the llvm-commits mailing list