LLVM 22.0.0git
llvm::StringRef Class Reference

StringRef - Represent a constant reference to a string, i.e. More...

#include "llvm/ADT/StringRef.h"

Inheritance diagram for llvm::StringRef:
[legend]

Public Types

using iterator = const char *
using const_iterator = const char *
using size_type = size_t
using value_type = char
using reverse_iterator = std::reverse_iterator<iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>

Public Member Functions

Constructors
 StringRef ()=default
 Construct an empty string ref.
 StringRef (std::nullptr_t)=delete
 Disable conversion from nullptr.
constexpr StringRef (const char *Str LLVM_LIFETIME_BOUND)
 Construct a string ref from a cstring.
constexpr StringRef (const char *data LLVM_LIFETIME_BOUND, size_t length)
 Construct a string ref from a pointer and length.
 StringRef (const std::string &Str)
 Construct a string ref from an std::string.
constexpr StringRef (std::string_view Str)
 Construct a string ref from an std::string_view.
Iterators
iterator begin () const
iterator end () const
reverse_iterator rbegin () const
reverse_iterator rend () const
const unsigned charbytes_begin () const
const unsigned charbytes_end () const
iterator_range< const unsigned char * > bytes () const
String Operations
constexpr const chardata () const
 data - Get a pointer to the start of the string (which may not be null terminated).
constexpr bool empty () const
 empty - Check if the string is empty.
constexpr size_t size () const
 size - Get the string size.
char front () const
 front - Get the first character in the string.
char back () const
 back - Get the last character in the string.
template<typename Allocator>
StringRef copy (Allocator &A) const
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.
LLVM_ABI int compare_insensitive (StringRef RHS) const
 Compare two strings, ignoring case.
LLVM_ABI int compare_numeric (StringRef RHS) const
 compare_numeric - Compare two strings, treating sequences of digits as numbers.
LLVM_ABI unsigned edit_distance (StringRef Other, bool AllowReplacements=true, unsigned MaxEditDistance=0) const
 Determine the edit distance between this string and another string.
LLVM_ABI unsigned edit_distance_insensitive (StringRef Other, bool AllowReplacements=true, unsigned MaxEditDistance=0) const
std::string str () const
 str - Get the contents as an std::string.
LLVM_ABI std::string lower () const
LLVM_ABI std::string upper () const
 Convert the given ASCII string to uppercase.
Operator Overloads
char operator[] (size_t Index) const
template<typename T>
std::enable_if_t< std::is_same< T, std::string >::value, StringRef > & operator= (T &&Str)=delete
 Disallow accidental assignment from a temporary std::string.
Type Conversions
constexpr operator std::string_view () const
String Predicates
bool starts_with (StringRef Prefix) const
 Check if this string starts with the given Prefix.
bool starts_with (char Prefix) const
LLVM_ABI bool starts_with_insensitive (StringRef Prefix) const
 Check if this string starts with the given Prefix, ignoring case.
bool ends_with (StringRef Suffix) const
 Check if this string ends with the given Suffix.
bool ends_with (char Suffix) const
LLVM_ABI bool ends_with_insensitive (StringRef Suffix) const
 Check if this string ends with the given Suffix, ignoring case.
String Searching
size_t find (char C, size_t From=0) const
 Search for the first character C in the string.
LLVM_ABI size_t find_insensitive (char C, size_t From=0) const
 Search for the first character C in the string, ignoring case.
size_t find_if (function_ref< bool(char)> F, size_t From=0) const
 Search for the first character satisfying the predicate F.
size_t find_if_not (function_ref< bool(char)> F, size_t From=0) const
 Search for the first character not satisfying the predicate F.
LLVM_ABI size_t find (StringRef Str, size_t From=0) const
 Search for the first string Str in the string.
LLVM_ABI size_t find_insensitive (StringRef Str, size_t From=0) const
 Search for the first string Str in the string, ignoring case.
size_t rfind (char C, size_t From=npos) const
 Search for the last character C in the string.
LLVM_ABI size_t rfind_insensitive (char C, size_t From=npos) const
 Search for the last character C in the string, ignoring case.
LLVM_ABI size_t rfind (StringRef Str) const
 Search for the last string Str in the string.
LLVM_ABI size_t rfind_insensitive (StringRef Str) const
 Search for the last string Str in the string, ignoring case.
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.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI 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=npos) const
 Find the last character in the string that is C, or npos if not found.
LLVM_ABI size_t find_last_of (StringRef Chars, size_t From=npos) const
 Find the last character in the string that is in C, or npos if not found.
LLVM_ABI size_t find_last_not_of (char C, size_t From=npos) const
 Find the last character in the string that is not C, or npos if not found.
LLVM_ABI size_t find_last_not_of (StringRef Chars, size_t From=npos) const
 Find the last character in the string that is not in Chars, or npos if not found.
bool contains (StringRef Other) const
 Return true if the given string is a substring of *this, and false otherwise.
bool contains (char C) const
 Return true if the given character is contained in *this, and false otherwise.
bool contains_insensitive (StringRef Other) const
 Return true if the given string is a substring of *this, and false otherwise.
bool contains_insensitive (char C) const
 Return true if the given character is contained in *this, and false otherwise.
Helpful Algorithms
size_t count (char C) const
 Return the number of occurrences of C in the string.
LLVM_ABI size_t count (StringRef Str) const
 Return the number of non-overlapped occurrences of Str in the string.
template<typename T>
bool getAsInteger (unsigned Radix, T &Result) const
 Parse the current string as an integer of the specified radix.
template<typename T>
bool consumeInteger (unsigned Radix, T &Result)
 Parse the current string as an integer of the specified radix.
LLVM_ABI bool getAsInteger (unsigned Radix, APInt &Result) const
 Parse the current string as an integer of the specified Radix, or of an autosensed radix if the Radix given is 0.
LLVM_ABI bool consumeInteger (unsigned Radix, APInt &Result)
 Parse the current string as an integer of the specified Radix.
LLVM_ABI bool getAsDouble (double &Result, bool AllowInexact=true) const
 Parse the current string as an IEEE double-precision floating point value.
Substring Operations
constexpr StringRef substr (size_t Start, size_t N=npos) const
 Return a reference to the substring from [Start, Start + N).
StringRef take_front (size_t N=1) const
 Return a StringRef equal to 'this' but with only the first N elements remaining.
StringRef take_back (size_t N=1) const
 Return a StringRef equal to 'this' but with only the last N elements remaining.
StringRef take_while (function_ref< bool(char)> F) const
 Return the longest prefix of 'this' such that every character in the prefix satisfies the given predicate.
StringRef take_until (function_ref< bool(char)> F) const
 Return the longest prefix of 'this' such that no character in the prefix satisfies the given predicate.
StringRef drop_front (size_t N=1) const
 Return a StringRef equal to 'this' but with the first N elements dropped.
StringRef drop_back (size_t N=1) const
 Return a StringRef equal to 'this' but with the last N elements dropped.
StringRef drop_while (function_ref< bool(char)> F) const
 Return a StringRef equal to 'this', but with all characters satisfying the given predicate dropped from the beginning of the string.
StringRef drop_until (function_ref< bool(char)> F) const
 Return a StringRef equal to 'this', but with all characters not satisfying the given predicate dropped from the beginning of the string.
bool consume_front (StringRef Prefix)
 Returns true if this StringRef has the given prefix and removes that prefix.
bool consume_front_insensitive (StringRef Prefix)
 Returns true if this StringRef has the given prefix, ignoring case, and removes that prefix.
bool consume_back (StringRef Suffix)
 Returns true if this StringRef has the given suffix and removes that suffix.
bool consume_back_insensitive (StringRef Suffix)
 Returns true if this StringRef has the given suffix, ignoring case, and removes that suffix.
StringRef slice (size_t Start, size_t End) const
 Return a reference to the substring from [Start, End).
std::pair< StringRef, StringRefsplit (char Separator) const
 Split into two substrings around the first occurrence of a separator character.
std::pair< StringRef, StringRefsplit (StringRef Separator) const
 Split into two substrings around the first occurrence of a separator string.
std::pair< StringRef, StringRefrsplit (StringRef Separator) const
 Split into two substrings around the last occurrence of a separator string.
LLVM_ABI void split (SmallVectorImpl< StringRef > &A, StringRef Separator, int MaxSplit=-1, bool KeepEmpty=true) const
 Split into substrings around the occurrences of a separator string.
LLVM_ABI void split (SmallVectorImpl< StringRef > &A, char Separator, int MaxSplit=-1, bool KeepEmpty=true) const
 Split into substrings around the occurrences of a separator character.
std::pair< StringRef, StringRefrsplit (char Separator) const
 Split into two substrings around the last occurrence of a separator character.
StringRef ltrim (char Char) const
 Return string with consecutive Char characters starting from the the left removed.
StringRef ltrim (StringRef Chars=" \t\n\v\f\r") const
 Return string with consecutive characters in Chars starting from the left removed.
StringRef rtrim (char Char) const
 Return string with consecutive Char characters starting from the right removed.
StringRef rtrim (StringRef Chars=" \t\n\v\f\r") const
 Return string with consecutive characters in Chars starting from the right removed.
StringRef trim (char Char) const
 Return string with consecutive Char characters starting from the left and right removed.
StringRef trim (StringRef Chars=" \t\n\v\f\r") const
 Return string with consecutive characters in Chars starting from the left and right removed.
StringRef detectEOL () const
 Detect the line ending style of the string.

Static Public Attributes

static constexpr size_t npos = ~size_t(0)

Detailed Description

StringRef - Represent a constant reference to a string, i.e.

a character array and a length, which need not be null terminated.

This class does not own the string data, it is expected to be used in situations where the character data resides in some other buffer, whose lifetime extends past that of the StringRef. For this reason, it is not in general safe to store a StringRef.

Definition at line 55 of file StringRef.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 60 of file StringRef.h.

◆ const_reverse_iterator

Definition at line 64 of file StringRef.h.

◆ iterator

Definition at line 59 of file StringRef.h.

◆ reverse_iterator

using llvm::StringRef::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 63 of file StringRef.h.

◆ size_type

Definition at line 61 of file StringRef.h.

◆ value_type

Definition at line 62 of file StringRef.h.

Constructor & Destructor Documentation

◆ StringRef() [1/6]

◆ StringRef() [2/6]

llvm::StringRef::StringRef ( std::nullptr_t )
delete

Disable conversion from nullptr.

This prevents things like if (S == nullptr)

◆ StringRef() [3/6]

llvm::StringRef::StringRef ( const char *Str LLVM_LIFETIME_BOUND)
inlineconstexpr

Construct a string ref from a cstring.

Definition at line 92 of file StringRef.h.

References else, if(), and LLVM_LIFETIME_BOUND.

◆ StringRef() [4/6]

llvm::StringRef::StringRef ( const char *data LLVM_LIFETIME_BOUND,
size_t length )
inlineconstexpr

Construct a string ref from a pointer and length.

Definition at line 104 of file StringRef.h.

References data(), and LLVM_LIFETIME_BOUND.

◆ StringRef() [5/6]

llvm::StringRef::StringRef ( const std::string & Str)
inline

Construct a string ref from an std::string.

Definition at line 109 of file StringRef.h.

References data().

◆ StringRef() [6/6]

llvm::StringRef::StringRef ( std::string_view Str)
inlineconstexpr

Construct a string ref from an std::string_view.

Definition at line 113 of file StringRef.h.

References data(), and size().

Member Function Documentation

◆ back()

◆ begin()

iterator llvm::StringRef::begin ( ) const
inline

Definition at line 120 of file StringRef.h.

References data.

Referenced by llvm::sys::path::append(), llvm::MDString::begin(), llvm::yaml::BlockScalarNode::BlockScalarNode(), bytes_begin(), chopOneUTF32(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::detail::IEEEFloat::convertFromString(), llvm::convertUTF8ToUTF16String(), copy(), llvm::APInt::getBitsNeeded(), llvm::sys::detail::getHostCPUNameForPowerPC(), getHostID(), llvm::object::Archive::Symbol::getName(), llvm::object::Archive::getNumberOfSymbols(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), llvm::object::COFFObjectFile::getRelocationTypeName(), llvm::object::MachOObjectFile::getRelocationTypeName(), llvm::object::WasmObjectFile::getRelocationTypeName(), llvm::object::XCOFFObjectFile::getRelocationTypeName(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), llvm::TextInstrProfReader::hasFormat(), llvm::Timer::init(), llvm::object::DirectX::Signature::initialize(), llvm::pdb::NamedStreamMap::load(), lower(), llvm::object::MachOUniversalBinary::MachOUniversalBinary(), llvm::sys::fs::make_absolute(), llvm::SmallString< 0 >::operator+=(), llvm::object::Archive::Child::operator==(), parseMaybeMangledName(), percentDecode(), readInteger(), readStruct(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::reconstituteName(), rend(), llvm::sys::path::replace_extension(), llvm::RewriteBuffer::ReplaceText(), llvm::yaml::ScalarNode::ScalarNode(), llvm::EngineBuilder::setMArch(), llvm::EngineBuilder::setMCPU(), llvm::TimerGroup::setName(), llvm::sys::unicode::startsWith(), llvm::object::Archive::symbol_begin(), and upper().

◆ bytes()

iterator_range< const unsigned char * > llvm::StringRef::bytes ( ) const
inline

Definition at line 138 of file StringRef.h.

References bytes_begin(), bytes_end(), and llvm::make_range().

Referenced by llvm::djbHash().

◆ bytes_begin()

◆ bytes_end()

◆ compare()

int llvm::StringRef::compare ( StringRef RHS) const
inlinenodiscard

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.

Definition at line 187 of file StringRef.h.

References data, RHS, size(), and StringRef().

Referenced by llvm::AttributeImpl::cmp(), llvm::SmallString< 0 >::compare(), and compareNames().

◆ compare_insensitive()

int StringRef::compare_insensitive ( StringRef RHS) const
nodiscard

◆ compare_numeric()

int StringRef::compare_numeric ( StringRef RHS) const
nodiscard

compare_numeric - Compare two strings, treating sequences of digits as numbers.

compare_numeric - Compare strings, handle embedded numbers.

Definition at line 62 of file StringRef.cpp.

References data(), I, llvm::isDigit(), size(), and StringRef().

Referenced by llvm::SmallString< 0 >::compare_numeric(), and llvm::LessRecord::operator()().

◆ consume_back()

bool llvm::StringRef::consume_back ( StringRef Suffix)
inline

◆ consume_back_insensitive()

bool llvm::StringRef::consume_back_insensitive ( StringRef Suffix)
inline

Returns true if this StringRef has the given suffix, ignoring case, and removes that suffix.

Definition at line 675 of file StringRef.h.

References ends_with_insensitive(), size(), StringRef(), and substr().

◆ consume_front()

◆ consume_front_insensitive()

bool llvm::StringRef::consume_front_insensitive ( StringRef Prefix)
inline

Returns true if this StringRef has the given prefix, ignoring case, and removes that prefix.

Definition at line 655 of file StringRef.h.

References starts_with_insensitive(), StringRef(), and substr().

◆ consumeInteger() [1/2]

bool StringRef::consumeInteger ( unsigned Radix,
APInt & Result )

Parse the current string as an integer of the specified Radix.

If Radix is specified as zero, this does radix autosensing using extended C rules: 0 is octal, 0x is hex, 0b is binary.

If the string does not begin with a number of the specified radix, this returns true to signify the error. The string is considered erroneous if empty. The portion of the string representing the discovered numeric value is removed from the beginning of the string.

Definition at line 507 of file StringRef.cpp.

References assert(), llvm::BitWidth, llvm::getAutoSenseRadix(), size(), and StringRef().

◆ consumeInteger() [2/2]

template<typename T>
bool llvm::StringRef::consumeInteger ( unsigned Radix,
T & Result )
inline

Parse the current string as an integer of the specified radix.

If Radix is specified as zero, this does radix autosensing using extended C rules: 0 is octal, 0x is hex, 0b is binary.

If the string does not begin with a number of the specified radix, this returns true to signify the error. The string is considered erroneous if empty or if it overflows T. The portion of the string representing the discovered numeric value is removed from the beginning of the string.

Definition at line 509 of file StringRef.h.

References llvm::consumeSignedInteger(), llvm::consumeUnsignedInteger(), and T.

Referenced by llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), FindCheckType(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), llvm::yaml::ScalarTraits< FrameIndex >::input(), llvm::Pattern::parseNumericSubstitutionBlock(), parseReplacementItem(), llvm::AMDGPUPALMetadata::setFromString(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().

◆ contains() [1/2]

bool llvm::StringRef::contains ( char C) const
inlinenodiscard

Return true if the given character is contained in *this, and false otherwise.

Definition at line 440 of file StringRef.h.

References llvm::CallingConv::C, find_first_of(), and npos.

◆ contains() [2/2]

◆ contains_insensitive() [1/2]

bool llvm::StringRef::contains_insensitive ( char C) const
inlinenodiscard

Return true if the given character is contained in *this, and false otherwise.

Definition at line 452 of file StringRef.h.

References llvm::CallingConv::C, find_insensitive(), and npos.

◆ contains_insensitive() [2/2]

bool llvm::StringRef::contains_insensitive ( StringRef Other) const
inlinenodiscard

Return true if the given string is a substring of *this, and false otherwise.

Definition at line 446 of file StringRef.h.

References find_insensitive(), npos, llvm::Other, and StringRef().

Referenced by llvm::generateReadImageInst().

◆ copy()

template<typename Allocator>
StringRef llvm::StringRef::copy ( Allocator & A) const
inlinenodiscard

Definition at line 170 of file StringRef.h.

References A(), Allocator, begin(), empty(), end(), size(), and StringRef().

Referenced by llvm::yaml::Document::parseBlockNode().

◆ count() [1/2]

◆ count() [2/2]

size_t StringRef::count ( StringRef Str) const

Return the number of non-overlapped occurrences of Str in the string.

count - Return the number of non-overlapped occurrences of

  • Str in the string.

Definition at line 372 of file StringRef.cpp.

References llvm::Count, find(), N, npos, and StringRef().

◆ data()

const char * llvm::StringRef::data ( ) const
inlinenodiscardconstexpr

data - Get a pointer to the start of the string (which may not be null terminated).

Definition at line 148 of file StringRef.h.

Referenced by llvm::msgpack::Document::addString(), annotateAllFunctions(), appendGlobalSymbolTableInfo(), llvm::object::BigArchive::BigArchive(), llvm::CachedHashString::CachedHashString(), llvm::FileCheckString::CheckDag(), llvm::FileCheckString::CheckNext(), llvm::FileCheckString::CheckSame(), compare_numeric(), constructSegment(), constructSymbolEntry(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::jitlink::createLinkGraphFromELFObject(), createMemberHeaderParseError(), llvm::MachO::createRegexFromGlob(), llvm::object::CompressedOffloadBundle::decompress(), llvm::DWARFDebugPubTable::dump(), llvm::DWARFDebugLoclists::dumpRawEntry(), edit_distance(), edit_distance_insensitive(), llvm::BitstreamWriter::emitBlob(), llvm::DWARFYAML::emitDebugAbbrev(), llvm::DWARFYAML::emitDebugLine(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::emitFDE(), ends_with(), llvm::cl::Option::error(), ExpandBasePaths(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), llvm::DWARFListType< ListEntryType >::extract(), find(), find_first_not_of(), find_first_of(), find_last_not_of(), find_last_not_of(), find_last_of(), FindFirstMatchingPrefix(), llvm::json::fixUTF8(), llvm::RuntimeDyldCOFFAArch64::generateRelocationStub(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), llvm::ErrorDiagnostic::get(), llvm::irsymtab::storage::Range< T >::get(), llvm::irsymtab::storage::Str::get(), llvm::DataExtractor::getCStr(), llvm::DataExtractor::getCStr(), llvm::LTOModule::getDependentLibrary(), llvm::objcopy::elf::SRecord::getHeader(), llvm::HexagonInstrInfo::getInlineAsmLength(), getInstructionID(), llvm::dwarf_linker::parallel::SectionDescriptor::getIntVal(), llvm::NVPTXRegisterInfo::getName(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), getNextLoadCommandInfo(), llvm::opt::ArgList::GetOrMakeJoinedArgString(), llvm::PPCTargetLowering::getRegForInlineAsmConstraint(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLowering::getRegForInlineAsmConstraint(), llvm::RuntimeDyldMachO::getRelocationValueRef(), llvm::lto::LTO::getRuntimeLibcallSymbols(), llvm::object::ELFFile< ELFT >::getSectionName(), getUUID(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), gsiRecordCmp(), llvm::dwarf_linker::guessDeveloperDir(), isAsmComment(), llvm::json::isUTF8(), LLVMGetDebugLocDirectory(), LLVMGetDebugLocFilename(), LLVMGetInlineAsmAsmString(), LLVMGetInlineAsmConstraintString(), LLVMGetNamedMetadataName(), llvm::LegalizerHelper::lowerReadWriteRegister(), llvm::remarks::magicToFormat(), llvm::Pattern::match(), PrefixMatcher::match(), llvm::remarks::parseFormat(), llvm::remarks::parseHotnessThresholdOption(), parseMaybeMangledName(), llvm::Pattern::parseNumericSubstitutionBlock(), llvm::Pattern::parsePattern(), parseRD(), parseStrTabSize(), parseTypeIdSummaryRecord(), parseV2DirFileTables(), parseVersion(), parseWholeProgramDevirtResolution(), llvm::X86Operand::print(), ProcessMatchResult(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::irsymtab::readBitcode(), llvm::FileCheck::readCheckFile(), readCoverageMappingData(), llvm::jitlink::readTargetMachineArch(), llvm::LessRecordRegister::RecordParts::RecordParts(), llvm::Regex::Regex(), llvm::report_fatal_error(), reportError(), rfind_insensitive(), llvm::StringSaver::save(), llvm::orc::MachOBuilder< MachOTraits >::Section::Section(), llvm::orc::MachOBuilder< MachOTraits >::Segment::Segment(), llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >::serialize(), StringRef(), StringRef(), StringRef(), llvm::detail::to_float(), llvm::cl::TokenizeGNUCommandLine(), llvm::Twine::Twine(), llvm::Twine::Twine(), llvm::codeview::TypeServer2Record::TypeServer2Record(), and llvm::yaml::yaml2archive().

◆ detectEOL()

StringRef llvm::StringRef::detectEOL ( ) const
inlinenodiscard

Detect the line ending style of the string.

If the string contains a line ending, return the line ending character sequence that is detected. Otherwise return '
' for unix line endings.

Returns
- The line ending character sequence.

Definition at line 840 of file StringRef.h.

References data, find(), npos, size(), and StringRef().

◆ drop_back()

StringRef llvm::StringRef::drop_back ( size_t N = 1) const
inlinenodiscard

◆ drop_front()

StringRef llvm::StringRef::drop_front ( size_t N = 1) const
inlinenodiscard

Return a StringRef equal to 'this' but with the first N elements dropped.

Definition at line 619 of file StringRef.h.

References assert(), N, size(), StringRef(), and substr().

Referenced by llvm::symbolize::advanceTo(), llvm::objcopy::elf::OwnedDataSection::appendHexData(), llvm::ELFAttrs::attrTypeAsString(), llvm::ELFAttrs::attrTypeFromString(), chopOneUTF32(), llvm::consumeSignedInteger(), llvm::object::OffloadBundleURI::createFileURI(), llvm::omp::deconstructOpenMPKernelName(), extractOffloadBundle(), find_if(), FindCheckType(), FindFirstMatchingPrefix(), llvm::AArch64::getArchExtFeature(), llvm::objcopy::elf::IHexRecord::getChecksum(), llvm::cl::getCompilerBuildConfig(), getDXILArchNameFromShaderModel(), llvm::getFuncNameWithoutPrefix(), getLiteralSectionName(), llvm::memprof::getMemprofOptionsSymbolName(), llvm::getObjCNamesIfSelector(), llvm::codeview::getSymbolName(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), llvm::yaml::isNumeric(), ltrim(), ltrim(), llvm::RISCVISAInfo::parseArchString(), llvm::yaml::parseBool(), llvm::DebugCounter::parseChunks(), llvm::AArch64::ExtensionSet::parseModifier(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::Pattern::parseNumericSubstitutionBlock(), parseScalarValue(), parseStrTabSize(), parseSVERegAsConstraint(), llvm::MachO::parseSymbol(), parseThunkName(), parseVersion(), popFront(), printSourceLine(), llvm::TextCodeGenDataReader::read(), llvm::FileCheck::readCheckFile(), llvm::sys::path::remove_dots(), llvm::MCContext::setGenDwarfRootFile(), splitLiteralAndReplacement(), take_back(), llvm::orc::DLLImportDefinitionGenerator::tryToGenerate(), upgradeLoopTag(), and uriFromAbsolutePath().

◆ drop_until()

StringRef llvm::StringRef::drop_until ( function_ref< bool(char)> F) const
inlinenodiscard

Return a StringRef equal to 'this', but with all characters not satisfying the given predicate dropped from the beginning of the string.

Definition at line 639 of file StringRef.h.

References F, find_if(), StringRef(), and substr().

◆ drop_while()

StringRef llvm::StringRef::drop_while ( function_ref< bool(char)> F) const
inlinenodiscard

Return a StringRef equal to 'this', but with all characters satisfying the given predicate dropped from the beginning of the string.

Definition at line 633 of file StringRef.h.

References F, find_if_not(), StringRef(), and substr().

◆ edit_distance()

unsigned StringRef::edit_distance ( llvm::StringRef Other,
bool AllowReplacements = true,
unsigned MaxEditDistance = 0 ) const
nodiscard

Determine the edit distance between this string and another string.

Parameters
Otherthe string to compare this string against.
AllowReplacementswhether to allow character replacements (change one character into another) as a single operation, rather than as two operations (an insertion and a removal).
MaxEditDistanceIf non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns MaxEditDistance+1.
Returns
the minimum number of character insertions, removals, or (if AllowReplacements is true) replacements needed to transform one of the given strings into the other. If zero, the strings are identical.

Definition at line 93 of file StringRef.cpp.

References llvm::ArrayRef(), llvm::ComputeEditDistance(), data(), llvm::Other, and size().

Referenced by LookupNearestOption().

◆ edit_distance_insensitive()

unsigned llvm::StringRef::edit_distance_insensitive ( StringRef Other,
bool AllowReplacements = true,
unsigned MaxEditDistance = 0 ) const
nodiscard

◆ empty()

bool llvm::StringRef::empty ( ) const
inlinenodiscardconstexpr

empty - Check if the string is empty.

Definition at line 151 of file StringRef.h.

References size().

Referenced by addMappingsFromTLI(), llvm::MachO::InterfaceFile::addRPath(), llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), llvm::analyzeImportedModule(), llvm::dwarf_linker::parallel::CompileUnit::analyzeImportedModule(), llvm::objcopy::elf::OwnedDataSection::appendHexData(), llvm::object::applyNameType(), back(), buildDWODescription(), llvm::caseFoldingDjbHash(), llvm::checkDebugInfoMetadata(), chopOneUTF32(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), collectAddressSymbols(), llvm::InlineAsm::collectAsmStrs(), collectMetadataInfo(), llvm::DIEHash::computeCUSignature(), llvm::ARM::computeTargetABI(), llvm::LoongArchABI::computeTargetABI(), llvm::MipsABIInfo::computeTargetABI(), llvm::RISCVABI::computeTargetABI(), llvm::DwarfUnit::constructTypeDIE(), llvm::consumeUnsignedInteger(), llvm::detail::IEEEFloat::convertFromString(), llvm::convertToCamelFromSnakeCase(), llvm::convertToSnakeFromCamelCase(), llvm::convertUTF8ToUTF16String(), copy(), llvm::memprof::RawMemProfReader::create(), llvm::sampleprof::SampleProfileReader::create(), llvm::vfs::RedirectingFileSystem::create(), llvm::sys::fs::create_directories(), llvm::sampleprof::SampleContext::createCtxVectorFromStr(), llvm::dxil::ResourceTypeInfo::createElementStruct(), createProfileFileNameVar(), llvm::createProfileFileNameVar(), llvm::createSanitizerCtorAndInitFunctions(), llvm::sys::fs::createTemporaryFile(), llvm::declareSanitizerInitFunction(), llvm::FileCheckPatternContext::defineCmdlineVariables(), llvm::remarks::detectFormat(), llvm::ELFYAML::dropUniqueSuffix(), llvm::gsym::GsymReader::dump(), llvm::DWARFDebugLoclists::dumpRawEntry(), llvm::emitAMDGPUPrintfCall(), emitCATTR(), llvm::SystemZHLASMAsmStreamer::EmitComment(), emitComments(), EmitGenDwarfAbbrev(), EmitGenDwarfInfo(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), llvm::ARMTargetStreamer::emitTargetAttributes(), ends_with(), llvm::cl::Option::error(), ExpandBasePaths(), llvm::memprof::extractCallsFromIR(), llvm::AMDGPU::fillAMDGPUFeatureMap(), find_if(), FindFirstMatchingPrefix(), llvm::sampleprof::FunctionSamples::findFunctionSamplesAt(), llvm::finishBuildOpDecorate(), llvm::format_provider< llvm::lsp::Position >::format(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), llvm::JITSymbolFlags::fromGlobalValue(), front(), llvm::Attribute::get(), llvm::get_stable_name(), llvm::get_threadpool_strategy(), getAbsolutePath(), llvm::AMDGPU::getArchFamilyNameAMDGCN(), llvm::ARM::getARMCPUForArch(), llvm::DIMacroNode::getCanonicalMDString(), llvm::DINode::getCanonicalMDString(), llvm::objcopy::elf::IHexRecord::getChecksum(), llvm::dwarf_linker::classic::DeclContextTree::getChildDeclContext(), llvm::MCContext::getCOFFSection(), llvm::dwarf_linker::parallel::CompileUnit::getDirAndFilenameFromLineTable(), llvm::MCContext::getELFSection(), getExtensionVersion(), getFeatures(), llvm::DWARFDebugLine::Prologue::getFileNameByIndex(), llvm::getFnAttrParsedVector(), llvm::getFuncNameWithoutPrefix(), llvm::gsym::GsymReader::getFunctionInfoDataAtIndex(), llvm::object::AbstractArchiveMemberHeader::getGID(), llvm::GlobalValue::getGlobalIdentifier(), getGPUOrDefault(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::AMDGPU::getIntegerVecAttribute(), llvm::X86TargetLowering::getIRStackGuard(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::object::MachOObjectFile::getLibraryShortNameByIndex(), getMipsABI(), llvm::PPC::getNormalizedPPCTargetCPU(), getOpEnabled(), getOpRefinementSteps(), llvm::DwarfCompileUnit::getOrCreateCommonBlock(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::getOrCreateSanitizerCtorAndInitFunctions(), llvm::MCContext::getOrCreateSymbol(), getPassNameAndInstanceNum(), llvm::getPGOFuncName(), getPrettyScopeName(), llvm::MCObjectFileInfo::getPseudoProbeDescSection(), getQualifiedNameIndex(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), getSearchPaths(), llvm::TargetLoweringObjectFile::getSectionForConstant(), llvm::TargetLoweringObjectFileELF::getSectionForConstant(), getStackGuard(), llvm::getSubDirectoryPath(), llvm::M68kMCInstLower::GetSymbolFromOperand(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), llvm::lto::getThinLTOOutputFile(), llvm::MCSymbolXCOFF::getUnqualifiedName(), getUUID(), llvm::VFABI::getVectorVariantNames(), llvm::yaml::Node::getVerbatimTag(), llvm::TargetLibraryInfoImpl::getWidestVF(), handleArgs(), llvm::objcopy::coff::handleArgs(), llvm::DWARFVerifier::handleDebugAbbrev(), HandlePrefixedOrGroupedOption(), llvm::sys::path::has_extension(), llvm::sys::path::has_filename(), llvm::sys::path::has_parent_path(), llvm::sys::path::has_relative_path(), llvm::sys::path::has_root_directory(), llvm::sys::path::has_root_name(), llvm::sys::path::has_root_path(), llvm::sys::path::has_stem(), llvm::SubtargetFeatures::hasFlag(), llvm::GlobalValue::hasSection(), llvm::X86TargetLowering::hasStackProbeSymbol(), llvm::mustache::hasTextBehind(), llvm::CSKYSubtarget::initializeSubtargetDependencies(), llvm::MSP430Subtarget::initializeSubtargetDependencies(), llvm::SparcSubtarget::initializeSubtargetDependencies(), llvm::X86TargetLowering::insertSSPDeclarations(), llvm::gsym::GsymCreator::insertString(), insertWaveSizeFeature(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::ELFCompactAttrParser::integerAttribute(), isCanonical(), llvm::SubtargetFeatures::isEnabled(), llvm::TargetLibraryInfoImpl::isFunctionVectorizable(), llvm::TargetLibraryInfoImpl::isFunctionVectorizable(), llvm::yaml::isNumeric(), isStructurallyValidScheme(), llvm::RISCVISAInfo::isSupportedExtensionWithVersion(), llvm::AMDGPU::SendMsg::isValidMsgOp(), llvm::AMDGPU::MTBUFFormat::isValidNfmt(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), loadBinaryFormat(), LookupNearestOption(), llvm::TargetRegistry::lookupTarget(), llvm::codeview::CodeViewRecordIO::mapStringZVectorZ(), llvm::GlobPattern::match(), PrefixMatcher::match(), llvm::yaml::needsQuotes(), llvm::Triple::normalize(), llvm::gsym::operator<<(), llvm::InterleavedRange< Range >::operator<<, optimizeNaN(), llvm::AMDGPULibFunc::parse(), llvm::DWARFDebugFrame::parse(), llvm::PassBuilder::parseAAPipeline(), llvm::MachO::parseAliasList(), parseAMDGPUAtomicOptimizerStrategy(), parseAMDGPUAttributorPassOptions(), llvm::AArch64::parseArchExtension(), llvm::RISCVISAInfo::parseArchString(), parseARMArch(), parseCC(), llvm::DebugCounter::parseChunks(), parseDebugType(), llvm::parseDenormalFPAttribute(), llvm::remarks::ParsedStringTable::ParsedStringTable(), parseInt(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::Pattern::parseNumericSubstitutionBlock(), llvm::Pattern::parsePattern(), llvm::remarks::YAMLRemarkParser::parseRemark(), parseReplacementItem(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::PassBuilder::parseSinglePassOption(), parseSubArch(), parseV2DirFileTables(), llvm::MCInstPrinter::printAnnotation(), llvm::ELFCompactAttrParser::printAttribute(), printCFI(), PrintCFIEscape(), printExtendedName(), PrintExtension(), printFile(), llvm::hlsl::rootsig::printFlags(), llvm::AMDGPUInstPrinter::printHwreg(), llvm::NVPTXInstPrinter::printMmaCode(), llvm::printOp(), llvm::cl::generic_parser_base::printOptionInfo(), RAGreedyPass::printPipeline(), llvm::AMDGPUInstPrinter::printSendMsg(), llvm::SparcELFMCAsmInfo::printSpecifierExpr(), llvm::XtensaMCAsmInfo::printSpecifierExpr(), processLoadCommands(), llvm::AttributeImpl::Profile(), llvm::irsymtab::readBitcode(), llvm::FileCheck::readCheckFile(), llvm::GCOVFile::readGCNO(), llvm::lsp::JSONTransportInputOverFile::readStandardMessage(), llvm::LessRecordRegister::RecordParts::RecordParts(), remarkAlloca(), llvm::sys::path::remove_dots(), llvm::sys::path::replace_path_prefix(), runOnFunction(), StaticDataAnnotator::runOnModule(), llvm::sampleprof::SampleContext::SampleContext(), sanitizeFunctionName(), llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save(), llvm::StringSaver::save(), saveTempBitcode(), llvm::yaml::Output::scalarString(), llvm::Hexagon_MC::selectHexagonCPU(), llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >::serialize(), llvm::MachO::InterfaceFile::setFromBinaryAttrs(), llvm::codegen::setFunctionAttributes(), llvm::MCContext::setGenDwarfRootFile(), llvm::GlobalValue::setPartition(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline(), llvm::GlobalObject::setSection(), llvm::lto::setupStatsFile(), llvm::VFABI::setVectorVariantNames(), shouldPrintOption(), llvm::MachO::shouldSkipSymLink(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), llvm::SIModeRegisterDefaults::SIModeRegisterDefaults(), llvm::SPIRVTranslate(), split(), split(), splitLiteralAndReplacement(), starts_with(), llvm::sys::unicode::startsWith(), llvm::ELFCompactAttrParser::stringAttribute(), llvm::Regex::sub(), llvm::BTFParser::symbolize(), llvm::symbolize::toJSON(), llvm::InlineAdvisorAnalysis::Result::tryCreate(), llvm::VFABI::tryDemangleForVFABI(), llvm::MCDwarfLineTableHeader::tryGetFile(), llvm::VersionTuple::tryParse(), updateAndRemoveSymbols(), llvm::UpgradeAttributes(), upgradeNVVMFnVectorAttr(), uriFromAbsolutePath(), llvm::InlineAsm::verify(), verifyFuncBFI(), llvm::cgdata::warn(), llvm::write(), writeDWARFExpression(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), and llvm::writeStringsAndOffsets().

◆ end()

iterator llvm::StringRef::end ( ) const
inline

◆ ends_with() [1/2]

bool llvm::StringRef::ends_with ( char Suffix) const
inlinenodiscard

Definition at line 286 of file StringRef.h.

References back(), and empty().

◆ ends_with() [2/2]

◆ ends_with_insensitive()

bool StringRef::ends_with_insensitive ( StringRef Suffix) const
nodiscard

Check if this string ends with the given Suffix, ignoring case.

Definition at line 51 of file StringRef.cpp.

References ascii_strncasecmp(), size(), StringRef(), and take_back().

Referenced by consume_back_insensitive(), and llvm::orc::LoadAndLinkDynLibrary::operator()().

◆ equals_insensitive()

◆ find() [1/2]

size_t llvm::StringRef::find ( char C,
size_t From = 0 ) const
inlinenodiscard

Search for the first character C in the string.

Returns
The index of the first occurrence of C, or npos if not found.

Definition at line 301 of file StringRef.h.

References llvm::CallingConv::C.

Referenced by checkLinkerOptCommand(), CommaSeparateAndAddOccurrence(), count(), llvm::SystemZHLASMAsmStreamer::EmitComment(), emitComments(), llvm::AsmPrinter::emitPCSections(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::ELFObjectWriter::executePostLayoutBinding(), ExpandBasePaths(), llvm::SmallString< 0 >::find(), llvm::SmallString< 0 >::find(), llvm::ReplayInlineAdvisor::getAdviceImpl(), llvm::PGOContextualProfile::getFunctionName(), llvm::NVPTXTTIImpl::getInstructionCost(), getLiteralSectionName(), llvm::getObjCNamesIfSelector(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), llvm::PassInstrumentationCallbacks::getPassNameForClassName(), llvm::object::ArchiveMemberHeader::getRawName(), llvm::codeview::DebugStringTableSubsection::getStringForId(), llvm::isSpecialPass(), llvm::lookupBuiltin(), llvm::Pattern::match(), llvm::RISCVISAInfo::parseArchString(), parseBraceExpansions(), llvm::SPIRV::parseBuiltinCallArgumentType(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), llvm::SPIRV::parseBuiltinTypeStr(), parseDebugType(), parseFilePathFromURI(), ParseLine(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::Pattern::parseNumericSubstitutionBlock(), llvm::Pattern::parsePattern(), printSourceLine(), llvm::object::replace(), split(), split(), and llvm::Regex::sub().

◆ find() [2/2]

size_t StringRef::find ( StringRef Str,
size_t From = 0 ) const
nodiscard

Search for the first string Str in the string.

find - Search for the first string

Returns
The index of the first occurrence of Str, or npos if not found.
  • Str in the string.
Returns
- The index of the first occurrence of
  • Str, or npos if not found.

Definition at line 131 of file StringRef.cpp.

References data(), llvm::Last, LLVM_UNLIKELY, N, npos, Ptr, Size, size(), and StringRef().

◆ find_first_not_of() [1/2]

StringRef::size_type StringRef::find_first_not_of ( char C,
size_t From = 0 ) const
nodiscard

Find the first character in the string that is not C or npos if not found.

find_first_not_of - Find the first character in the string that is not

  • C or npos if not found.

Definition at line 252 of file StringRef.cpp.

References llvm::CallingConv::C.

Referenced by llvm::SmallString< 0 >::find_first_not_of(), llvm::SmallString< 0 >::find_first_not_of(), llvm::yaml::isNumeric(), ltrim(), ltrim(), llvm::dwarf_linker::parseDebugTableName(), ParseLine(), llvm::FileCheck::readCheckFile(), llvm::sampleprof::SampleProfileReaderText::readImpl(), and llvm::Regex::sub().

◆ find_first_not_of() [2/2]

StringRef::size_type StringRef::find_first_not_of ( StringRef Chars,
size_t From = 0 ) const
nodiscard

Find the first character in the string that is not in the string Chars, or npos if not found.

find_first_not_of - Find the first character in the string that is not in the string

Complexity: O(size() + Chars.size())

  • Chars, or npos if not found.

Note: O(size() + Chars.size())

Definition at line 260 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, size(), and StringRef().

◆ find_first_of() [1/2]

◆ find_first_of() [2/2]

StringRef::size_type StringRef::find_first_of ( StringRef Chars,
size_t From = 0 ) const
nodiscard

Find the first character in the string that is in Chars, or npos if not found.

find_first_of - Find the first character in the string that is in

Complexity: O(size() + Chars.size())

  • Chars, or npos if not found.

Note: O(size() + Chars.size())

Definition at line 238 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, size(), and StringRef().

◆ find_if()

size_t llvm::StringRef::find_if ( function_ref< bool(char)> F,
size_t From = 0 ) const
inlinenodiscard

Search for the first character satisfying the predicate F.

Returns
The index of the first character satisfying F starting from From, or npos if not found.

Definition at line 316 of file StringRef.h.

References drop_front(), empty(), F, front(), npos, size(), and StringRef().

Referenced by drop_until(), find_if_not(), find_insensitive(), and take_until().

◆ find_if_not()

size_t llvm::StringRef::find_if_not ( function_ref< bool(char)> F,
size_t From = 0 ) const
inlinenodiscard

Search for the first character not satisfying the predicate F.

Returns
The index of the first character not satisfying F starting from From, or npos if not found.

Definition at line 331 of file StringRef.h.

References F, and find_if().

Referenced by drop_while(), and take_while().

◆ find_insensitive() [1/2]

size_t StringRef::find_insensitive ( char C,
size_t From = 0 ) const
nodiscard

Search for the first character C in the string, ignoring case.

Returns
The index of the first occurrence of C, or npos if not found.

Definition at line 56 of file StringRef.cpp.

References llvm::CallingConv::C, D(), find_if(), and llvm::toLower().

Referenced by contains_insensitive(), contains_insensitive(), and llvm::Pattern::match().

◆ find_insensitive() [2/2]

size_t StringRef::find_insensitive ( StringRef Str,
size_t From = 0 ) const
nodiscard

Search for the first string Str in the string, ignoring case.

Returns
The index of the first occurrence of Str, or npos if not found.

Definition at line 192 of file StringRef.cpp.

References npos, StringRef(), and substr().

◆ find_last_not_of() [1/2]

StringRef::size_type StringRef::find_last_not_of ( char C,
size_t From = npos ) const
nodiscard

Find the last character in the string that is not C, or npos if not found.

find_last_not_of - Find the last character in the string that is not

  • C, or npos if not found.

Definition at line 290 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, and size().

Referenced by parseScalarValue(), rtrim(), and rtrim().

◆ find_last_not_of() [2/2]

StringRef::size_type StringRef::find_last_not_of ( StringRef Chars,
size_t From = npos ) const
nodiscard

Find the last character in the string that is not in Chars, or npos if not found.

find_last_not_of - Find the last character in the string that is not in

Complexity: O(size() + Chars.size())

  • Chars, or npos if not found.

Note: O(size() + Chars.size())

Definition at line 301 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, size(), and StringRef().

◆ find_last_of() [1/2]

size_t llvm::StringRef::find_last_of ( char C,
size_t From = npos ) const
inlinenodiscard

◆ find_last_of() [2/2]

StringRef::size_type StringRef::find_last_of ( StringRef Chars,
size_t From = npos ) const
nodiscard

Find the last character in the string that is in C, or npos if not found.

find_last_of - Find the last character in the string that is in

Complexity: O(size() + Chars.size())

  • C, or npos if not found.

Note: O(size() + Chars.size())

Definition at line 276 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, size(), and StringRef().

◆ front()

◆ getAsDouble()

bool StringRef::getAsDouble ( double & Result,
bool AllowInexact = true ) const

Parse the current string as an IEEE double-precision floating point value.

The string must be a well-formed double.

If AllowInexact is false, the function will fail if the string cannot be represented exactly. Otherwise, the function only fails in case of an overflow or underflow, or an invalid floating point representation.

Definition at line 598 of file StringRef.cpp.

References llvm::errorToBool(), F, llvm::APFloatBase::opInexact, llvm::APFloatBase::opOK, and llvm::APFloatBase::rmNearestTiesToEven.

◆ getAsInteger() [1/2]

bool StringRef::getAsInteger ( unsigned Radix,
APInt & Result ) const

Parse the current string as an integer of the specified Radix, or of an autosensed radix if the Radix given is 0.

The current value in Result is discarded, and the storage is changed to be wide enough to store the parsed integer.

Returns
true if the string does not solely consist of a valid non-empty number in the appropriate base.

APInt::fromString is superficially similar but assumes the string is well-formed in the given radix.

Definition at line 588 of file StringRef.cpp.

References StringRef().

◆ getAsInteger() [2/2]

template<typename T>
bool llvm::StringRef::getAsInteger ( unsigned Radix,
T & Result ) const
inline

Parse the current string as an integer of the specified radix.

If Radix is specified as zero, this does radix autosensing using extended C rules: 0 is octal, 0x is hex, 0b is binary.

If the string is invalid or if only a subset of the string is valid, this returns true to signify the error. The string is considered erroneous if empty or if it overflows T.

Definition at line 480 of file StringRef.h.

References llvm::getAsSignedInteger(), llvm::getAsUnsignedInteger(), and T.

Referenced by adjustCallerStackProbeSize(), adjustMinLegalVectorWidth(), llvm::object::BigArchive::BigArchive(), checkedGetHex(), llvm::object::Archive::Child::Child(), llvm::object::OffloadBundleURI::createFileURI(), llvm::get_threadpool_strategy(), getArchiveMemberDecField(), getArchiveMemberOctField(), getExtensionVersion(), getGlobalSymtabLocAndSize(), getHostCPUNameForARMFromComponents(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), getPassNameAndInstanceNum(), llvm::getStringFnAttrAsInt(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::AMDGPU::Exp::getTgtId(), llvm::yaml::isInteger(), optimizeNaN(), llvm::vfs::RedirectingFileSystemParser::parse(), llvm::SPIRV::parseBuiltinCallArgumentType(), llvm::parseCachePruningPolicy(), parseDuration(), llvm::remarks::parseHotnessThresholdOption(), ParseLine(), parseMetadata(), llvm::RISCVISAInfo::parseNormalizedArchString(), parseRegisterNumber(), parseSectionFlags(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::parseStatepointDirectivesFromAttrs(), parseSVERegAsConstraint(), llvm::to_integer(), llvm::updateMinLegalVectorWidthAttr(), and llvm::writeArchiveToStream().

◆ lower()

◆ ltrim() [1/2]

◆ ltrim() [2/2]

StringRef llvm::StringRef::ltrim ( StringRef Chars = " \t\n\v\f\r") const
inlinenodiscard

Return string with consecutive characters in Chars starting from the left removed.

Definition at line 806 of file StringRef.h.

References drop_front(), find_first_not_of(), size(), and StringRef().

◆ operator std::string_view()

llvm::StringRef::operator std::string_view ( ) const
inlineconstexpr

Definition at line 260 of file StringRef.h.

References data, and size().

◆ operator=()

template<typename T>
std::enable_if_t< std::is_same< T, std::string >::value, StringRef > & llvm::StringRef::operator= ( T && Str)
delete

Disallow accidental assignment from a temporary std::string.

The declaration here is extra complicated so that stringRef = {} and stringRef = "abc" continue to select the move assignment operator.

References T.

◆ operator[]()

char llvm::StringRef::operator[] ( size_t Index) const
inlinenodiscard

Definition at line 243 of file StringRef.h.

References assert(), data, and size().

◆ rbegin()

reverse_iterator llvm::StringRef::rbegin ( ) const
inline

Definition at line 124 of file StringRef.h.

References end().

◆ rend()

reverse_iterator llvm::StringRef::rend ( ) const
inline

Definition at line 128 of file StringRef.h.

References begin().

◆ rfind() [1/2]

size_t llvm::StringRef::rfind ( char C,
size_t From = npos ) const
inlinenodiscard

◆ rfind() [2/2]

size_t StringRef::rfind ( StringRef Str) const
nodiscard

Search for the last string Str in the string.

rfind - Search for the last string

Returns
The index of the last occurrence of Str, or npos if not found.
  • Str in the string.
Returns
- The index of the last occurrence of
  • Str, or npos if not found.

Definition at line 218 of file StringRef.cpp.

References StringRef().

◆ rfind_insensitive() [1/2]

size_t StringRef::rfind_insensitive ( char C,
size_t From = npos ) const
nodiscard

Search for the last character C in the string, ignoring case.

Returns
The index of the last occurrence of C, or npos if not found.

Definition at line 203 of file StringRef.cpp.

References llvm::CallingConv::C, data(), npos, size(), and llvm::toLower().

◆ rfind_insensitive() [2/2]

size_t StringRef::rfind_insensitive ( StringRef Str) const
nodiscard

Search for the last string Str in the string, ignoring case.

Returns
The index of the last occurrence of Str, or npos if not found.

Definition at line 222 of file StringRef.cpp.

References equals_insensitive(), N, npos, size(), StringRef(), and substr().

◆ rsplit() [1/2]

std::pair< StringRef, StringRef > llvm::StringRef::rsplit ( char Separator) const
inlinenodiscard

Split into two substrings around the last occurrence of a separator character.

If Separator is in the string, then the result is a pair (LHS, RHS) such that (*this == LHS + Separator + RHS) is true and RHS is minimal. If Separator is not in the string, then the result is a pair (LHS, RHS) where (*this == LHS) and (RHS == "").

Parameters
Separator- The character to split on.
Returns
- The split substrings.

Definition at line 794 of file StringRef.h.

References rsplit(), and StringRef().

◆ rsplit() [2/2]

std::pair< StringRef, StringRef > llvm::StringRef::rsplit ( StringRef Separator) const
inlinenodiscard

Split into two substrings around the last occurrence of a separator string.

If Separator is in the string, then the result is a pair (LHS, RHS) such that (*this == LHS + Separator + RHS) is true and RHS is minimal. If Separator is not in the string, then the result is a pair (LHS, RHS) where (*this == LHS) and (RHS == "").

Parameters
Separator- The string to split on.
Returns
- The split substrings.

Definition at line 743 of file StringRef.h.

References npos, rfind(), size(), slice(), StringRef(), and substr().

Referenced by rsplit().

◆ rtrim() [1/2]

◆ rtrim() [2/2]

StringRef llvm::StringRef::rtrim ( StringRef Chars = " \t\n\v\f\r") const
inlinenodiscard

Return string with consecutive characters in Chars starting from the right removed.

Definition at line 818 of file StringRef.h.

References drop_back(), find_last_not_of(), size(), and StringRef().

◆ size()

size_t llvm::StringRef::size ( ) const
inlinenodiscardconstexpr

size - Get the string size.

Definition at line 154 of file StringRef.h.

Referenced by llvm::AArch64FunctionInfo::AArch64FunctionInfo(), llvm::json::abbreviate(), addSection(), llvm::BTFStringTable::addString(), llvm::msgpack::Document::addString(), angleBracketString(), angleBracketString(), llvm::objcopy::elf::OwnedDataSection::appendHexData(), llvm::DWARFTypePrinter< DieType >::appendTypeTagName(), argPlusPrefixesSize(), argPrefix(), back(), llvm::CachedHashString::CachedHashString(), llvm::CachedHashStringRef::CachedHashStringRef(), callBufferedPrintfStart(), charTailAt(), llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), checkArchVersion(), llvm::SITargetLowering::checkAsmConstraintVal(), checkDyldInfoCommand(), checkDysymtabCommand(), checkEncryptCommand(), checkLinkeditDataCommand(), checkNoteCommand(), checkSymtabCommand(), checkTwoLevelHintsCommand(), compare(), compare_insensitive(), compare_numeric(), llvm::ComputeCrossModuleImport(), computeStringTable(), constructSegment(), constructSymbolEntry(), consume_back(), consume_back_insensitive(), consumeInteger(), llvm::consumeUnsignedInteger(), llvm::detail::IEEEFloat::convertFromString(), llvm::convertToCamelFromSnakeCase(), llvm::convertToSnakeFromCamelCase(), llvm::convertUTF8ToUTF16String(), copy(), count(), llvm::coverage::BinaryCoverageReader::create(), llvm::StringMapEntry< std::nullopt_t >::create(), llvm::sampleprof::SampleContext::createCtxVectorFromStr(), llvm::object::OffloadBundleURI::createFileURI(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::jitlink::createLinkGraphFromELFObject(), llvm::MachO::createRegexFromGlob(), llvm::object::CompressedOffloadBundle::decompress(), detectEOL(), drop_back(), drop_front(), dumpStringOffsetsSection(), edit_distance(), edit_distance_insensitive(), llvm::BitstreamWriter::emitBlob(), llvm::dwarf_linker::classic::DwarfStreamer::emitCIE(), llvm::DWARFYAML::emitDebugAbbrev(), llvm::DWARFYAML::emitDebugLine(), llvm::dwarf_linker::classic::DwarfStreamer::emitFDE(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::emitFDE(), llvm::MCObjectStreamer::emitFileDirective(), emitPPA1Name(), llvm::emitSourceFileHeader(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::emitStringSections(), empty(), llvm::CodeViewContext::encodeDefRange(), encodeRegisterForDwarf(), end(), ends_with(), ends_with_insensitive(), equals_insensitive(), expand(), ExpandBasePaths(), llvm::sys::path::extension(), find(), find_first_not_of(), find_first_of(), find_if(), find_last_not_of(), find_last_not_of(), find_last_of(), FindCheckType(), FindFirstMatchingPrefix(), llvm::sys::unicode::findSyllable(), fixupIndexV4(), fixupIndexV5(), llvm::json::fixUTF8(), formatPax(), llvm::ErrorDiagnostic::get(), llvm::APInt::getBitsNeeded(), llvm::sampleprof::FunctionSamples::getCanonicalFnName(), llvm::objcopy::elf::IHexRecord::getChecksum(), llvm::ARMTargetLowering::getConstraintType(), llvm::AVRTargetLowering::getConstraintType(), llvm::BPFTargetLowering::getConstraintType(), llvm::HexagonTargetLowering::getConstraintType(), llvm::M68kTargetLowering::getConstraintType(), llvm::MSP430TargetLowering::getConstraintType(), llvm::NVPTXTargetLowering::getConstraintType(), llvm::PPCTargetLowering::getConstraintType(), llvm::RISCVTargetLowering::getConstraintType(), llvm::SITargetLowering::getConstraintType(), llvm::SparcTargetLowering::getConstraintType(), llvm::SystemZTargetLowering::getConstraintType(), llvm::TargetLowering::getConstraintType(), llvm::VETargetLowering::getConstraintType(), llvm::X86TargetLowering::getConstraintType(), llvm::XtensaTargetLowering::getConstraintType(), llvm::LTOModule::getDependentLibrary(), llvm::MCContext::getELFSection(), llvm::NonRelocatableStringpool::getEntry(), getErrorForInvalidExt(), getExtensionVersion(), llvm::getFuncNameWithoutPrefix(), llvm::objcopy::elf::SRecord::getHeader(), llvm::HexagonInstrInfo::getInlineAsmLength(), llvm::ARMTargetLowering::getInlineAsmMemConstraint(), llvm::RISCVTargetLowering::getInlineAsmMemConstraint(), llvm::SystemZTargetLowering::getInlineAsmMemConstraint(), llvm::MDString::getLength(), getMemBufferCopyImpl(), llvm::TargetLoweringObjectFileGOFF::getModuleMetadata(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), llvm::WritableMemoryBuffer::getNewUninitMemBuffer(), llvm::getObjCNamesIfSelector(), llvm::cl::basic_parser_impl::getOptionWidth(), llvm::opt::ArgList::GetOrMakeJoinedArgString(), llvm::Triple::getOSVersion(), getQualifiedNameIndex(), llvm::object::BigArchiveMemberHeader::getRawName(), llvm::ARMTargetLowering::getRegForInlineAsmConstraint(), llvm::AVRTargetLowering::getRegForInlineAsmConstraint(), llvm::BPFTargetLowering::getRegForInlineAsmConstraint(), llvm::HexagonTargetLowering::getRegForInlineAsmConstraint(), llvm::LanaiTargetLowering::getRegForInlineAsmConstraint(), llvm::M68kTargetLowering::getRegForInlineAsmConstraint(), llvm::MSP430TargetLowering::getRegForInlineAsmConstraint(), llvm::NVPTXTargetLowering::getRegForInlineAsmConstraint(), llvm::PPCTargetLowering::getRegForInlineAsmConstraint(), llvm::RISCVTargetLowering::getRegForInlineAsmConstraint(), llvm::SITargetLowering::getRegForInlineAsmConstraint(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), llvm::SystemZTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLowering::getRegForInlineAsmConstraint(), llvm::VETargetLowering::getRegForInlineAsmConstraint(), llvm::X86TargetLowering::getRegForInlineAsmConstraint(), llvm::XtensaTargetLowering::getRegForInlineAsmConstraint(), llvm::logicalview::getScopedName(), llvm::object::ELFFile< ELFT >::getSectionName(), llvm::object::MachOObjectFile::getSectionSize(), llvm::AMDGPU::Exp::getTgtId(), getUUID(), getVarName(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), llvm::CodeViewYAML::GlobalHash::GlobalHash(), gsiRecordCmp(), llvm::object::MachOObjectFile::guessLibraryShortName(), HandlePrefixedOrGroupedOption(), llvm::handleSection(), llvm::jitlink::identifyELFSectionStartAndEndSymbols(), llvm::jitlink::identifyMachOSectionStartAndEndSymbols(), llvm::object::DirectX::Signature::initialize(), llvm::codeview::DebugStringTableSubsection::insert(), isAsmComment(), isImmConstraint(), llvm::yaml::isNumeric(), llvm::json::isUTF8(), llvm::detail::join_impl(), LLVMGetDebugLocDirectory(), LLVMGetDebugLocFilename(), LLVMGetInlineAsmAsmString(), LLVMGetInlineAsmConstraintString(), LLVMGetNamedMetadataName(), llvm::gsym::FunctionInfo::lookup(), llvm::SPIRV::lookupBuiltinNameHelper(), lookupLLVMIntrinsicByName(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::M68kTargetLowering::LowerAsmOperandForConstraint(), llvm::NVPTXTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), llvm::SparcTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::XtensaTargetLowering::LowerAsmOperandForConstraint(), llvm::InlineAsmLowering::lowerAsmOperandForConstraint(), ltrim(), ltrim(), llvm::object::MachOUniversalBinary::MachOUniversalBinary(), llvm::opt::DerivedArgList::MakeJoinedArg(), mapNameAndUniqueName(), llvm::Pattern::match(), PrefixMatcher::match(), maybeLexIndex(), maybeLexIndexAndName(), maybeLexIRBlock(), maybeLexIRValue(), maybeLexMCSymbol(), maybeLexSubRegisterIndex(), operator new(), operator std::string_view(), llvm::gsym::operator<<(), llvm::gsym::operator<<(), operator[](), optimizeDoubleFP(), optimizeMemCmpVarSize(), llvm::DWARFDebugFrame::parse(), llvm::ELFExtendedAttrParser::parse(), llvm::object::DirectX::PSVRuntimeInfo::parse(), llvm::parseAnalysisUtilityPasses(), llvm::RISCVISAInfo::parseArchString(), llvm::yaml::parseBool(), parseBraceExpansions(), parseHeader(), ParseLine(), parseMagic(), parseMaybeMangledName(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::Pattern::parsePattern(), parseRefinementStep(), parseRegisterNumber(), parseScalarValue(), parseSegmentLoadCommand(), parseStrTabSize(), parseSVERegAsConstraint(), parseVersion(), populateDependencyMatrix(), printCFI(), PrintCFIEscape(), llvm::cl::Option::printEnumValHelpStr(), llvm::Pattern::printFuzzyMatch(), llvm::cl::generic_parser_base::printGenericOptionDiff(), printLine(), printNoMatch(), llvm::cl::generic_parser_base::printOptionInfo(), printSourceLine(), promoteToConstantPool(), llvm::irsymtab::readBitcode(), llvm::FileCheck::readCheckFile(), readCoverageMappingData(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::reconstituteName(), llvm::LessRecordRegister::RecordParts::RecordParts(), llvm::sys::path::relative_path(), llvm::sys::path::remove_dots(), llvm::object::replace(), llvm::sys::path::replace_extension(), llvm::sys::path::replace_path_prefix(), llvm::RewriteBuffer::ReplaceText(), llvm::report_fatal_error(), llvm::logicalview::LVElement::resolveFullname(), rfind(), rfind_insensitive(), rfind_insensitive(), llvm::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(), rsplit(), rtrim(), rtrim(), llvm::SimplifyTypeTestsPass::run(), llvm::StringSaver::save(), llvm::orc::MachOBuilder< MachOTraits >::Section::Section(), llvm::orc::MachOBuilder< MachOTraits >::Segment::Segment(), llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >::serialize(), llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >::size(), slice(), split(), split(), splitLiteralAndReplacement(), starts_with(), starts_with_insensitive(), llvm::sys::unicode::startsWith(), llvm::sys::path::stem(), str(), StringRef(), llvm::StrInStrNoCase(), llvm::impl::strip_quotes(), llvm::mustache::stripTokenBefore(), llvm::Regex::sub(), substr(), llvm::BTFParser::symbolize(), take_back(), take_front(), llvm::mustache::tokenize(), llvm::StringAttributeImpl::totalSizeToAlloc(), llvm::Twine::Twine(), llvm::Twine::Twine(), llvm::codeview::TypeServer2Record::TypeServer2Record(), updateAndRemoveSymbols(), updateLoadCommandPayloadString(), updateSection(), llvm::UpgradeDataLayoutString(), upgradeLoopTag(), llvm::orc::ELFDebugObjectSection< ELFT >::validateInBounds(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::logicalview::LVLogicalVisitor::visitKnownMember(), llvm::object::WasmObjectFile::WasmObjectFile(), wordsOfString(), llvm::msgpack::Writer::write(), llvm::writeArchiveToStream(), llvm::writeStringsAndOffsets(), and llvm::yaml::yaml2archive().

◆ slice()

StringRef llvm::StringRef::slice ( size_t Start,
size_t End ) const
inlinenodiscard

Return a reference to the substring from [Start, End).

Parameters
StartThe index of the starting character in the substring; if the index is npos or greater than the length of the string then the empty substring will be returned.
EndThe index following the last character to include in the substring. If this is npos or exceeds the number of characters remaining in the string, the string suffix (starting with Start) will be returned. If this is less than Start, an empty string will be returned.

Definition at line 694 of file StringRef.h.

References data, size(), and StringRef().

Referenced by llvm::FileCheckString::CheckDag(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::object::ObjectFile::createMachOObjectFile(), llvm::BTFParser::findString(), llvm::objcopy::elf::SRecord::getHeader(), llvm::object::MinidumpFile::getRawStream(), llvm::object::MachOObjectFile::guessLibraryShortName(), llvm::lookupBuiltin(), llvm::RISCVISAInfo::parseArchString(), llvm::SPIRV::parseBuiltinCallArgumentType(), llvm::SPIRV::parseBuiltinTypeStr(), llvm::RISCVISAInfo::parseNormalizedArchString(), parseRegisterNumber(), printSourceLine(), rsplit(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline(), llvm::SmallString< 0 >::slice(), split(), split(), split(), splitLiteralAndReplacement(), llvm::Regex::sub(), and tokenizeWindowsCommandLineImpl().

◆ split() [1/4]

std::pair< StringRef, StringRef > llvm::StringRef::split ( char Separator) const
inlinenodiscard

Split into two substrings around the first occurrence of a separator character.

If Separator is in the string, then the result is a pair (LHS, RHS) such that (*this == LHS + Separator + RHS) is true and RHS is maximal. If Separator is not in the string, then the result is a pair (LHS, RHS) where (*this == LHS) and (RHS == "").

Parameters
SeparatorThe character to split on.
Returns
The split substrings.

Definition at line 710 of file StringRef.h.

References split(), and StringRef().

Referenced by addSection(), collectAddressSymbols(), llvm::InlineAsm::collectAsmStrs(), collectMetadataInfo(), llvm::sampleprof::SampleContext::createCtxVectorFromStr(), llvm::sampleprof::SampleContext::decodeContextString(), llvm::FileCheckPatternContext::defineCmdlineVariables(), llvm::VPlanPrinter::dump(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), findSection(), llvm::findVCToolChainViaEnvironment(), forceAttributes(), llvm::Triple::getArchName(), llvm::codeview::getBytesAsCString(), llvm::sampleprof::FunctionSamples::getCanonicalFnName(), llvm::object::COFFObjectFile::getDebugPDBInfo(), llvm::getDefaultDebuginfodUrls(), llvm::Triple::getEnvironmentName(), llvm::AArch64TTIImpl::getFeatureMask(), llvm::getFnAttrParsedVector(), llvm::sys::detail::getHostCPUNameForARM(), llvm::sys::detail::getHostCPUNameForRISCV(), llvm::sys::detail::getHostCPUNameForS390x(), llvm::AMDGPU::getIntegerVecAttribute(), getIntOperandFromRegisterString(), getIntOperandsFromRegisterString(), getOpEnabled(), getOpRefinementSteps(), llvm::Triple::getOSAndEnvironmentName(), llvm::Triple::getOSName(), llvm::getParsedIRPGOName(), llvm::LoongArchTargetLowering::getRegisterByName(), getSearchPaths(), llvm::object::COFFObjectFile::getSectionName(), llvm::VFABI::getVectorVariantNames(), llvm::Triple::getVendorName(), llvm::handleExecNameEncodedBEOpts(), llvm::handleExecNameEncodedOptimizerOpts(), hasObjCCategoryInModule(), llvm::isHeader(), llvm::offloading::amdgpu::isImageCompatibleWithEnv(), isThumbFunction(), llvm::object::Lexer::lex(), llvm::lookupBuiltin(), LookupNearestOption(), llvm::SpecialCaseList::parse(), llvm::SPIRVExtensionsParser::parse(), llvm::PassBuilder::parseAAPipeline(), parseAMDGPUAttributorPassOptions(), llvm::SPIRV::parseBuiltinTypeStr(), parseCHRFilterFiles(), llvm::parseDenormalFPAttribute(), parseNamePrefix(), llvm::PassBuilder::parseSinglePassOption(), parseThunkName(), llvm::DebugCounter::push_back(), llvm::ForceFunctionAttrsPass::run(), llvm::lsp::URIForFile::scheme(), llvm::Hexagon_MC::selectHexagonCPU(), llvm::AMDGPU::IsaInfo::AMDGPUTargetID::setTargetIDFromTargetIDStream(), llvm::SubtargetFeatures::Split(), split(), llvm::Regex::sub(), llvm::opt::OptTable::suggestValueCompletions(), llvm::Triple::Triple(), and upgradeNVVMFnVectorAttr().

◆ split() [2/4]

void StringRef::split ( SmallVectorImpl< StringRef > & A,
char Separator,
int MaxSplit = -1,
bool KeepEmpty = true ) const

Split into substrings around the occurrences of a separator character.

Each substring is stored in A. If MaxSplit is >= 0, at most MaxSplit splits are done and consequently <= MaxSplit + 1 elements are added to A. If KeepEmpty is false, empty strings are not added to A. They still count when considering MaxSplit An useful invariant is that Separator.join(A) == *this if MaxSplit == -1 and KeepEmpty == true

Parameters
A- Where to put the substrings.
Separator- The string to split on.
MaxSplit- The maximum number of times the string is split.
KeepEmpty- True if empty substring should be added.

Definition at line 340 of file StringRef.cpp.

References A(), empty(), find(), npos, slice(), StringRef(), and substr().

◆ split() [3/4]

void StringRef::split ( SmallVectorImpl< StringRef > & A,
StringRef Separator,
int MaxSplit = -1,
bool KeepEmpty = true ) const

Split into substrings around the occurrences of a separator string.

Each substring is stored in A. If MaxSplit is >= 0, at most MaxSplit splits are done and consequently <= MaxSplit + 1 elements are added to A. If KeepEmpty is false, empty strings are not added to A. They still count when considering MaxSplit An useful invariant is that Separator.join(A) == *this if MaxSplit == -1 and KeepEmpty == true

Parameters
A- Where to put the substrings.
Separator- The string to split on.
MaxSplit- The maximum number of times the string is split.
KeepEmpty- True if empty substring should be added.

Definition at line 313 of file StringRef.cpp.

References A(), empty(), find(), npos, size(), slice(), StringRef(), and substr().

◆ split() [4/4]

std::pair< StringRef, StringRef > llvm::StringRef::split ( StringRef Separator) const
inlinenodiscard

Split into two substrings around the first occurrence of a separator string.

If Separator is in the string, then the result is a pair (LHS, RHS) such that (*this == LHS + Separator + RHS) is true and RHS is maximal. If Separator is not in the string, then the result is a pair (LHS, RHS) where (*this == LHS) and (RHS == "").

Parameters
Separator- The string to split on.
Returns
- The split substrings.

Definition at line 725 of file StringRef.h.

References find(), npos, size(), slice(), StringRef(), and substr().

◆ starts_with() [1/2]

bool llvm::StringRef::starts_with ( char Prefix) const
inlinenodiscard

Definition at line 273 of file StringRef.h.

References empty(), and front().

◆ starts_with() [2/2]

bool llvm::StringRef::starts_with ( StringRef Prefix) const
inlinenodiscard

Check if this string starts with the given Prefix.

Definition at line 269 of file StringRef.h.

References data, size(), and StringRef().

Referenced by llvm::DWARFTypePrinter< DieType >::appendTypeTagName(), llvm::object::Archive::Archive(), llvm::AsmLexer::AsmLexer(), llvm::ELFAttrs::attrTypeFromString(), collectAddressSymbols(), llvm::objcopy::elf::Object::compressOrDecompressSections(), llvm::ARM::computeTargetABI(), llvm::MipsABIInfo::computeTargetABI(), llvm::RISCVABI::computeTargetABI(), llvm::object::Archive::create(), llvm::remarks::createYAMLParserFromMeta(), llvm::omp::deconstructOpenMPKernelName(), doesIgnoreDataTypeSuffix(), llvm::Attributor::emitRemark(), llvm::Attributor::emitRemark(), llvm::ARMTargetStreamer::emitTargetAttributes(), llvm::NVPTXTargetStreamer::emitValue(), llvm::ELFObjectWriter::executePostLayoutBinding(), FindCheckType(), llvm::JITSymbolFlags::fromGlobalValue(), llvm::generateGroupInst(), getAbsolutePath(), llvm::AArch64::getArchExtFeature(), llvm::getFuncNameWithoutPrefix(), getMipsABI(), llvm::TargetLoweringObjectFileGOFF::getModuleMetadata(), llvm::object::getNameType(), llvm::MCContext::getOrCreateSymbol(), llvm::opt::ArgList::GetOrMakeJoinedArgString(), llvm::Triple::getOSVersion(), getPointeeTypeByCallInst(), llvm::SPIRVTargetLowering::getRegForInlineAsmConstraint(), llvm::SystemZTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLoweringObjectFileELF::getSectionForMachineBasicBlock(), llvm::yaml::Node::getVerbatimTag(), llvm::MVT::getVT(), globalVariableNeedsRedirect(), hasAnyUnrollPragma(), llvm::memprof::YAMLMemProfReader::hasFormat(), llvm::mustache::hasTextAhead(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), llvm::LTOModule::isBitcodeForTarget(), llvm::orc::isCOFFInitializerSection(), isDebugSection(), llvm::objcopy::coff::isDebugSection(), llvm::objcopy::wasm::isDebugSection(), llvm::object::isDecorated(), llvm::objcopy::wasm::isLinkerSection(), llvm::yaml::isNumeric(), llvm::MachO::isPrivateLibrary(), llvm::objcopy::macho::SymbolEntry::isSwiftSymbol(), llvm::LoongArch::isValidFeatureName(), llvm::SPIRV::lookupBuiltinNameHelper(), llvm::makeFollowupLoopID(), llvm::makePostTransformationMetadata(), matchOption(), llvm::Triple::normalize(), optimizeDoubleFP(), llvm::SpecialCaseList::parse(), llvm::parseAnalysisUtilityPasses(), parseArch(), llvm::ARM::parseArchEndian(), llvm::RISCVISAInfo::parseArchString(), parseARMArch(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), llvm::DebugCounter::parseChunks(), ParseLine(), parseMaybeMangledName(), llvm::AArch64::ExtensionSet::parseModifier(), llvm::Pattern::parsePattern(), parseSubArch(), parseSVERegAsConstraint(), llvm::MachO::parseSymbol(), parseThunkName(), processGlobal(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::pruneCache(), llvm::lsp::JSONTransportInputOverFile::readDelimitedMessage(), llvm::object::replace(), replaceAndRemoveSections(), llvm::SimplifyTypeTestsPass::run(), llvm::ThunkInserter< Derived, InsertedThunksTy >::run(), llvm::runFuzzerOnInputs(), llvm::sampleprof::SampleContext::SampleContext(), llvm::pdb::NativeSession::searchForPdb(), llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), llvm::cl::Option::setArgStr(), shouldCheckArgs(), llvm::SmallString< 0 >::starts_with(), llvm::mustache::stripTokenAhead(), llvm::orc::DLLImportDefinitionGenerator::tryToGenerate(), updateAndRemoveSymbols(), upgradeLoopTag(), and llvm::gsym::DwarfTransformer::verify().

◆ starts_with_insensitive()

bool StringRef::starts_with_insensitive ( StringRef Prefix) const
nodiscard

Check if this string starts with the given Prefix, ignoring case.

Definition at line 46 of file StringRef.cpp.

References ascii_strncasecmp(), size(), StringRef(), and take_front().

Referenced by consume_front_insensitive(), and matchOption().

◆ str()

std::string llvm::StringRef::str ( ) const
inlinenodiscard

str - Get the contents as an std::string.

Definition at line 233 of file StringRef.h.

References data, and size().

Referenced by llvm::vfs::InMemoryFileSystem::addHardLink(), llvm::DCData::addSuccessorLabel(), buildFrameDebugInfo(), llvm::cacheAnnotationFromMD(), checkOperandCount(), llvm::dwarf_linker::parallel::CompileUnit::CompileUnit(), constructSymbolEntry(), convertSRPoints(), llvm::TextEncodingConverter::create(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), llvm::orc::StaticLibraryDefinitionGenerator::createMemberBuffer(), createMergedFunction(), decodeError(), dumpSectionToFile(), dumpSectionToFile(), llvm::objcopy::wasm::dumpSectionToFile(), llvm::emitAMDGPUPrintfCall(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), llvm::object::OffloadBundleFatBin::extractBundle(), llvm::CodeExtractor::extractCodeRegion(), llvm::object::extractOffloadBundleByURI(), llvm::objcopy::dxbc::extractPartAsObject(), llvm::object::MachOObjectFile::findDsymObjectMembers(), findSection(), llvm::lsp::URIForFile::fromURI(), llvm::generateSampleImageInst(), llvm::DiagnosticLocation::getAbsolutePath(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::DWARFFormValue::getAsCString(), llvm::Attribute::getAsString(), llvm::bfi_detail::getBlockName(), llvm::pdb::NativeSourceFile::getChecksum(), getExtensionVersion(), llvm::DOTGraphTraits< DOTFuncInfo * >::getGraphName(), llvm::DOTGraphTraits< DOTFuncMSSAInfo * >::getGraphName(), llvm::DOTGraphTraits< DOTMachineFuncInfo * >::getGraphName(), getHighestNumericTupleInDirectory(), llvm::vfs::File::getName(), getNewName(), llvm::DOTGraphTraits< AttributorCallGraph * >::getNodeLabel(), llvm::SDNode::getOperationName(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), llvm::getPGOFuncName(), getQualifiedNameIndex(), llvm::pdb::PDBSymbolCompiland::getSourceFileName(), llvm::getStringValueFromReg(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::CSKYTargetMachine::getSubtargetImpl(), llvm::HexagonTargetMachine::getSubtargetImpl(), llvm::LoongArchTargetMachine::getSubtargetImpl(), llvm::M68kTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getSubtargetImpl(), llvm::PPCTargetMachine::getSubtargetImpl(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::SparcTargetMachine::getSubtargetImpl(), llvm::SystemZTargetMachine::getSubtargetImpl(), llvm::WebAssemblyTargetMachine::getSubtargetImpl(), llvm::XtensaTargetMachine::getSubtargetImpl(), llvm::getSymbolicOperandMnemonic(), llvm::dwarf_linker::classic::CompileUnit::getSysRoot(), llvm::object::IRObjectFile::getTargetTriple(), llvm::objcopy::coff::handleArgs(), INITIALIZE_PASS(), llvm::M68kSubtarget::initializeSubtargetDependencies(), llvm::yaml::StdMapStringCustomMappingTraitsImpl< T >::inputOne(), llvm::lookupPGONameFromMetadata(), llvm::SPIRV::lowerBuiltinType(), llvm::XtensaTargetLowering::LowerCall(), mangleCoveragePath(), llvm::yaml::MappingTraits< const InterfaceFile * >::NormalizedTBD::NormalizedTBD(), llvm::vfs::RedirectingFileSystem::openFileForRead(), llvm::orc::LoadAndLinkDynLibrary::operator()(), llvm::objcopy::elf::OwnedDataSection::OwnedDataSection(), llvm::cl::parser< std::string >::parse(), llvm::SPIRVExtensionsParser::parse(), llvm::MachO::parseAliasList(), llvm::RISCVISAInfo::parseArchString(), parseBraceExpansions(), llvm::SPIRV::parseBuiltinCallArgumentType(), parseDebugType(), parseIRConstant(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::dwarf::parseRows(), llvm::omp::prettifyFunctionName(), llvm::MCDecodedPseudoProbe::print(), llvm::jitlink::printSymbolEntry(), processConstantStringArg(), processLoadCommands(), llvm::lsp::JSONTransportInputOverFile::readDelimitedMessage(), replaceWithCallToVeclib(), llvm::logicalview::LVScopeArray::resolveExtra(), llvm::DroppedVariableStatsMIR::runAfterPass(), llvm::PseudoProbeVerifier::runAfterPass(), runImpl(), llvm::IRSimilarity::IRInstructionData::setCalleeName(), llvm::MCContext::setCompilationDir(), llvm::setKCFIType(), llvm::vfs::YAMLVFSWriter::setOverlayDir(), llvm::vfs::RedirectingFileSystem::setOverlayFileDir(), setSocketAddr(), smallData(), llvm::SPIRVTranslate(), llvm::Twine::str(), llvm::mustache::stripTokenAhead(), llvm::mustache::stripTokenBefore(), suffixed_name_or(), llvm::timeTraceProfilerWrite(), llvm::symbolize::toJSON(), llvm::mustache::tokenize(), uriFromAbsolutePath(), writeListEntryAddress(), and writeTimestampFile().

◆ substr()

StringRef llvm::StringRef::substr ( size_t Start,
size_t N = npos ) const
inlinenodiscardconstexpr

Return a reference to the substring from [Start, Start + N).

Parameters
StartThe index of the starting character in the substring; if the index is npos or greater than the length of the string then the empty substring will be returned.
NThe number of characters to included in the substring. If N exceeds the number of characters remaining in the string, the string suffix (starting with Start) will be returned.

Definition at line 581 of file StringRef.h.

References data, N, npos, size(), and StringRef().

Referenced by llvm::DWARFTypePrinter< DieType >::appendTypeTagName(), llvm::object::applyNameType(), llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), llvm::FileCheck::checkInput(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), CommaSeparateAndAddOccurrence(), llvm::consumeUnsignedInteger(), llvm::GlobPattern::create(), llvm::sampleprof::SampleContext::createCtxVectorFromStr(), llvm::object::CompressedOffloadBundle::decompress(), llvm::FileCheckPatternContext::defineCmdlineVariables(), llvm::ELFYAML::dropUniqueSuffix(), llvm::SystemZHLASMAsmStreamer::EmitComment(), emitComments(), llvm::AsmPrinter::emitPCSections(), emitPPA1Name(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::ELFObjectWriter::executePostLayoutBinding(), expand(), ExpandBasePaths(), llvm::sys::path::extension(), find_insensitive(), FindFirstMatchingPrefix(), llvm::MCJIT::findModuleForSymbol(), llvm::format_provider< T, std::enable_if_t< support::detail::use_string_formatter< T >::value > >::format(), llvm::JITSymbolFlags::fromGlobalValue(), getAbsolutePath(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsArchive(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsIRObject(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile(), llvm::sampleprof::FunctionSamples::getCanonicalFnName(), llvm::getConstantStringInfo(), llvm::TargetLowering::getConstraintType(), llvm::gsym::GsymReader::getFunctionInfoDataAtIndex(), getHexUint(), getLiteralSectionName(), llvm::TargetLoweringObjectFileGOFF::getModuleMetadata(), getOpEnabled(), getOpRefinementSteps(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), llvm::Triple::getOSVersion(), llvm::object::DirectX::RootSignature::getParameter(), getQualifiedNameIndex(), getStringIndex(), llvm::object::MachOObjectFile::getStringTableData(), getVarName(), llvm::yaml::Node::getVerbatimTag(), llvm::object::MachOObjectFile::guessLibraryShortName(), HandlePrefixedOrGroupedOption(), llvm::object::DirectX::Signature::initialize(), llvm::isSpecialPass(), llvm::object::Lexer::lex(), llvm::SPIRV::lookupBuiltinNameHelper(), llvm::MCGenDwarfLabelEntry::Make(), matchOption(), llvm::objcopy::elf::IHexRecord::parse(), llvm::object::DirectX::PSVRuntimeInfo::parse(), llvm::SPIRVExtensionsParser::parse(), llvm::parseAnalysisUtilityPasses(), llvm::RISCVISAInfo::parseArchString(), llvm::yaml::Document::parseBlockNode(), parseBraceExpansions(), llvm::SPIRV::parseBuiltinCallArgumentType(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), llvm::dwarf_linker::parseDebugTableName(), parseDebugType(), parseFilePathFromURI(), parseInt(), ParseLine(), llvm::RISCVISAInfo::parseNormalizedArchString(), llvm::Pattern::parseNumericSubstitutionBlock(), llvm::Pattern::parsePattern(), parseScalarValue(), parseSVERegAsConstraint(), llvm::Pattern::printFuzzyMatch(), llvm::FileCheck::readCheckFile(), llvm::GCOVBuffer::readGCDAFormat(), llvm::GCOVBuffer::readGCNOFormat(), llvm::TextInstrProfReader::readHeader(), llvm::object::replace(), llvm::sys::path::replace_path_prefix(), rfind_insensitive(), llvm::SimplifyTypeTestsPass::run(), split(), split(), splitLiteralAndReplacement(), llvm::sys::path::stem(), llvm::streamFile(), llvm::StrInStrNoCase(), llvm::stripDirPrefix(), llvm::SubtargetFeatures::StripFlag(), llvm::mustache::stripTokenAhead(), llvm::Regex::sub(), llvm::SmallString< 0 >::substr(), llvm::BTFParser::symbolize(), llvm::mustache::Token::Token(), llvm::VersionTuple::tryParse(), llvm::UpgradeSectionAttributes(), llvm::object::WasmObjectFile::WasmObjectFile(), and llvm::write().

◆ take_back()

StringRef llvm::StringRef::take_back ( size_t N = 1) const
inlinenodiscard

Return a StringRef equal to 'this' but with only the last N elements remaining.

If N is greater than the length of the string, the entire string is returned.

Definition at line 599 of file StringRef.h.

References drop_front(), N, size(), and StringRef().

Referenced by ends_with_insensitive().

◆ take_front()

◆ take_until()

StringRef llvm::StringRef::take_until ( function_ref< bool(char)> F) const
inlinenodiscard

Return the longest prefix of 'this' such that no character in the prefix satisfies the given predicate.

Definition at line 613 of file StringRef.h.

References F, find_if(), StringRef(), and substr().

Referenced by llvm::object::OffloadBundleURI::createFileURI(), and llvm::DebugCounter::parseChunks().

◆ take_while()

StringRef llvm::StringRef::take_while ( function_ref< bool(char)> F) const
inlinenodiscard

Return the longest prefix of 'this' such that every character in the prefix satisfies the given predicate.

Definition at line 607 of file StringRef.h.

References F, find_if_not(), StringRef(), and substr().

Referenced by splitLiteralAndReplacement(), and llvm::VFABI::tryDemangleForVFABI().

◆ trim() [1/2]

◆ trim() [2/2]

StringRef llvm::StringRef::trim ( StringRef Chars = " \t\n\v\f\r") const
inlinenodiscard

Return string with consecutive characters in Chars starting from the left and right removed.

Definition at line 830 of file StringRef.h.

References ltrim(), and StringRef().

◆ upper()

std::string StringRef::upper ( ) const
nodiscard

Convert the given ASCII string to uppercase.

Definition at line 117 of file StringRef.cpp.

References begin(), end(), llvm::map_iterator(), and llvm::toUpper().

Member Data Documentation

◆ npos

size_t StringRef::npos = ~size_t(0)
staticconstexpr

Definition at line 57 of file StringRef.h.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::DWARFTypePrinter< DieType >::appendUnqualifiedNameBefore(), buildFixItLine(), llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), checkIfSupported(), llvm::FileCheck::checkInput(), CommaSeparateAndAddOccurrence(), contains(), contains(), contains_insensitive(), contains_insensitive(), count(), llvm::sys::fs::createTemporaryFile(), llvm::omp::deconstructOpenMPKernelName(), llvm::FileCheckPatternContext::defineCmdlineVariables(), detectEOL(), llvm::ELFYAML::dropUniqueSuffix(), llvm::object::Archive::ec_symbols(), llvm::ELFObjectWriter::executePostLayoutBinding(), ExpandBasePaths(), llvm::sys::path::extension(), extractOffloadBundle(), find(), find_first_not_of(), find_first_of(), find_if(), find_insensitive(), find_last_not_of(), find_last_not_of(), llvm::SmallString< 0 >::find_last_of(), llvm::SmallString< 0 >::find_last_of(), find_last_of(), find_last_of(), llvm::SourceMgr::FindLocForLineAndColumn(), llvm::format_provider< T, std::enable_if_t< support::detail::use_string_formatter< T >::value > >::format(), llvm::symbolize::SourceCode::format(), llvm::ARM::getCanonicalArchName(), llvm::sampleprof::FunctionSamples::getCanonicalFnName(), llvm::DataExtractor::getCStrRef(), llvm::sys::detail::getHostCPUNameForS390x(), getInstrStrFromOpNo(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::SourceMgr::getLineAndColumn(), llvm::object::ArchiveMemberHeader::getName(), llvm::getObjCNamesIfSelector(), llvm::object::ArchiveMemberHeader::getRawName(), getTypeNamePrefix(), llvm::object::MachOObjectFile::guessLibraryShortName(), llvm::isArm64ECMangledFunctionName(), llvm::Regex::isLiteralERE(), llvm::yaml::isNumeric(), llvm::isSpecialPass(), locateCStrings(), lookupLLVMIntrinsicByName(), llvm::Pattern::match(), PrefixMatcher::match(), llvm::sys::path::reverse_iterator::operator++(), llvm::sys::path::parent_path(), llvm::SPIRV::parseBuiltinTypeStr(), parseDebugType(), parseFilePathFromURI(), ParseLine(), llvm::Pattern::parseNumericSubstitutionBlock(), llvm::Pattern::parsePattern(), parseRefinementStep(), parseScalarValue(), parseTypeCountMap(), llvm::sys::printArg(), llvm::Pattern::printFuzzyMatch(), printSourceLine(), llvm::BinaryStreamReader::readCString(), llvm::sampleprof::SampleProfileReaderText::readImpl(), llvm::sys::path::remove_dots(), llvm::sys::path::remove_filename(), llvm::object::replace(), llvm::sys::path::replace_extension(), llvm::SmallString< 0 >::rfind(), rfind(), rfind_insensitive(), rfind_insensitive(), rsplit(), llvm::serializeValueProfRecordFrom(), singleLetterExtensionRank(), split(), split(), split(), splitLiteralAndReplacement(), splitUstar(), llvm::sys::path::stem(), llvm::StrInStrNoCase(), llvm::Regex::sub(), llvm::SmallString< 0 >::substr(), substr(), llvm::ifs::terminatedSubstr(), llvm::mustache::tokenize(), and llvm::UpgradeDataLayoutString().


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