LLVM 19.0.0git
Classes | Namespaces
SparseMultiSet.h File Reference

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

#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>

Go to the source code of this file.

Classes

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...
 

Namespaces

namespace  llvm
 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.