LLVM  3.7.0
Public Types | Public Member Functions | List of all members
llvm::StringMap< ValueTy, AllocatorTy > Class Template Reference

StringMap - This is an unconventional map that is specialized for handling keys that are "strings", which are basically ranges of bytes. More...

#include <StringMap.h>

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

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
 lookup - Return the entry for the specified key, or a default constructed value if no such entry exists. More...
 
ValueTy & operator[] (StringRef Key)
 
size_type count (StringRef Key) const
 count - Return 1 if the element is in the map, 0 otherwise. More...
 
bool insert (MapEntryTy *KeyValue)
 insert - Insert the specified key/value pair into the map. More...
 
std::pair< iterator, boolinsert (std::pair< StringRef, ValueTy > KV)
 insert - Inserts the specified key/value pair into the map if the key isn't already in the map. More...
 
void clear ()
 
void remove (MapEntryTy *KeyValue)
 remove - Remove the specified key/value pair from the map, but do not erase it. More...
 
void erase (iterator I)
 
bool erase (StringRef Key)
 
 ~StringMap ()
 
- Public Member Functions inherited from llvm::StringMapImpl
unsigned getNumBuckets () const
 
unsigned getNumItems () const
 
bool empty () const
 
unsigned size () const
 
void swap (StringMapImpl &Other)
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::StringMapImpl
static StringMapEntryBasegetTombstoneVal ()
 
- Protected Member Functions inherited from llvm::StringMapImpl
 StringMapImpl (unsigned itemSize)
 
 StringMapImpl (StringMapImpl &&RHS)
 
 StringMapImpl (unsigned InitSize, unsigned ItemSize)
 
unsigned RehashTable (unsigned BucketNo=0)
 RehashTable - Grow the table, redistributing values into the buckets with the appropriate mod-of-hashtable-size. More...
 
unsigned LookupBucketFor (StringRef Key)
 LookupBucketFor - Look up the bucket that the specified string should end up in. More...
 
int FindKey (StringRef Key) const
 FindKey - Look up the bucket that contains the specified key. More...
 
void RemoveKey (StringMapEntryBase *V)
 RemoveKey - Remove the specified StringMapEntry from the table, but do not delete it. More...
 
StringMapEntryBaseRemoveKey (StringRef Key)
 RemoveKey - Remove the StringMapEntry for the specified key from the table, returning it. More...
 
- Protected Attributes inherited from llvm::StringMapImpl
StringMapEntryBase ** TheTable
 
unsigned NumBuckets
 
unsigned NumItems
 
unsigned NumTombstones
 
unsigned ItemSize
 

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 214 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 249 of file StringMap.h.

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

Definition at line 250 of file StringMap.h.

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

Definition at line 244 of file StringMap.h.

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

Definition at line 217 of file StringMap.h.

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

Definition at line 245 of file StringMap.h.

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

Definition at line 247 of file StringMap.h.

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

Definition at line 246 of file StringMap.h.

Constructor & Destructor Documentation

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

Definition at line 219 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( unsigned  InitialSize)
inlineexplicit

Definition at line 220 of file StringMap.h.

template<typename ValueTy, typename AllocatorTy = MallocAllocator>
llvm::StringMap< ValueTy, AllocatorTy >::StringMap ( AllocatorTy  A)
inlineexplicit

Definition at line 223 of file StringMap.h.

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

Definition at line 226 of file StringMap.h.

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

Definition at line 230 of file StringMap.h.

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

Definition at line 373 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 258 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 291 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 261 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 366 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 271 of file StringMap.h.

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

Definition at line 241 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 242 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 298 of file StringMap.h.

Referenced by llvm::StringTableBuilder::add(), llvm::MCContext::createELFRelSection(), llvm::MCDwarfLineTableHeader::getFile(), llvm::LLVMContext::getMDKindID(), llvm::StringToOffsetTable::GetOrAddStringOffset(), llvm::Module::getOrInsertComdat(), llvm::StringPool::intern(), and llvm::StringMap< uint64_t >::operator[]().

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 318 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 279 of file StringMap.h.

Referenced by llvm::LibCallInfo::getFunctionInfo(), llvm::ValueSymbolTable::lookup(), and llvm::MCContext::lookupSymbol().

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

Definition at line 233 of file StringMap.h.

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

Definition at line 286 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 356 of file StringMap.h.

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


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