LLVM API Documentation

Public Types | Public Member Functions
llvm::StringMap< ValueTy, AllocatorTy > Class Template Reference

#include <StringMap.h>

Inheritance diagram for llvm::StringMap< ValueTy, AllocatorTy >:
Inheritance graph
[legend]
Collaboration diagram for llvm::StringMap< ValueTy, AllocatorTy >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef StringMapEntry< ValueTy > MapEntryTy
typedef const char * key_type
typedef ValueTy mapped_type
typedef StringMapEntry< ValueTy > value_type
typedef size_t size_type
typedef StringMapConstIterator
< ValueTy > 
const_iterator
typedef StringMapIterator
< ValueTy > 
iterator

Public Member Functions

 StringMap ()
 StringMap (unsigned InitialSize)
 StringMap (AllocatorTy A)
 StringMap (unsigned InitialSize, AllocatorTy A)
 StringMap (StringMap &&RHS)
StringMapoperator= (StringMap RHS)
AllocatorTy & getAllocator ()
const AllocatorTy & getAllocator () const
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
iterator find (StringRef Key)
const_iterator find (StringRef Key) const
ValueTy lookup (StringRef Key) const
ValueTy & operator[] (StringRef Key)
size_type count (StringRef Key) const
 count - Return 1 if the element is in the map, 0 otherwise.
bool insert (MapEntryTy *KeyValue)
std::pair< iterator, boolinsert (std::pair< StringRef, ValueTy > KV)
void clear ()
template<typename InitTy >
MapEntryTyGetOrCreateValue (StringRef Key, InitTy Val)
MapEntryTyGetOrCreateValue (StringRef Key)
void remove (MapEntryTy *KeyValue)
void erase (iterator I)
bool erase (StringRef Key)
 ~StringMap ()

Detailed Description

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
class llvm::StringMap< ValueTy, AllocatorTy >

StringMap - This is an unconventional map that is specialized for handling keys that are "strings", which are basically ranges of bytes. This does some funky memory allocation and hashing things to make it extremely efficient, storing the string data *after* the value in the map.

Definition at line 226 of file StringMap.h.


Member Typedef Documentation

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef StringMapConstIterator<ValueTy> llvm::StringMap< ValueTy, AllocatorTy >::const_iterator

Definition at line 261 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef StringMapIterator<ValueTy> llvm::StringMap< ValueTy, AllocatorTy >::iterator

Definition at line 262 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef const char* llvm::StringMap< ValueTy, AllocatorTy >::key_type

Definition at line 256 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef StringMapEntry<ValueTy> llvm::StringMap< ValueTy, AllocatorTy >::MapEntryTy

Definition at line 229 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef ValueTy llvm::StringMap< ValueTy, AllocatorTy >::mapped_type

Definition at line 257 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef size_t llvm::StringMap< ValueTy, AllocatorTy >::size_type

Definition at line 259 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
typedef StringMapEntry<ValueTy> llvm::StringMap< ValueTy, AllocatorTy >::value_type

Definition at line 258 of file StringMap.h.


Constructor & Destructor Documentation

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( ) [inline]

Definition at line 231 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( unsigned  InitialSize) [inline, explicit]

Definition at line 232 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( AllocatorTy  A) [inline, explicit]

Definition at line 235 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( unsigned  InitialSize,
AllocatorTy  A 
) [inline]

Definition at line 238 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( StringMap< ValueTy, AllocatorTy > &&  RHS) [inline]

Definition at line 242 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::~StringMap ( ) [inline]

Definition at line 397 of file StringMap.h.


Member Function Documentation

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
iterator llvm::StringMap< ValueTy, AllocatorTy >::begin ( ) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
const_iterator llvm::StringMap< ValueTy, AllocatorTy >::begin ( ) const [inline]

Definition at line 270 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
void llvm::StringMap< ValueTy, AllocatorTy >::clear ( ) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
size_type llvm::StringMap< ValueTy, AllocatorTy >::count ( StringRef  Key) const [inline]

count - Return 1 if the element is in the map, 0 otherwise.

Definition at line 303 of file StringMap.h.

Referenced by llvm::StringTableBuilder::getOffset(), HandlePrefixedOrGroupedOption(), and llvm::SpecialCaseList::Entry::match().

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
iterator llvm::StringMap< ValueTy, AllocatorTy >::end ( ) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
const_iterator llvm::StringMap< ValueTy, AllocatorTy >::end ( ) const [inline]

Definition at line 273 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
void llvm::StringMap< ValueTy, AllocatorTy >::erase ( iterator  I) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
bool llvm::StringMap< ValueTy, AllocatorTy >::erase ( StringRef  Key) [inline]

Definition at line 390 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
iterator llvm::StringMap< ValueTy, AllocatorTy >::find ( StringRef  Key) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
const_iterator llvm::StringMap< ValueTy, AllocatorTy >::find ( StringRef  Key) const [inline]

Definition at line 283 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
AllocatorTy& llvm::StringMap< ValueTy, AllocatorTy >::getAllocator ( ) [inline]

Definition at line 253 of file StringMap.h.

Referenced by llvm::StructType::setName().

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
const AllocatorTy& llvm::StringMap< ValueTy, AllocatorTy >::getAllocator ( ) const [inline]

Definition at line 254 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
template<typename InitTy >
MapEntryTy& llvm::StringMap< ValueTy, AllocatorTy >::GetOrCreateValue ( StringRef  Key,
InitTy  Val 
) [inline]
template<typename ValueTy, typename AllocatorTy = MallocAllocator>
MapEntryTy& llvm::StringMap< ValueTy, AllocatorTy >::GetOrCreateValue ( StringRef  Key) [inline]

Definition at line 374 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
bool llvm::StringMap< ValueTy, AllocatorTy >::insert ( MapEntryTy KeyValue) [inline]

insert - Insert the specified key/value pair into the map. If the key already exists in the map, return false and ignore the request, otherwise insert it and return true.

Definition at line 310 of file StringMap.h.

Referenced by llvm::StringMap< const DIE * >::GetOrCreateValue(), and llvm::StringPool::intern().

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
std::pair<iterator, bool> llvm::StringMap< ValueTy, AllocatorTy >::insert ( std::pair< StringRef, ValueTy >  KV) [inline]

insert - Inserts the specified key/value pair into the map if the key isn't already in the map. The bool component of the returned pair is true if and only if the insertion takes place, and the iterator component of the pair points to the element with key equivalent to the key of the pair.

Definition at line 330 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
ValueTy llvm::StringMap< ValueTy, AllocatorTy >::lookup ( StringRef  Key) const [inline]

lookup - Return the entry for the specified key, or a default constructed value if no such entry exists.

Definition at line 291 of file StringMap.h.

Referenced by llvm::ValueSymbolTable::empty(), llvm::SetTheory::evaluate(), llvm::SetTheory::expand(), llvm::LibCallInfo::getFunctionInfo(), llvm::Module::getTypeByName(), and llvm::MCContext::LookupSymbol().

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
StringMap& llvm::StringMap< ValueTy, AllocatorTy >::operator= ( StringMap< ValueTy, AllocatorTy >  RHS) [inline]

Definition at line 245 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
ValueTy& llvm::StringMap< ValueTy, AllocatorTy >::operator[] ( StringRef  Key) [inline]

Definition at line 298 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
void llvm::StringMap< ValueTy, AllocatorTy >::remove ( MapEntryTy KeyValue) [inline]

remove - Remove the specified key/value pair from the map, but do not erase it. This aborts if the key is not in the map.

Definition at line 380 of file StringMap.h.

Referenced by llvm::StructType::setName().


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