Home | History | Annotate | Download | only in ADT

Lines Matching defs:SparseSet

1 //===--- llvm/ADT/SparseSet.h - Sparse set ----------------------*- C++ -*-===//
10 // This file defines the SparseSet class derived from the version described in
30 /// SparseSetValTraits - Objects in a SparseSet are identified by keys that can
33 /// long as an index can still be derived from the value. SparseSet never
36 /// object. To compute the index from a key, SparseSet uses a separate
39 /// A simple type declaration, SparseSet<Type>, handles these cases:
43 /// The type declaration SparseSet<Type, UnaryFunction> handles:
79 /// SparseSet - Fast set implmentation for objects that can be identified by
82 /// SparseSet allocates memory proportional to the size of the key universe, so
86 /// Compared to DenseSet and DenseMap, SparseSet provides constant-time fast
93 /// Compared to BitVector, SparseSet<unsigned> uses 8x-40x more memory, but
97 /// SparseSet contains a dense vector holding all the objects and a sparse
120 class SparseSet {
131 SparseSet(const SparseSet&) LLVM_DELETED_FUNCTION;
132 SparseSet &operator=(const SparseSet&) LLVM_DELETED_FUNCTION;
141 SparseSet() : Sparse(0), Universe(0) {}
142 ~SparseSet() { free(Sparse); }
227 return const_cast<SparseSet*>(this)->findIndex(KeyIndexOf(Key));
269 /// for (SparseSet::iterator I = Set.begin(); I != Set.end();)