LLVM: llvm::SmallString< InternalLen > Class Template Reference (original) (raw)

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. More...

#include "[llvm/ADT/SmallString.h](SmallString%5F8h%5Fsource.html)"

Public Member Functions
SmallString ()=default
Default ctor - Initialize to empty.
SmallString (StringRef S)
Initialize from a StringRef.
SmallString (std::initializer_list< StringRef > Refs)
Initialize by concatenating a list of StringRefs.
template<typename ItTy >
SmallString (ItTy S, ItTy E)
Initialize with a range.
String Assignment
void assign (StringRef RHS)
Assign from a StringRef.
void assign (std::initializer_list< StringRef > Refs)
Assign from a list of StringRefs.
String Concatenation
void append (StringRef RHS)
Append from a StringRef.
void append (std::initializer_list< StringRef > Refs)
Append from a list of StringRefs.
String Comparison
bool equals (StringRef RHS) const
Check for string equality.
bool equals_insensitive (StringRef RHS) const
Check for string equality, ignoring case.
int compare (StringRef RHS) const
compare - Compare two strings; the result is negative, zero, or positive if this string is lexicographically less than, equal to, or greater than the RHS.
int compare_insensitive (StringRef RHS) const
compare_insensitive - Compare two strings, ignoring case.
int compare_numeric (StringRef RHS) const
compare_numeric - Compare two strings, treating sequences of digits as numbers.
String Predicates
bool starts_with (StringRef Prefix) const
starts_with - Check if this string starts with the given Prefix.
bool ends_with (StringRef Suffix) const
ends_with - Check if this string ends with the given Suffix.
String Searching
size_t find (char C, size_t From=0) const
find - Search for the first character C in the string.
size_t find (StringRef Str, size_t From=0) const
Search for the first string Str in the string.
size_t rfind (char C, size_t From=StringRef::npos) const
Search for the last character C in the string.
size_t rfind (StringRef Str) const
Search for the last string Str in the string.
size_t find_first_of (char C, size_t From=0) const
Find the first character in the string that is C, or npos if not found.
size_t find_first_of (StringRef Chars, size_t From=0) const
Find the first character in the string that is in Chars, or npos if not found.
size_t find_first_not_of (char C, size_t From=0) const
Find the first character in the string that is not C or npos if not found.
size_t find_first_not_of (StringRef Chars, size_t From=0) const
Find the first character in the string that is not in the string Chars, or npos if not found.
size_t find_last_of (char C, size_t From=StringRef::npos) const
Find the last character in the string that is C, or npos if not found.
size_t find_last_of (StringRef Chars, size_t From=StringRef::npos) const
Find the last character in the string that is in C, or npos if not found.
Helpful Algorithms
size_t count (char C) const
Return the number of occurrences of C in the string.
size_t count (StringRef Str) const
Return the number of non-overlapped occurrences of Str in the string.
Substring Operations
StringRef substr (size_t Start, size_t N=StringRef::npos) const
Return a reference to the substring from [Start, Start + N).
StringRef slice (size_t Start, size_t End) const
Return a reference to the substring from [Start, End).
StringRef str () const
Explicit conversion to StringRef.
const char * c_str ()
operator StringRef () const
Implicit conversion to StringRef.
operator std::string () const
SmallString & operator= (StringRef RHS)
SmallString & operator+= (StringRef RHS)
SmallString & operator+= (char C)
- Public Member Functions inherited from llvm::SmallVector< char, InternalLen >
SmallVector ()
SmallVector (size_t Size)
SmallVector (size_t Size, const char &Value)
SmallVector (ItTy S, ItTy E)
SmallVector (const iterator_range< RangeTy > &R)
SmallVector (std::initializer_list< char > IL)
SmallVector (ArrayRef< U > A)
SmallVector (const SmallVector &RHS)
SmallVector (SmallVector &&RHS)
SmallVector (SmallVectorImpl< char > &&RHS)
~SmallVector ()
SmallVector & operator= (const SmallVector &RHS)
SmallVector & operator= (SmallVector &&RHS)
SmallVector & operator= (SmallVectorImpl< char > &&RHS)
SmallVector & operator= (std::initializer_list< char > IL)
- Public Member Functions inherited from llvm::SmallVectorImpl< T >
SmallVectorImpl (const SmallVectorImpl &)=delete
void clear ()
void resize (size_type N)
void resize_for_overwrite (size_type N)
Like resize, but T is POD, the new values won't be initialized.
void truncate (size_type N)
Like resize, but requires that N is less than size().
void resize (size_type N, ValueParamT NV)
void reserve (size_type N)
void pop_back_n (size_type NumItems)
T pop_back_val ()
void swap (SmallVectorImpl &RHS)
template<typename ItTy , typename = EnableIfConvertibleToInputIterator>
void append (ItTy in_start, ItTy in_end)
Add the specified range to the end of the SmallVector.
void append (size_type NumInputs, ValueParamT Elt)
Append NumInputs copies of Elt to the end.
void append (std::initializer_list< T > IL)
void append (const SmallVectorImpl &RHS)
void assign (size_type NumElts, ValueParamT Elt)
template<typename ItTy , typename = EnableIfConvertibleToInputIterator>
void assign (ItTy in_start, ItTy in_end)
void assign (std::initializer_list< T > IL)
void assign (const SmallVectorImpl &RHS)
iterator erase (const_iterator CI)
iterator erase (const_iterator CS, const_iterator CE)
iterator insert (iterator I, T &&Elt)
iterator insert (iterator I, const T &Elt)
iterator insert (iterator I, size_type NumToInsert, ValueParamT Elt)
template<typename ItTy , typename = EnableIfConvertibleToInputIterator>
iterator insert (iterator I, ItTy From, ItTy To)
void insert (iterator I, std::initializer_list< T > IL)
template<typename... ArgTypes>
reference emplace_back (ArgTypes &&... Args)
SmallVectorImpl & operator= (const SmallVectorImpl &RHS)
SmallVectorImpl & operator= (SmallVectorImpl &&RHS)
bool operator== (const SmallVectorImpl &RHS) const
bool operator!= (const SmallVectorImpl &RHS) const
bool operator< (const SmallVectorImpl &RHS) const
bool operator> (const SmallVectorImpl &RHS) const
bool operator<= (const SmallVectorImpl &RHS) const
bool operator>= (const SmallVectorImpl &RHS) const
- Public Member Functions inherited from llvm::SmallVectorTemplateBase< T, bool >
void push_back (const T &Elt)
void push_back (T &&Elt)
void pop_back ()
- Public Member Functions inherited from llvm::SmallVectorTemplateCommon< T, typename >
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin ()
const_reverse_iterator rbegin () const
reverse_iterator rend ()
const_reverse_iterator rend () const
size_type size_in_bytes () const
size_type max_size () const
size_t capacity_in_bytes () const
pointer data ()
Return a pointer to the vector's buffer, even if empty().
const_pointer data () const
Return a pointer to the vector's buffer, even if empty().
reference operator[] (size_type idx)
const_reference operator[] (size_type idx) const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
- Public Member Functions inherited from llvm::SmallVectorBase< SmallVectorSizeType< T > >
size_t size () const
size_t capacity () const
bool empty () const
Additional Inherited Members
- Public Types inherited from llvm::SmallVectorImpl< T >
using iterator = typename SuperClass::iterator
using const_iterator = typename SuperClass::const_iterator
using reference = typename SuperClass::reference
using size_type = typename SuperClass::size_type
- Public Types inherited from llvm::SmallVectorTemplateCommon< T, typename >
using size_type = size_t
using difference_type = ptrdiff_t
using value_type = T
using iterator = T *
using const_iterator = const T *
using const_reverse_iterator = std::reverse_iterator< const_iterator >
using reverse_iterator = std::reverse_iterator< iterator >
using reference = T &
using const_reference = const T &
using pointer = T *
using const_pointer = const T *
- Protected Types inherited from llvm::SmallVectorImpl< T >
using ValueParamT = typename SuperClass::ValueParamT
- Protected Types inherited from llvm::SmallVectorTemplateBase< T, bool >
using ValueParamT = const T &
- Protected Member Functions inherited from llvm::SmallVectorImpl< T >
SmallVectorImpl (unsigned N)
void assignRemote (SmallVectorImpl &&RHS)
~SmallVectorImpl ()
- Protected Member Functions inherited from llvm::SmallVectorTemplateBase< T, bool >
SmallVectorTemplateBase (size_t Size)
void grow (size_t MinSize=0)
Grow the allocated memory (without initializing new elements), doubling the size of the allocated memory.
T * mallocForGrow (size_t MinSize, size_t &NewCapacity)
Create a new allocation big enough for MinSize and pass back its size in NewCapacity.
void moveElementsForGrow (T *NewElts)
Move existing elements over to the new allocation NewElts, the middle section of grow().
void takeAllocationForGrow (T *NewElts, size_t NewCapacity)
Transfer ownership of the allocation, finishing up grow().
const T * reserveForParamAndGetAddress (const T &Elt, size_t N=1)
Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.
T * reserveForParamAndGetAddress (T &Elt, size_t N=1)
Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.
void growAndAssign (size_t NumElts, const T &Elt)
template<typename... ArgTypes>
T & growAndEmplaceBack (ArgTypes &&... Args)
- Protected Member Functions inherited from llvm::SmallVectorTemplateCommon< T, typename >
void * getFirstEl () const
Find the address of the first element.
SmallVectorTemplateCommon (size_t Size)
void grow_pod (size_t MinSize, size_t TSize)
bool isSmall () const
Return true if this is a smallvector which has not had dynamic memory allocated for it.
void resetToSmall ()
Put this vector in a state of being small.
bool isReferenceToRange (const void *V, const void *First, const void *Last) const
Return true if V is an internal reference to the given range.
bool isReferenceToStorage (const void *V) const
Return true if V is an internal reference to this vector.
bool isRangeInStorage (const void *First, const void *Last) const
Return true if First and Last form a valid (possibly empty) range in this vector's storage.
bool isSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
Return true unless Elt will be invalidated by resizing the vector to NewSize.
void assertSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
Check whether Elt will be invalidated by resizing the vector to NewSize.
void assertSafeToAdd (const void *Elt, size_t N=1)
Check whether Elt will be invalidated by increasing the size of the vector by N.
void assertSafeToReferenceAfterClear (const T *From, const T *To)
Check whether any part of the range will be invalidated by clearing.
template<class ItTy , std::enable_if_t<!std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToReferenceAfterClear (ItTy, ItTy)
void assertSafeToAddRange (const T *From, const T *To)
Check whether any part of the range will be invalidated by growing.
template<class ItTy , std::enable_if_t<!std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToAddRange (ItTy, ItTy)
- Protected Member Functions inherited from llvm::SmallVectorBase< SmallVectorSizeType< T > >
SmallVectorBase ()=delete
SmallVectorBase (void *FirstEl, size_t TotalCapacity)
void * mallocForGrow (void *FirstEl, size_t MinSize, size_t TSize, size_t &NewCapacity)
This is a helper for grow() that's out of line to reduce code duplication.
void grow_pod (void *FirstEl, size_t MinSize, size_t TSize)
This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication.
void set_size (size_t N)
Set the array size to N, which the current array must have enough capacity for.
void set_allocation_range (void *Begin, size_t N)
Set the array data pointer to Begin and capacity to N.
- Static Protected Member Functions inherited from llvm::SmallVectorTemplateBase< T, bool >
static void destroy_range (T *S, T *E)
template<typename It1 , typename It2 >
static void uninitialized_move (It1 I, It1 E, It2 Dest)
Move the range [I, E) into the uninitialized memory starting with "Dest", constructing elements as needed.
template<typename It1 , typename It2 >
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements as needed.
static T && forward_value_param (T &&V)
static const T & forward_value_param (const T &V)
- Static Protected Member Functions inherited from llvm::SmallVectorTemplateCommon< T, typename >
template
static const T * reserveForParamAndGetAddressImpl (U *This, const T &Elt, size_t N)
Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.
- Static Protected Member Functions inherited from llvm::SmallVectorBase< SmallVectorSizeType< T > >
static constexpr size_t SizeTypeMax ()
The maximum value of the Size_T used.
- Protected Attributes inherited from llvm::SmallVectorBase< SmallVectorSizeType< T > >
void * BeginX
SmallVectorSizeType< T > Size
SmallVectorSizeType< T > Capacity
- Static Protected Attributes inherited from llvm::SmallVectorTemplateBase< T, bool >
static constexpr bool TakesParamByValue = false

template<unsigned InternalLen>
class llvm::SmallString< InternalLen >

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g.

operator+ etc).

Definition at line 26 of file SmallString.h.

Default ctor - Initialize to empty.

SmallString() [2/4]

SmallString() [3/4]

SmallString() [4/4]

append() [1/2]

append() [2/2]

Append from a StringRef.

Definition at line 68 of file SmallString.h.

References llvm::SmallVectorImpl< T >::append(), and RHS.

Referenced by llvm::SmallString< InternalLen >::assign(), llvm::createCFAOffset(), createDefCFAExpression(), createDefCFAOffset(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitPrologue(), ExpandBasePaths(), llvm::object::Record::getContinuousData(), llvm::MCContext::getELFSection(), llvm::unittest::getInputFileDirectory(), llvm::OpenMPIRBuilder::getOrCreateSrcLocStr(), llvm::GCNTargetMachine::getSubtargetImpl(), llvm::R600TargetMachine::getSubtargetImpl(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), llvm::sys::unicode::nameToGeneratedCodePoint(), llvm::sys::unicode::nameToHangulCodePoint(), llvm::sys::path::native(), llvm::SmallString< InternalLen >::operator+=(), parseBackslash(), llvm::codegen::setFunctionAttributes(), and llvm::SmallString< InternalLen >::SmallString().

assign() [1/2]

assign() [2/2]

c_str()

Definition at line 259 of file SmallString.h.

References llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm:🆑:ExpansionContext::expandResponseFiles(), llvm::DotCfgChangeReporter::genHTML(), llvm::object::XCOFFObjectFile::getSectionFileOffsetToRawData(), getVFSEntries(), printSymbolizedStackTrace(), llvm::DotCfgChangeReporter::registerCallbacks(), llvm::LockFileManager::waitForUnlock(), and llvm::ThinLTOCodeGenerator::writeGeneratedObject().

compare()

compare_insensitive()

compare_numeric()

count() [1/2]

count() [2/2]

ends_with()

equals()

equals_insensitive()

find() [1/2]

find() [2/2]

find_first_not_of() [1/2]

find_first_not_of() [2/2]

find_first_of() [1/2]

find_first_of() [2/2]

find_last_of() [1/2]

find_last_of() [2/2]

operator std::string()

operator StringRef()

operator+=() [1/2]

operator+=() [2/2]

operator=()

rfind() [1/2]

rfind() [2/2]

slice()

starts_with()

str()

Explicit conversion to StringRef.

Definition at line 254 of file SmallString.h.

References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorBase< SmallVectorSizeType< T > >::size().

Referenced by llvm::SmallString< InternalLen >::compare(), llvm::SmallString< InternalLen >::compare_insensitive(), llvm::SmallString< InternalLen >::compare_numeric(), llvm::SmallString< InternalLen >::count(), llvm::createCFAOffset(), createDefCFAExpression(), createDefCFAOffset(), llvm::dwarf_linker::parallel::TypeUnit::createDIETree(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), llvm::MCStreamer::emitIntValue(), emitPPA1Name(), llvm::X86FrameLowering::emitPrologue(), llvm::SmallString< InternalLen >::ends_with(), llvm::SmallString< InternalLen >::equals(), llvm::SmallString< InternalLen >::equals_insensitive(), ExpandBasePaths(), llvm::SmallString< InternalLen >::find(), llvm::SmallString< InternalLen >::find_first_not_of(), llvm::SmallString< InternalLen >::find_first_of(), llvm::SmallString< InternalLen >::find_last_of(), llvm::findVCToolChainViaSetupConfig(), llvm::MCCVDefRangeFragment::getFixedSizePortion(), llvm::OpenMPIRBuilder::getOrCreateSrcLocStr(), llvm::lto::getThinLTOOutputFile(), llvm::HTTPRequest::HTTPRequest(), llvm::LockFileManager::LockFileManager(), llvm::SmallString< InternalLen >::operator StringRef(), printSymbolizedStackTrace(), llvm:🆑:ExpansionContext::readConfigFile(), llvm::SmallString< InternalLen >::rfind(), llvm::AMDGPUSplitModulePass::run(), llvm::VFABI::setVectorVariantNames(), llvm::SmallString< InternalLen >::slice(), solveTypeName(), llvm::SPIRVTranslateModule(), splitCodeGen(), llvm::SmallString< InternalLen >::starts_with(), llvm::SmallString< InternalLen >::substr(), llvm:🆑:TokenizeGNUCommandLine(), and tokenizeWindowsCommandLineImpl().

substr()


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