LLVM 22.0.0git
llvm::ValueMap< KeyT, ValueT, Config > Class Template Reference

See the file comment. More...

#include "llvm/IR/ValueMap.h"

Inheritance diagram for llvm::ValueMap< KeyT, ValueT, Config >:
[legend]

Public Types

using key_type = KeyT
using mapped_type = ValueT
using value_type = std::pair<KeyT, ValueT>
using size_type = unsigned
using iterator = ValueMapIterator<MapT, KeyT>
using const_iterator = ValueMapConstIterator<MapT, KeyT>

Public Member Functions

 ValueMap (unsigned NumInitBuckets=64)
 ValueMap (const ExtraData &Data, unsigned NumInitBuckets=64)
 ValueMap (const ValueMap &)=delete
 ValueMap (ValueMap &&)=delete
ValueMapoperator= (const ValueMap &)=delete
ValueMapoperator= (ValueMap &&)=delete
bool hasMD () const
MDMapTMD ()
std::optional< MDMapT > & getMDMap ()
std::optional< Metadata * > getMappedMD (const Metadata *MD) const
 Get the mapped metadata, if it's in the map.
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
bool empty () const
size_type size () const
void reserve (size_t Size)
 Grow the map so that it has at least Size buckets. Does not shrink.
void clear ()
size_type count (const KeyT &Val) const
 Return 1 if the specified key is in the map, 0 otherwise.
iterator find (const KeyT &Val)
const_iterator find (const KeyT &Val) const
ValueT lookup (const KeyT &Val) const
 lookup - Return the entry for the specified key, or a default constructed value if no such entry exists.
std::pair< iterator, boolinsert (const std::pair< KeyT, ValueT > &KV)
std::pair< iterator, boolinsert (std::pair< KeyT, ValueT > &&KV)
template<typename InputIt>
void insert (InputIt I, InputIt E)
 insert - Range insertion of pairs.
bool erase (const KeyT &Val)
void erase (iterator I)
value_typeFindAndConstruct (const KeyT &Key)
ValueT & operator[] (const KeyT &Key)
bool isPointerIntoBucketsArray (const void *Ptr) const
 isPointerIntoBucketsArray - Return true if the specified pointer points somewhere into the ValueMap's array of buckets (i.e.
const void * getPointerIntoBucketsArray () const
 getPointerIntoBucketsArray() - Return an opaque pointer into the buckets array.

Public Attributes

DMAtomT AtomMap
 Map {(InlinedAt, old atom number) -> new atom number}.

Friends

class ValueMapCallbackVH< KeyT, ValueT, Config >

Detailed Description

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
class llvm::ValueMap< KeyT, ValueT, Config >

See the file comment.

Definition at line 84 of file ValueMap.h.

Member Typedef Documentation

◆ const_iterator

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::const_iterator = ValueMapConstIterator<MapT, KeyT>

Definition at line 136 of file ValueMap.h.

◆ iterator

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::iterator = ValueMapIterator<MapT, KeyT>

Definition at line 135 of file ValueMap.h.

◆ key_type

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::key_type = KeyT

Definition at line 99 of file ValueMap.h.

◆ mapped_type

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::mapped_type = ValueT

Definition at line 100 of file ValueMap.h.

◆ size_type

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::size_type = unsigned

Definition at line 102 of file ValueMap.h.

◆ value_type

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
using llvm::ValueMap< KeyT, ValueT, Config >::value_type = std::pair<KeyT, ValueT>

Definition at line 101 of file ValueMap.h.

Constructor & Destructor Documentation

◆ ValueMap() [1/4]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
llvm::ValueMap< KeyT, ValueT, Config >::ValueMap ( unsigned NumInitBuckets = 64)
inlineexplicit

Definition at line 104 of file ValueMap.h.

◆ ValueMap() [2/4]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
llvm::ValueMap< KeyT, ValueT, Config >::ValueMap ( const ExtraData & Data,
unsigned NumInitBuckets = 64 )
inlineexplicit

Definition at line 106 of file ValueMap.h.

◆ ValueMap() [3/4]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
llvm::ValueMap< KeyT, ValueT, Config >::ValueMap ( const ValueMap< KeyT, ValueT, Config > & )
delete

◆ ValueMap() [4/4]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
llvm::ValueMap< KeyT, ValueT, Config >::ValueMap ( ValueMap< KeyT, ValueT, Config > && )
delete

Member Function Documentation

◆ begin() [1/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
iterator llvm::ValueMap< KeyT, ValueT, Config >::begin ( )
inline

Definition at line 138 of file ValueMap.h.

Referenced by AddAliasScopeMetadata(), llvm::UnrollAndJamLoop(), and llvm::UnrollLoop().

◆ begin() [2/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
const_iterator llvm::ValueMap< KeyT, ValueT, Config >::begin ( ) const
inline

Definition at line 140 of file ValueMap.h.

◆ clear()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
void llvm::ValueMap< KeyT, ValueT, Config >::clear ( )
inline

Definition at line 149 of file ValueMap.h.

◆ count()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
size_type llvm::ValueMap< KeyT, ValueT, Config >::count ( const KeyT & Val) const
inline

Return 1 if the specified key is in the map, 0 otherwise.

Definition at line 156 of file ValueMap.h.

Referenced by buildClonedLoops(), llvm::CloneAndPruneIntoFromInst(), llvm::CloneFunction(), llvm::CloneFunctionInto(), and llvm::updateProfileCallee().

◆ empty()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
bool llvm::ValueMap< KeyT, ValueT, Config >::empty ( ) const
inline

Definition at line 143 of file ValueMap.h.

◆ end() [1/2]

◆ end() [2/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
const_iterator llvm::ValueMap< KeyT, ValueT, Config >::end ( ) const
inline

Definition at line 141 of file ValueMap.h.

◆ erase() [1/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
bool llvm::ValueMap< KeyT, ValueT, Config >::erase ( const KeyT & Val)
inline

Definition at line 195 of file ValueMap.h.

Referenced by CloneLoopBlocks(), and llvm::UnrollLoop().

◆ erase() [2/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
void llvm::ValueMap< KeyT, ValueT, Config >::erase ( iterator I)
inline

Definition at line 203 of file ValueMap.h.

◆ find() [1/2]

◆ find() [2/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
const_iterator llvm::ValueMap< KeyT, ValueT, Config >::find ( const KeyT & Val) const
inline

Definition at line 163 of file ValueMap.h.

◆ FindAndConstruct()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
value_type & llvm::ValueMap< KeyT, ValueT, Config >::FindAndConstruct ( const KeyT & Key)
inline

Definition at line 207 of file ValueMap.h.

◆ getMappedMD()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
std::optional< Metadata * > llvm::ValueMap< KeyT, ValueT, Config >::getMappedMD ( const Metadata * MD) const
inline

Get the mapped metadata, if it's in the map.

Definition at line 126 of file ValueMap.h.

◆ getMDMap()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
std::optional< MDMapT > & llvm::ValueMap< KeyT, ValueT, Config >::getMDMap ( )
inline

Definition at line 121 of file ValueMap.h.

◆ getPointerIntoBucketsArray()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
const void * llvm::ValueMap< KeyT, ValueT, Config >::getPointerIntoBucketsArray ( ) const
inline

getPointerIntoBucketsArray() - Return an opaque pointer into the buckets array.

In conjunction with the previous method, this can be used to determine whether an insertion caused the ValueMap to reallocate.

Definition at line 225 of file ValueMap.h.

◆ hasMD()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
bool llvm::ValueMap< KeyT, ValueT, Config >::hasMD ( ) const
inline

Definition at line 115 of file ValueMap.h.

◆ insert() [1/3]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
std::pair< iterator, bool > llvm::ValueMap< KeyT, ValueT, Config >::insert ( const std::pair< KeyT, ValueT > & KV)
inline

◆ insert() [2/3]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
template<typename InputIt>
void llvm::ValueMap< KeyT, ValueT, Config >::insert ( InputIt I,
InputIt E )
inline

insert - Range insertion of pairs.

Definition at line 190 of file ValueMap.h.

◆ insert() [3/3]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
std::pair< iterator, bool > llvm::ValueMap< KeyT, ValueT, Config >::insert ( std::pair< KeyT, ValueT > && KV)
inline

Definition at line 182 of file ValueMap.h.

◆ isPointerIntoBucketsArray()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
bool llvm::ValueMap< KeyT, ValueT, Config >::isPointerIntoBucketsArray ( const void * Ptr) const
inline

isPointerIntoBucketsArray - Return true if the specified pointer points somewhere into the ValueMap's array of buckets (i.e.

either to a key or value in the ValueMap).

Definition at line 218 of file ValueMap.h.

◆ lookup()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
ValueT llvm::ValueMap< KeyT, ValueT, Config >::lookup ( const KeyT & Val) const
inline

◆ MD()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
MDMapT & llvm::ValueMap< KeyT, ValueT, Config >::MD ( )
inline

Definition at line 116 of file ValueMap.h.

◆ operator=() [1/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
ValueMap & llvm::ValueMap< KeyT, ValueT, Config >::operator= ( const ValueMap< KeyT, ValueT, Config > & )
delete

◆ operator=() [2/2]

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
ValueMap & llvm::ValueMap< KeyT, ValueT, Config >::operator= ( ValueMap< KeyT, ValueT, Config > && )
delete

◆ operator[]()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
ValueT & llvm::ValueMap< KeyT, ValueT, Config >::operator[] ( const KeyT & Key)
inline

Definition at line 211 of file ValueMap.h.

◆ reserve()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
void llvm::ValueMap< KeyT, ValueT, Config >::reserve ( size_t Size)
inline

Grow the map so that it has at least Size buckets. Does not shrink.

Definition at line 147 of file ValueMap.h.

◆ size()

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
size_type llvm::ValueMap< KeyT, ValueT, Config >::size ( ) const
inline

Definition at line 144 of file ValueMap.h.

◆ ValueMapCallbackVH< KeyT, ValueT, Config >

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
friend class ValueMapCallbackVH< KeyT, ValueT, Config >
friend

Definition at line 79 of file ValueMap.h.

Member Data Documentation

◆ AtomMap

template<typename KeyT, typename ValueT, typename Config = ValueMapConfig<KeyT>>
DMAtomT llvm::ValueMap< KeyT, ValueT, Config >::AtomMap

Map {(InlinedAt, old atom number) -> new atom number}.

Definition at line 123 of file ValueMap.h.

Referenced by llvm::mapAtomInstance(), llvm::RemapSourceAtom(), remapSourceAtoms(), llvm::SplitIndirectBrCriticalEdges(), and llvm::UnrollLoop().


The documentation for this class was generated from the following file: