Modified node creation of ImutAVLTree to do a hash lookup for an existing
authorTed Kremenek <kremenek@apple.com>
Mon, 4 Feb 2008 21:15:24 +0000 (21:15 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 4 Feb 2008 21:15:24 +0000 (21:15 +0000)
commitf357afb4045307a24c52606e267385148367a7a3
tree724a4c59d9803084e7b5d0c2769d45c7a66b635e
parent26e3c445fc844b2f241dfdde9ce7e0602ba13cc4
Modified node creation of ImutAVLTree to do a hash lookup for an existing
node in the FoldingSet of nodes held by the Factory object.  If we
we find a node with a matching hash, we do a full structural comparison.
Nodes are also now inserted into the FoldingSet only when we mark them
Immutable, as their children can change during intermediate-rebalancing.

The 'Profile' method for ImutAVLTree is no longer used when looking up
existing ImutAVLTrees with a given set of contents; instead the Profile method
is used by other clients that wish to insert such a tree into a folding set.
This means that we are not using FoldingSet in ImutAVLTreeFactory in the way
it was intended, but instead are using it as an opaque hashtable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46717 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ADT/ImmutableSet.h