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

Go to the source code of this file.


struct  llvm::SparseSetValTraits< ValueT >
 SparseSetValTraits - Objects in a SparseSet are identified by keys that can be uniquely converted to a small integer less than the set's universe. More...
struct  llvm::SparseSetValFunctor< KeyT, ValueT, KeyFunctorT >
 SparseSetValFunctor - Helper class for selecting SparseSetValTraits. More...
struct  llvm::SparseSetValFunctor< KeyT, KeyT, KeyFunctorT >
 SparseSetValFunctor<KeyT, KeyT> - Helper class for the common case of identity key/value sets. More...
class  llvm::SparseSet< ValueT, KeyFunctorT, SparseT >
 SparseSet - Fast set implementation for objects that can be identified by small unsigned keys. More...


 This is an optimization pass for GlobalISel generic memory operations.

Detailed Description

This file defines the SparseSet class derived from the version described in Briggs, Torczon, "An efficient representation for sparse sets", ACM Letters on Programming Languages and Systems, Volume 2 Issue 1-4, March-Dec. 1993.

A sparse set holds a small number of objects identified by integer keys from a moderately sized universe. The sparse set uses more memory than other containers in order to provide faster operations.

Definition in file SparseSet.h.