Docs for SparseMultiSet
authorMichael Ilseman <milseman@apple.com>
Mon, 21 Jan 2013 21:46:32 +0000 (21:46 +0000)
committerMichael Ilseman <milseman@apple.com>
Mon, 21 Jan 2013 21:46:32 +0000 (21:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173092 91177308-0d34-0410-b5e6-96231b3b80d8

docs/ProgrammersManual.rst

index 8fbd2e142b2fd37d6f156dcfeedf370bc82e8bee..4fc459793301c7aaadfd1a1357810e6698009bc6 100644 (file)
@@ -1052,6 +1052,22 @@ SparseSet is useful for algorithms that need very fast clear/find/insert/erase
 and fast iteration over small sets.  It is not intended for building composite
 data structures.
 
+.. _dss_sparsemultiset:
+
+llvm/ADT/SparseMultiSet.h
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's
+desirable attributes. Like SparseSet, it typically uses a lot of memory, but
+provides operations that are almost as fast as a vector.  Typical keys are
+physical registers, virtual registers, or numbered basic blocks.
+
+SparseMultiSet is useful for algorithms that need very fast
+clear/find/insert/erase of the entire collection, and iteration over sets of
+elements sharing a key. It is often a more efficient choice than using composite
+data structures (e.g. vector-of-vectors, map-of-vectors). It is not intended for
+building composite data structures.
+
 .. _dss_FoldingSet:
 
 llvm/ADT/FoldingSet.h