LLVM 23.0.0git
MapVector.h File Reference

This file implements a map that provides insertion order iteration. More...

#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include <cassert>
#include <cstddef>
#include <iterator>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >
 This class implements a map that also provides access to all stored values in a deterministic order. More...
struct  llvm::SmallMapVector< KeyT, ValueT, N >
 A MapVector that performs no allocations if smaller than a certain size. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Functions

template<typename KeyT, typename ValueT, typename MapType = DenseMap<KeyT, unsigned>, typename VectorType = SmallVector<std::pair<KeyT, ValueT>, 0>, unsigned N = 0>
size_t llvm::capacity_in_bytes (const MapVector< KeyT, ValueT, MapType, VectorType, N > &X)

Detailed Description

This file implements a map that provides insertion order iteration.

The interface is purposefully minimal. The key is assumed to be cheap to copy and 2 copies are kept, one for indexing in a DenseMap, one for iteration in a SmallVector.

Definition in file MapVector.h.