LLVM 22.0.0git
Public Member Functions | List of all members
llvm::StringSet< AllocatorTy > Class Template Reference

StringSet - A wrapper for StringMap that provides set-like functionality. More...

#include "llvm/ADT/StringSet.h"

Inheritance diagram for llvm::StringSet< AllocatorTy >:
[legend]

Public Member Functions

 StringSet ()=default
 
 StringSet (std::initializer_list< StringRef > initializer)
 
template<typename Range >
 StringSet (llvm::from_range_t, Range &&R)
 
 StringSet (AllocatorTy a)
 
std::pair< typename Base::iterator, boolinsert (StringRef key)
 
template<typename InputIt >
void insert (InputIt begin, InputIt end)
 
template<typename Range >
void insert_range (Range &&R)
 
template<typename ValueTy >
std::pair< typename Base::iterator, boolinsert (const StringMapEntry< ValueTy > &mapEntry)
 
bool contains (StringRef key) const
 Check if the set contains the given key.
 
- Public Member Functions inherited from llvm::StringMap< ValueTy, AllocatorTy >
 StringMap ()
 
 StringMap (unsigned InitialSize)
 
 StringMap (AllocatorTy A)
 
 StringMap (unsigned InitialSize, AllocatorTy A)
 
 StringMap (std::initializer_list< std::pair< StringRef, ValueTy > > List)
 
 StringMap (StringMap &&RHS)
 
 StringMap (const StringMap &RHS)
 
StringMapoperator= (StringMap RHS)
 
 ~StringMap ()
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
iterator_range< StringMapKeyIterator< ValueTy > > keys () const
 
iterator find (StringRef Key)
 
iterator find (StringRef Key, uint32_t FullHashValue)
 
const_iterator find (StringRef Key) const
 
const_iterator find (StringRef Key, uint32_t FullHashValue) const
 
ValueTy lookup (StringRef Key) const
 lookup - Return the entry for the specified key, or a default constructed value if no such entry exists.
 
const ValueTy & at (StringRef Val) const
 at - Return the entry for the specified key, or abort if no such entry exists.
 
ValueTy & operator[] (StringRef Key)
 Lookup the ValueTy for the Key, or create a default constructed value if the key is not in the map.
 
bool contains (StringRef Key) const
 contains - Return true if the element is in the map, false otherwise.
 
size_type count (StringRef Key) const
 count - Return 1 if the element is in the map, 0 otherwise.
 
template<typename InputTy >
size_type count (const StringMapEntry< InputTy > &MapEntry) const
 
bool operator== (const StringMap &RHS) const
 equal - check whether both of the containers are equal.
 
bool operator!= (const StringMap &RHS) const
 
bool insert (MapEntryTy *KeyValue)
 insert - Insert the specified key/value pair into the map.
 
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.
 
std::pair< iterator, boolinsert (std::pair< StringRef, ValueTy > KV, uint32_t FullHashValue)
 
template<typename InputIt >
void insert (InputIt First, InputIt Last)
 Inserts elements from range [first, last).
 
void insert (std::initializer_list< std::pair< StringRef, ValueTy > > List)
 Inserts elements from initializer list ilist.
 
template<typename V >
std::pair< iterator, boolinsert_or_assign (StringRef Key, V &&Val)
 Inserts an element or assigns to the current element if the key already exists.
 
template<typename... ArgsTy>
std::pair< iterator, booltry_emplace (StringRef Key, ArgsTy &&...Args)
 Emplace a new element for the specified key into the map if the key isn't already in the map.
 
template<typename... ArgsTy>
std::pair< iterator, booltry_emplace_with_hash (StringRef Key, uint32_t FullHashValue, ArgsTy &&...Args)
 
void clear ()
 
void remove (MapEntryTy *KeyValue)
 remove - Remove the specified key/value pair from the map, but do not erase it.
 
void erase (iterator I)
 
bool erase (StringRef Key)
 
- 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

- Public Types inherited from llvm::StringMap< ValueTy, AllocatorTy >
using MapEntryTy = StringMapEntry< ValueTy >
 
using key_type = const char *
 
using mapped_type = ValueTy
 
using value_type = StringMapEntry< ValueTy >
 
using size_type = size_t
 
using const_iterator = StringMapIterBase< ValueTy, true >
 
using iterator = StringMapIterBase< ValueTy, false >
 
- Static Public Member Functions inherited from llvm::StringMapImpl
static StringMapEntryBasegetTombstoneVal ()
 
static LLVM_ABI uint32_t hash (StringRef Key)
 Returns the hash value that will be used for the given string.
 
- Static Public Attributes inherited from llvm::StringMapImpl
static constexpr uintptr_t TombstoneIntVal
 
- Protected Member Functions inherited from llvm::StringMapImpl
 StringMapImpl (unsigned itemSize)
 
 StringMapImpl (StringMapImpl &&RHS)
 
LLVM_ABI StringMapImpl (unsigned InitSize, unsigned ItemSize)
 
 ~StringMapImpl ()
 
LLVM_ABI unsigned RehashTable (unsigned BucketNo=0)
 RehashTable - Grow the table, redistributing values into the buckets with the appropriate mod-of-hashtable-size.
 
unsigned LookupBucketFor (StringRef Key)
 LookupBucketFor - Look up the bucket that the specified string should end up in.
 
LLVM_ABI unsigned LookupBucketFor (StringRef Key, uint32_t FullHashValue)
 Overload that explicitly takes precomputed hash(Key).
 
int FindKey (StringRef Key) const
 FindKey - Look up the bucket that contains the specified key.
 
LLVM_ABI int FindKey (StringRef Key, uint32_t FullHashValue) const
 Overload that explicitly takes precomputed hash(Key).
 
LLVM_ABI void RemoveKey (StringMapEntryBase *V)
 RemoveKey - Remove the specified StringMapEntry from the table, but do not delete it.
 
LLVM_ABI StringMapEntryBaseRemoveKey (StringRef Key)
 RemoveKey - Remove the StringMapEntry for the specified key from the table, returning it.
 
LLVM_ABI void init (unsigned Size)
 Allocate the table with the specified number of buckets and otherwise setup the map as empty.
 
iterator_range< StringMapEntryBase ** > buckets ()
 
- Protected Attributes inherited from llvm::StringMapImpl
StringMapEntryBase ** TheTable = nullptr
 
unsigned NumBuckets = 0
 
unsigned NumItems = 0
 
unsigned NumTombstones = 0
 
unsigned ItemSize
 

Detailed Description

template<class AllocatorTy = MallocAllocator>
class llvm::StringSet< AllocatorTy >

StringSet - A wrapper for StringMap that provides set-like functionality.

Definition at line 25 of file StringSet.h.

Constructor & Destructor Documentation

◆ StringSet() [1/4]

template<class AllocatorTy = MallocAllocator>
llvm::StringSet< AllocatorTy >::StringSet ( )
default

◆ StringSet() [2/4]

template<class AllocatorTy = MallocAllocator>
llvm::StringSet< AllocatorTy >::StringSet ( std::initializer_list< StringRef initializer)
inline

Definition at line 30 of file StringSet.h.

References llvm::StringSet< AllocatorTy >::insert().

◆ StringSet() [3/4]

template<class AllocatorTy = MallocAllocator>
template<typename Range >
llvm::StringSet< AllocatorTy >::StringSet ( llvm::from_range_t  ,
Range &&  R 
)
inline

◆ StringSet() [4/4]

template<class AllocatorTy = MallocAllocator>
llvm::StringSet< AllocatorTy >::StringSet ( AllocatorTy  a)
inlineexplicit

Definition at line 37 of file StringSet.h.

Member Function Documentation

◆ contains()

template<class AllocatorTy = MallocAllocator>
bool llvm::StringSet< AllocatorTy >::contains ( StringRef  key) const
inline

Check if the set contains the given key.

Definition at line 60 of file StringSet.h.

References llvm::StringMapImpl::FindKey().

Referenced by llvm::MachineRegisterInfo::insertVRegByName(), llvm::libDriverMain(), and llvm::OptDisable::shouldRunPass().

◆ insert() [1/3]

template<class AllocatorTy = MallocAllocator>
template<typename ValueTy >
std::pair< typename Base::iterator, bool > llvm::StringSet< AllocatorTy >::insert ( const StringMapEntry< ValueTy > &  mapEntry)
inline

◆ insert() [2/3]

template<class AllocatorTy = MallocAllocator>
template<typename InputIt >
void llvm::StringSet< AllocatorTy >::insert ( InputIt  begin,
InputIt  end 
)
inline

◆ insert() [3/3]

template<class AllocatorTy = MallocAllocator>
std::pair< typename Base::iterator, bool > llvm::StringSet< AllocatorTy >::insert ( StringRef  key)
inline

◆ insert_range()

template<class AllocatorTy = MallocAllocator>
template<typename Range >
void llvm::StringSet< AllocatorTy >::insert_range ( Range &&  R)
inline

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