LLVM  16.0.0git
Classes | Namespaces
SparseMultiSet.h File Reference
#include "llvm/ADT/identity.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SparseSet.h"
#include <cassert>
#include <cstdint>
#include <cstdlib>
#include <iterator>
#include <limits>
#include <utility>
Include dependency graph for SparseMultiSet.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >
 Fast multiset implementation for objects that can be identified by small unsigned keys. More...
class  llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::iterator_base< SMSPtrTy >
 Our iterators are iterators over the collection of objects that share a key. More...


 This is an optimization pass for GlobalISel generic memory operations.

Detailed Description

This file defines the SparseMultiSet class, which adds multiset behavior to the SparseSet.

A sparse multiset holds a small number of objects identified by integer keys from a moderately sized universe. The sparse multiset uses more memory than other containers in order to provide faster operations. Any key can map to multiple values. A SparseMultiSetNode class is provided, which serves as a convenient base class for the contents of a SparseMultiSet.

Definition in file SparseMultiSet.h.