Skip to content

Conversation

@kazutakahirata
Copy link
Contributor

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

  • StringRef::operator==/!= outnumber StringRef::equals by a factor of
    70 under llvm/ in terms of their usage.

  • The elimination of StringRef::equals brings StringRef closer to
    std::string_view, which has operator== but not equals.

  • S == "foo" is more readable than S.equals("foo"), especially for
    !Long.Expression.equals("str") vs Long.Expression != "str".

I'm planning to remove StringRef::equals in favor of StringRef::operator==. - StringRef::operator==/!= outnumber StringRef::equals by a factor of 70 under llvm/ in terms of their usage. - The elimination of StringRef::equals brings StringRef closer to std::string_view, which has operator== but not equals. - S == "foo" is more readable than S.equals("foo"), especially for !Long.Expression.equals("str") vs Long.Expression != "str".
@llvmbot
Copy link
Member

llvmbot commented May 8, 2024

@llvm/pr-subscribers-llvm-binary-utilities
@llvm/pr-subscribers-testing-tools
@llvm/pr-subscribers-xray
@llvm/pr-subscribers-objectyaml

@llvm/pr-subscribers-mc

Author: Kazu Hirata (kazutakahirata)

Changes

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

  • StringRef::operator==/!= outnumber StringRef::equals by a factor of
    70 under llvm/ in terms of their usage.

  • The elimination of StringRef::equals brings StringRef closer to
    std::string_view, which has operator== but not equals.

  • S == "foo" is more readable than S.equals("foo"), especially for
    !Long.Expression.equals("str") vs Long.Expression != "str".


Patch is 28.04 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/91441.diff

34 Files Affected:

  • (modified) llvm/include/llvm/ADT/SmallString.h (+1-1)
  • (modified) llvm/lib/Bitcode/Reader/BitcodeReader.cpp (+1-1)
  • (modified) llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (+1-1)
  • (modified) llvm/lib/FileCheck/FileCheck.cpp (+1-1)
  • (modified) llvm/lib/FuzzMutate/FuzzerCLI.cpp (+3-3)
  • (modified) llvm/lib/LTO/LTOModule.cpp (+1-1)
  • (modified) llvm/lib/MC/MCAsmStreamer.cpp (+1-1)
  • (modified) llvm/lib/MC/MCParser/AsmParser.cpp (+1-1)
  • (modified) llvm/lib/MC/MCParser/DarwinAsmParser.cpp (+1-1)
  • (modified) llvm/lib/MC/MCSymbolXCOFF.cpp (+2-2)
  • (modified) llvm/lib/Object/Archive.cpp (+2-2)
  • (modified) llvm/lib/Object/MachOObjectFile.cpp (+2-2)
  • (modified) llvm/lib/Object/OffloadBinary.cpp (+1-1)
  • (modified) llvm/lib/ObjectYAML/COFFEmitter.cpp (+2-2)
  • (modified) llvm/lib/Passes/StandardInstrumentations.cpp (+1-2)
  • (modified) llvm/lib/ProfileData/GCOV.cpp (+1-1)
  • (modified) llvm/lib/ProfileData/InstrProf.cpp (+1-1)
  • (modified) llvm/lib/ProfileData/MemProfReader.cpp (+3-3)
  • (modified) llvm/lib/Support/VirtualFileSystem.cpp (+2-2)
  • (modified) llvm/lib/TargetParser/ARMTargetParser.cpp (+1-1)
  • (modified) llvm/lib/TargetParser/Triple.cpp (+3-3)
  • (modified) llvm/tools/dsymutil/DwarfLinkerForBinary.cpp (+1-1)
  • (modified) llvm/tools/llvm-dwarfdump/Statistics.cpp (+1-1)
  • (modified) llvm/tools/llvm-extract/llvm-extract.cpp (+1-1)
  • (modified) llvm/tools/llvm-objdump/MachODump.cpp (+1-1)
  • (modified) llvm/tools/llvm-xray/xray-graph-diff.cpp (+2-2)
  • (modified) llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp (+1-1)
  • (modified) llvm/unittests/ADT/StringRefTest.cpp (+3-3)
  • (modified) llvm/unittests/IR/VerifierTest.cpp (+18-18)
  • (modified) llvm/unittests/Support/MemoryBufferTest.cpp (+11-11)
  • (modified) llvm/unittests/Support/YAMLIOTest.cpp (+4-4)
  • (modified) llvm/unittests/TargetParser/CSKYTargetParserTest.cpp (+1-1)
  • (modified) llvm/unittests/TargetParser/TargetParserTest.cpp (+2-2)
  • (modified) llvm/utils/TableGen/AsmMatcherEmitter.cpp (+1-1)
diff --git a/llvm/include/llvm/ADT/SmallString.h b/llvm/include/llvm/ADT/SmallString.h index a5b9eec50c825..be3193c6ef9be 100644 --- a/llvm/include/llvm/ADT/SmallString.h +++ b/llvm/include/llvm/ADT/SmallString.h @@ -89,7 +89,7 @@ class SmallString : public SmallVector<char, InternalLen> { /// Check for string equality. This is more efficient than compare() when /// the relative ordering of inequal strings isn't needed. - [[nodiscard]] bool equals(StringRef RHS) const { return str().equals(RHS); } + [[nodiscard]] bool equals(StringRef RHS) const { return str() == RHS; } /// Check for string equality, ignoring case. [[nodiscard]] bool equals_insensitive(StringRef RHS) const { diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 73fe63b5b8f6f..be2381cd7d779 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -6896,7 +6896,7 @@ Error BitcodeReader::materialize(GlobalValue *GV) { MDString *MDS = cast<MDString>(MD->getOperand(0)); StringRef ProfName = MDS->getString(); // Check consistency of !prof branch_weights metadata. - if (!ProfName.equals("branch_weights")) + if (ProfName != "branch_weights") continue; unsigned ExpectedNumOperands = 0; if (BranchInst *BI = dyn_cast<BranchInst>(&I)) diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp index edeb563076fdc..eaf8c35142def 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp @@ -659,7 +659,7 @@ void RuntimeDyldELF::setMipsABI(const ObjectFile &Obj) { IsMipsO32ABI = AbiVariant & ELF::EF_MIPS_ABI_O32; IsMipsN32ABI = AbiVariant & ELF::EF_MIPS_ABI2; } - IsMipsN64ABI = Obj.getFileFormatName().equals("elf64-mips"); + IsMipsN64ABI = Obj.getFileFormatName() == "elf64-mips"; } // Return the .TOC. section and offset. diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp index 8f80a69c4abd3..1719f8ef2b436 100644 --- a/llvm/lib/FileCheck/FileCheck.cpp +++ b/llvm/lib/FileCheck/FileCheck.cpp @@ -374,7 +374,7 @@ Expected<NumericVariable *> Pattern::parseNumericVariableDefinition( Expected<std::unique_ptr<NumericVariableUse>> Pattern::parseNumericVariableUse( StringRef Name, bool IsPseudo, std::optional<size_t> LineNumber, FileCheckPatternContext *Context, const SourceMgr &SM) { - if (IsPseudo && !Name.equals("@LINE")) + if (IsPseudo && Name != "@LINE") return ErrorDiagnostic::get( SM, Name, "invalid pseudo numeric variable '" + Name + "'"); diff --git a/llvm/lib/FuzzMutate/FuzzerCLI.cpp b/llvm/lib/FuzzMutate/FuzzerCLI.cpp index 58e4b74f4b228..504532865440f 100644 --- a/llvm/lib/FuzzMutate/FuzzerCLI.cpp +++ b/llvm/lib/FuzzMutate/FuzzerCLI.cpp @@ -21,7 +21,7 @@ void llvm::parseFuzzerCLOpts(int ArgC, char *ArgV[]) { int I = 1; while (I < ArgC) - if (StringRef(ArgV[I++]).equals("-ignore_remaining_args=1")) + if (StringRef(ArgV[I++]) == "-ignore_remaining_args=1") break; while (I < ArgC) CLArgs.push_back(ArgV[I++]); @@ -39,7 +39,7 @@ void llvm::handleExecNameEncodedBEOpts(StringRef ExecName) { SmallVector<StringRef, 4> Opts; NameAndArgs.second.split(Opts, '-'); for (StringRef Opt : Opts) { - if (Opt.equals("gisel")) { + if (Opt == "gisel") { Args.push_back("-global-isel"); // For now we default GlobalISel to -O0 Args.push_back("-O0"); @@ -151,7 +151,7 @@ int llvm::runFuzzerOnInputs(int ArgC, char *ArgV[], FuzzerTestFun TestOne, for (int I = 1; I < ArgC; ++I) { StringRef Arg(ArgV[I]); if (Arg.starts_with("-")) { - if (Arg.equals("-ignore_remaining_args=1")) + if (Arg == "-ignore_remaining_args=1") break; continue; } diff --git a/llvm/lib/LTO/LTOModule.cpp b/llvm/lib/LTO/LTOModule.cpp index f839fe944e18f..eac78069f4d2b 100644 --- a/llvm/lib/LTO/LTOModule.cpp +++ b/llvm/lib/LTO/LTOModule.cpp @@ -694,7 +694,7 @@ bool LTOModule::hasCtorDtor() const { if (auto *GV = dyn_cast_if_present<GlobalValue *>(Sym)) { StringRef Name = GV->getName(); if (Name.consume_front("llvm.global_")) { - if (Name.equals("ctors") || Name.equals("dtors")) + if (Name == "ctors" || Name == "dtors") return true; } } diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index 3dc70a4015892..f257d0d9e83f7 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -468,7 +468,7 @@ void MCAsmStreamer::emitRawComment(const Twine &T, bool TabPrefix) { void MCAsmStreamer::addExplicitComment(const Twine &T) { StringRef c = T.getSingleStringRef(); - if (c.equals(StringRef(MAI->getSeparatorString()))) + if (c == MAI->getSeparatorString()) return; if (c.starts_with(StringRef("//"))) { ExplicitCommentToEmit.append("\t"); diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 76a3e501f4590..8d9acd54e8797 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -4543,7 +4543,7 @@ bool AsmParser::parseDirectiveMacro(SMLoc DirectiveLoc) { // Emit an error if two (or more) named parameters share the same name for (const MCAsmMacroParameter& CurrParam : Parameters) - if (CurrParam.Name.equals(Parameter.Name)) + if (CurrParam.Name == Parameter.Name) return TokError("macro '" + Name + "' has multiple parameters" " named '" + Parameter.Name + "'"); diff --git a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp index 3cd44e7195be6..a97b72997ae39 100644 --- a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp +++ b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp @@ -705,7 +705,7 @@ bool DarwinAsmParser::parseDirectiveSection(StringRef, SMLoc) { .Case("__datacoal_nt", "__data") .Default(Section); - if (!Section.equals(NonCoalSection)) { + if (Section != NonCoalSection) { StringRef SectionVal(Loc.getPointer()); size_t B = SectionVal.find(',') + 1, E = SectionVal.find(',', B); SMLoc BLoc = SMLoc::getFromPointer(SectionVal.data() + B); diff --git a/llvm/lib/MC/MCSymbolXCOFF.cpp b/llvm/lib/MC/MCSymbolXCOFF.cpp index b4c96a1ffa233..599a3946a1ed7 100644 --- a/llvm/lib/MC/MCSymbolXCOFF.cpp +++ b/llvm/lib/MC/MCSymbolXCOFF.cpp @@ -13,7 +13,7 @@ using namespace llvm; MCSectionXCOFF *MCSymbolXCOFF::getRepresentedCsect() const { assert(RepresentedCsect && "Trying to get csect representation of this symbol but none was set."); - assert(getSymbolTableName().equals(RepresentedCsect->getSymbolTableName()) && + assert(getSymbolTableName() == RepresentedCsect->getSymbolTableName() && "SymbolTableNames need to be the same for this symbol and its csect " "representation."); return RepresentedCsect; @@ -24,7 +24,7 @@ void MCSymbolXCOFF::setRepresentedCsect(MCSectionXCOFF *C) { assert((!RepresentedCsect || RepresentedCsect == C) && "Trying to set a csect that doesn't match the one that this symbol is " "already mapped to."); - assert(getSymbolTableName().equals(C->getSymbolTableName()) && + assert(getSymbolTableName() == C->getSymbolTableName() && "SymbolTableNames need to be the same for this symbol and its csect " "representation."); RepresentedCsect = C; diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp index 6139d9996bdad..e798bbdd16f14 100644 --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -269,11 +269,11 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const { return Name; // System libraries from the Windows SDK for Windows 11 contain this symbol. // It looks like a CFG guard: we just skip it for now. - if (Name.equals("/<XFGHASHMAP>/")) + if (Name == "/<XFGHASHMAP>/") return Name; // Some libraries (e.g., arm64rt.lib) from the Windows WDK // (version 10.0.22000.0) contain this undocumented special member. - if (Name.equals("/<ECSYMBOLS>/")) + if (Name == "/<ECSYMBOLS>/") return Name; // It's a long name. // Get the string table offset. diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 1cfd0a069463e..06186ad362aad 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -399,7 +399,7 @@ static Error parseSegmentLoadCommand( return malformedError("load command " + Twine(LoadCommandIndex) + " filesize field in " + CmdName + " greater than vmsize field"); - IsPageZeroSegment |= StringRef("__PAGEZERO").equals(S.segname); + IsPageZeroSegment |= StringRef("__PAGEZERO") == S.segname; } else return SegOrErr.takeError(); @@ -4364,7 +4364,7 @@ BindRebaseSegInfo::BindRebaseSegInfo(const object::MachOObjectFile *Obj) { Info.Size = Section.getSize(); Info.SegmentName = Obj->getSectionFinalSegmentName(Section.getRawDataRefImpl()); - if (!Info.SegmentName.equals(CurSegName)) { + if (Info.SegmentName != CurSegName) { ++CurSegIndex; CurSegName = Info.SegmentName; CurSegAddress = Info.Address; diff --git a/llvm/lib/Object/OffloadBinary.cpp b/llvm/lib/Object/OffloadBinary.cpp index 6e9f8bed513c1..89dc12551494f 100644 --- a/llvm/lib/Object/OffloadBinary.cpp +++ b/llvm/lib/Object/OffloadBinary.cpp @@ -359,7 +359,7 @@ bool object::areTargetsCompatible(const OffloadFile::TargetID &LHS, return false; // If the architecture is "all" we assume it is always compatible. - if (LHS.second.equals("generic") || RHS.second.equals("generic")) + if (LHS.second == "generic" || RHS.second == "generic") return true; // Only The AMDGPU target requires additional checks. diff --git a/llvm/lib/ObjectYAML/COFFEmitter.cpp b/llvm/lib/ObjectYAML/COFFEmitter.cpp index 7088223b9b672..bb46de4c6f57f 100644 --- a/llvm/lib/ObjectYAML/COFFEmitter.cpp +++ b/llvm/lib/ObjectYAML/COFFEmitter.cpp @@ -359,9 +359,9 @@ static uint32_t initializeOptionalHeader(COFFParser &CP, uint16_t Magic, SizeOfInitializedData += S.Header.SizeOfRawData; if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA) SizeOfUninitializedData += S.Header.SizeOfRawData; - if (S.Name.equals(".text")) + if (S.Name == ".text") Header->BaseOfCode = S.Header.VirtualAddress; // RVA - else if (S.Name.equals(".data")) + else if (S.Name == ".data") BaseOfData = S.Header.VirtualAddress; // RVA if (S.Header.VirtualAddress) SizeOfImage += alignTo(S.Header.VirtualSize, Header->SectionAlignment); diff --git a/llvm/lib/Passes/StandardInstrumentations.cpp b/llvm/lib/Passes/StandardInstrumentations.cpp index 79aff096fb085..c7adc7668b9a1 100644 --- a/llvm/lib/Passes/StandardInstrumentations.cpp +++ b/llvm/lib/Passes/StandardInstrumentations.cpp @@ -822,8 +822,7 @@ PrintIRInstrumentation::PassRunDescriptor PrintIRInstrumentation::popPassRunDescriptor(StringRef PassID) { assert(!PassRunDescriptorStack.empty() && "empty PassRunDescriptorStack"); PassRunDescriptor Descriptor = PassRunDescriptorStack.pop_back_val(); - assert(Descriptor.PassID.equals(PassID) && - "malformed PassRunDescriptorStack"); + assert(Descriptor.PassID == PassID && "malformed PassRunDescriptorStack"); return Descriptor; } diff --git a/llvm/lib/ProfileData/GCOV.cpp b/llvm/lib/ProfileData/GCOV.cpp index ee61784abade5..ecb12c045b5b1 100644 --- a/llvm/lib/ProfileData/GCOV.cpp +++ b/llvm/lib/ProfileData/GCOV.cpp @@ -678,7 +678,7 @@ std::string Context::getCoveragePath(StringRef filename, return std::string(filename); std::string CoveragePath; - if (options.LongFileNames && !filename.equals(mainFilename)) + if (options.LongFileNames && filename != mainFilename) CoveragePath = mangleCoveragePath(mainFilename, options.PreservePaths) + "##"; CoveragePath += mangleCoveragePath(filename, options.PreservePaths); diff --git a/llvm/lib/ProfileData/InstrProf.cpp b/llvm/lib/ProfileData/InstrProf.cpp index f9ba80bd99c85..1e3ca47b3d5aa 100644 --- a/llvm/lib/ProfileData/InstrProf.cpp +++ b/llvm/lib/ProfileData/InstrProf.cpp @@ -1283,7 +1283,7 @@ MDNode *mayHaveValueProfileOfKind(const Instruction &Inst, return nullptr; MDString *Tag = cast<MDString>(MD->getOperand(0)); - if (!Tag || !Tag->getString().equals("VP")) + if (!Tag || Tag->getString() != "VP") return nullptr; // Now check kind: diff --git a/llvm/lib/ProfileData/MemProfReader.cpp b/llvm/lib/ProfileData/MemProfReader.cpp index b4d2c6f043f6d..c25babac844ac 100644 --- a/llvm/lib/ProfileData/MemProfReader.cpp +++ b/llvm/lib/ProfileData/MemProfReader.cpp @@ -164,9 +164,9 @@ bool isRuntimePath(const StringRef Path) { const StringRef Filename = llvm::sys::path::filename(Path); // This list should be updated in case new files with additional interceptors // are added to the memprof runtime. - return Filename.equals("memprof_malloc_linux.cpp") || - Filename.equals("memprof_interceptors.cpp") || - Filename.equals("memprof_new_delete.cpp"); + return Filename == "memprof_malloc_linux.cpp" || + Filename == "memprof_interceptors.cpp" || + Filename == "memprof_new_delete.cpp"; } std::string getBuildIdString(const SegmentEntry &Entry) { diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp index 54b9c38f76095..fcefdef992be5 100644 --- a/llvm/lib/Support/VirtualFileSystem.cpp +++ b/llvm/lib/Support/VirtualFileSystem.cpp @@ -1725,7 +1725,7 @@ class llvm::vfs::RedirectingFileSystemParser { RedirectingFileSystem::Entry *ParentEntry = nullptr) { if (!ParentEntry) { // Look for a existent root for (const auto &Root : FS->Roots) { - if (Name.equals(Root->getName())) { + if (Name == Root->getName()) { ParentEntry = Root.get(); return ParentEntry; } @@ -1736,7 +1736,7 @@ class llvm::vfs::RedirectingFileSystemParser { llvm::make_range(DE->contents_begin(), DE->contents_end())) { auto *DirContent = dyn_cast<RedirectingFileSystem::DirectoryEntry>(Content.get()); - if (DirContent && Name.equals(Content->getName())) + if (DirContent && Name == Content->getName()) return DirContent; } } diff --git a/llvm/lib/TargetParser/ARMTargetParser.cpp b/llvm/lib/TargetParser/ARMTargetParser.cpp index 67f937ebc33f9..9d9917d86a368 100644 --- a/llvm/lib/TargetParser/ARMTargetParser.cpp +++ b/llvm/lib/TargetParser/ARMTargetParser.cpp @@ -610,7 +610,7 @@ StringRef ARM::getARMCPUForArch(const llvm::Triple &Triple, StringRef MArch) { return StringRef(); StringRef CPU = llvm::ARM::getDefaultCPU(MArch); - if (!CPU.empty() && !CPU.equals("invalid")) + if (!CPU.empty() && CPU != "invalid") return CPU; // If no specific architecture version is requested, return the minimum CPU diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index f3f244c814e7e..b4b2fa3b0b85e 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -348,14 +348,14 @@ StringRef Triple::getObjectFormatTypeName(ObjectFormatType Kind) { } static Triple::ArchType parseBPFArch(StringRef ArchName) { - if (ArchName.equals("bpf")) { + if (ArchName == "bpf") { if (sys::IsLittleEndianHost) return Triple::bpfel; else return Triple::bpfeb; - } else if (ArchName.equals("bpf_be") || ArchName.equals("bpfeb")) { + } else if (ArchName == "bpf_be" || ArchName == "bpfeb") { return Triple::bpfeb; - } else if (ArchName.equals("bpf_le") || ArchName.equals("bpfel")) { + } else if (ArchName == "bpf_le" || ArchName == "bpfel") { return Triple::bpfel; } else { return Triple::UnknownArch; diff --git a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp index 7246ba45d5afc..83473704398df 100644 --- a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp +++ b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp @@ -705,7 +705,7 @@ bool DwarfLinkerForBinary::linkImpl( } else { // Try and emit more helpful warnings by applying some heuristics. StringRef ObjFile = ContainerName; - bool IsClangModule = sys::path::extension(Path).equals(".pcm"); + bool IsClangModule = sys::path::extension(Path) == ".pcm"; bool IsArchive = ObjFile.ends_with(")"); if (IsClangModule) { diff --git a/llvm/tools/llvm-dwarfdump/Statistics.cpp b/llvm/tools/llvm-dwarfdump/Statistics.cpp index 96841c3c387bd..1846f9265c755 100644 --- a/llvm/tools/llvm-dwarfdump/Statistics.cpp +++ b/llvm/tools/llvm-dwarfdump/Statistics.cpp @@ -229,7 +229,7 @@ static std::string constructDieID(DWARFDie Die, << Die.getName(DINameKind::LinkageName); // Prefix + Name is enough for local variables and parameters. - if (!Prefix.empty() && !Prefix.equals("g")) + if (!Prefix.empty() && Prefix != "g") return ID.str(); auto DeclFile = Die.findRecursively(dwarf::DW_AT_decl_file); diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp index a879c203fc374..5915f92ea05c3 100644 --- a/llvm/tools/llvm-extract/llvm-extract.cpp +++ b/llvm/tools/llvm-extract/llvm-extract.cpp @@ -357,7 +357,7 @@ int main(int argc, char **argv) { // The function has been materialized, so add its matching basic blocks // to the block extractor list, or fail if a name is not found. auto Res = llvm::find_if(*P.first, [&](const BasicBlock &BB) { - return BB.getName().equals(BBName); + return BB.getName() == BBName; }); if (Res == P.first->end()) { errs() << argv[0] << ": function " << P.first->getName() diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 5e0d69a68d69b..749f988201757 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -2148,7 +2148,7 @@ static void ProcessMachO(StringRef Name, MachOObjectFile *MachOOF, else consumeError(NameOrErr.takeError()); - if (SectName.equals("__text")) { + if (SectName == "__text") { DataRefImpl Ref = Section.getRawDataRefImpl(); StringRef SegName = MachOOF->getSectionFinalSegmentName(Ref); DisassembleMachO(FileName, MachOOF, SegName, SectName); diff --git a/llvm/tools/llvm-xray/xray-graph-diff.cpp b/llvm/tools/llvm-xray/xray-graph-diff.cpp index 899a6725a5d3e..b5c63ab0a9183 100644 --- a/llvm/tools/llvm-xray/xray-graph-diff.cpp +++ b/llvm/tools/llvm-xray/xray-graph-diff.cpp @@ -381,14 +381,14 @@ void GraphDiffRenderer::exportGraphAsDOT(raw_ostream &OS, StatType EdgeLabel, R"(color="{5}" labelfontcolor="{5}" penwidth={6}])" "\n", VertexNo[HeadId], VertexNo[TailId], - (HeadId.equals("")) ? static_cast<StringRef>("F0") : HeadId, + HeadId.empty() ? static_cast<StringRef>("F0") : HeadId, TailId, getLabel(E, EdgeLabel), getColor(E, G, H, EdgeColor), getLineWidth(E, EdgeColor)); } for (const auto &V : G.vertices()) { const auto &VertexId = V.first; - if (VertexId.equals("")) { + if (VertexId.empty()) { OS << formatv(R"(F{0} [label="F0"])" "\n", VertexNo[VertexId]); diff --git a/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp b/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp index c8370289963db..9a572c1e06005 100644 --- a/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp +++ b/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp @@ -18,7 +18,7 @@ inline bool isNumericRegex(llvm::StringRef S) { static llvm::Regex Float( "^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$"); - if (S.equals(".nan") || S.equals(".NaN") || S.equals(".NAN")) + if (S == ".nan" || S == ".NaN" || S == ".NAN") return true; if (Infinity.... [truncated] 
@llvmbot
Copy link
Member

llvmbot commented May 8, 2024

@llvm/pr-subscribers-debuginfo

Author: Kazu Hirata (kazutakahirata)

Changes

I'm planning to remove StringRef::equals in favor of
StringRef::operator==.

  • StringRef::operator==/!= outnumber StringRef::equals by a factor of
    70 under llvm/ in terms of their usage.

  • The elimination of StringRef::equals brings StringRef closer to
    std::string_view, which has operator== but not equals.

  • S == "foo" is more readable than S.equals("foo"), especially for
    !Long.Expression.equals("str") vs Long.Expression != "str".


Patch is 28.04 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/91441.diff

34 Files Affected:

  • (modified) llvm/include/llvm/ADT/SmallString.h (+1-1)
  • (modified) llvm/lib/Bitcode/Reader/BitcodeReader.cpp (+1-1)
  • (modified) llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp (+1-1)
  • (modified) llvm/lib/FileCheck/FileCheck.cpp (+1-1)
  • (modified) llvm/lib/FuzzMutate/FuzzerCLI.cpp (+3-3)
  • (modified) llvm/lib/LTO/LTOModule.cpp (+1-1)
  • (modified) llvm/lib/MC/MCAsmStreamer.cpp (+1-1)
  • (modified) llvm/lib/MC/MCParser/AsmParser.cpp (+1-1)
  • (modified) llvm/lib/MC/MCParser/DarwinAsmParser.cpp (+1-1)
  • (modified) llvm/lib/MC/MCSymbolXCOFF.cpp (+2-2)
  • (modified) llvm/lib/Object/Archive.cpp (+2-2)
  • (modified) llvm/lib/Object/MachOObjectFile.cpp (+2-2)
  • (modified) llvm/lib/Object/OffloadBinary.cpp (+1-1)
  • (modified) llvm/lib/ObjectYAML/COFFEmitter.cpp (+2-2)
  • (modified) llvm/lib/Passes/StandardInstrumentations.cpp (+1-2)
  • (modified) llvm/lib/ProfileData/GCOV.cpp (+1-1)
  • (modified) llvm/lib/ProfileData/InstrProf.cpp (+1-1)
  • (modified) llvm/lib/ProfileData/MemProfReader.cpp (+3-3)
  • (modified) llvm/lib/Support/VirtualFileSystem.cpp (+2-2)
  • (modified) llvm/lib/TargetParser/ARMTargetParser.cpp (+1-1)
  • (modified) llvm/lib/TargetParser/Triple.cpp (+3-3)
  • (modified) llvm/tools/dsymutil/DwarfLinkerForBinary.cpp (+1-1)
  • (modified) llvm/tools/llvm-dwarfdump/Statistics.cpp (+1-1)
  • (modified) llvm/tools/llvm-extract/llvm-extract.cpp (+1-1)
  • (modified) llvm/tools/llvm-objdump/MachODump.cpp (+1-1)
  • (modified) llvm/tools/llvm-xray/xray-graph-diff.cpp (+2-2)
  • (modified) llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp (+1-1)
  • (modified) llvm/unittests/ADT/StringRefTest.cpp (+3-3)
  • (modified) llvm/unittests/IR/VerifierTest.cpp (+18-18)
  • (modified) llvm/unittests/Support/MemoryBufferTest.cpp (+11-11)
  • (modified) llvm/unittests/Support/YAMLIOTest.cpp (+4-4)
  • (modified) llvm/unittests/TargetParser/CSKYTargetParserTest.cpp (+1-1)
  • (modified) llvm/unittests/TargetParser/TargetParserTest.cpp (+2-2)
  • (modified) llvm/utils/TableGen/AsmMatcherEmitter.cpp (+1-1)
diff --git a/llvm/include/llvm/ADT/SmallString.h b/llvm/include/llvm/ADT/SmallString.h index a5b9eec50c825..be3193c6ef9be 100644 --- a/llvm/include/llvm/ADT/SmallString.h +++ b/llvm/include/llvm/ADT/SmallString.h @@ -89,7 +89,7 @@ class SmallString : public SmallVector<char, InternalLen> { /// Check for string equality. This is more efficient than compare() when /// the relative ordering of inequal strings isn't needed. - [[nodiscard]] bool equals(StringRef RHS) const { return str().equals(RHS); } + [[nodiscard]] bool equals(StringRef RHS) const { return str() == RHS; } /// Check for string equality, ignoring case. [[nodiscard]] bool equals_insensitive(StringRef RHS) const { diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 73fe63b5b8f6f..be2381cd7d779 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -6896,7 +6896,7 @@ Error BitcodeReader::materialize(GlobalValue *GV) { MDString *MDS = cast<MDString>(MD->getOperand(0)); StringRef ProfName = MDS->getString(); // Check consistency of !prof branch_weights metadata. - if (!ProfName.equals("branch_weights")) + if (ProfName != "branch_weights") continue; unsigned ExpectedNumOperands = 0; if (BranchInst *BI = dyn_cast<BranchInst>(&I)) diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp index edeb563076fdc..eaf8c35142def 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp @@ -659,7 +659,7 @@ void RuntimeDyldELF::setMipsABI(const ObjectFile &Obj) { IsMipsO32ABI = AbiVariant & ELF::EF_MIPS_ABI_O32; IsMipsN32ABI = AbiVariant & ELF::EF_MIPS_ABI2; } - IsMipsN64ABI = Obj.getFileFormatName().equals("elf64-mips"); + IsMipsN64ABI = Obj.getFileFormatName() == "elf64-mips"; } // Return the .TOC. section and offset. diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp index 8f80a69c4abd3..1719f8ef2b436 100644 --- a/llvm/lib/FileCheck/FileCheck.cpp +++ b/llvm/lib/FileCheck/FileCheck.cpp @@ -374,7 +374,7 @@ Expected<NumericVariable *> Pattern::parseNumericVariableDefinition( Expected<std::unique_ptr<NumericVariableUse>> Pattern::parseNumericVariableUse( StringRef Name, bool IsPseudo, std::optional<size_t> LineNumber, FileCheckPatternContext *Context, const SourceMgr &SM) { - if (IsPseudo && !Name.equals("@LINE")) + if (IsPseudo && Name != "@LINE") return ErrorDiagnostic::get( SM, Name, "invalid pseudo numeric variable '" + Name + "'"); diff --git a/llvm/lib/FuzzMutate/FuzzerCLI.cpp b/llvm/lib/FuzzMutate/FuzzerCLI.cpp index 58e4b74f4b228..504532865440f 100644 --- a/llvm/lib/FuzzMutate/FuzzerCLI.cpp +++ b/llvm/lib/FuzzMutate/FuzzerCLI.cpp @@ -21,7 +21,7 @@ void llvm::parseFuzzerCLOpts(int ArgC, char *ArgV[]) { int I = 1; while (I < ArgC) - if (StringRef(ArgV[I++]).equals("-ignore_remaining_args=1")) + if (StringRef(ArgV[I++]) == "-ignore_remaining_args=1") break; while (I < ArgC) CLArgs.push_back(ArgV[I++]); @@ -39,7 +39,7 @@ void llvm::handleExecNameEncodedBEOpts(StringRef ExecName) { SmallVector<StringRef, 4> Opts; NameAndArgs.second.split(Opts, '-'); for (StringRef Opt : Opts) { - if (Opt.equals("gisel")) { + if (Opt == "gisel") { Args.push_back("-global-isel"); // For now we default GlobalISel to -O0 Args.push_back("-O0"); @@ -151,7 +151,7 @@ int llvm::runFuzzerOnInputs(int ArgC, char *ArgV[], FuzzerTestFun TestOne, for (int I = 1; I < ArgC; ++I) { StringRef Arg(ArgV[I]); if (Arg.starts_with("-")) { - if (Arg.equals("-ignore_remaining_args=1")) + if (Arg == "-ignore_remaining_args=1") break; continue; } diff --git a/llvm/lib/LTO/LTOModule.cpp b/llvm/lib/LTO/LTOModule.cpp index f839fe944e18f..eac78069f4d2b 100644 --- a/llvm/lib/LTO/LTOModule.cpp +++ b/llvm/lib/LTO/LTOModule.cpp @@ -694,7 +694,7 @@ bool LTOModule::hasCtorDtor() const { if (auto *GV = dyn_cast_if_present<GlobalValue *>(Sym)) { StringRef Name = GV->getName(); if (Name.consume_front("llvm.global_")) { - if (Name.equals("ctors") || Name.equals("dtors")) + if (Name == "ctors" || Name == "dtors") return true; } } diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp index 3dc70a4015892..f257d0d9e83f7 100644 --- a/llvm/lib/MC/MCAsmStreamer.cpp +++ b/llvm/lib/MC/MCAsmStreamer.cpp @@ -468,7 +468,7 @@ void MCAsmStreamer::emitRawComment(const Twine &T, bool TabPrefix) { void MCAsmStreamer::addExplicitComment(const Twine &T) { StringRef c = T.getSingleStringRef(); - if (c.equals(StringRef(MAI->getSeparatorString()))) + if (c == MAI->getSeparatorString()) return; if (c.starts_with(StringRef("//"))) { ExplicitCommentToEmit.append("\t"); diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 76a3e501f4590..8d9acd54e8797 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -4543,7 +4543,7 @@ bool AsmParser::parseDirectiveMacro(SMLoc DirectiveLoc) { // Emit an error if two (or more) named parameters share the same name for (const MCAsmMacroParameter& CurrParam : Parameters) - if (CurrParam.Name.equals(Parameter.Name)) + if (CurrParam.Name == Parameter.Name) return TokError("macro '" + Name + "' has multiple parameters" " named '" + Parameter.Name + "'"); diff --git a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp index 3cd44e7195be6..a97b72997ae39 100644 --- a/llvm/lib/MC/MCParser/DarwinAsmParser.cpp +++ b/llvm/lib/MC/MCParser/DarwinAsmParser.cpp @@ -705,7 +705,7 @@ bool DarwinAsmParser::parseDirectiveSection(StringRef, SMLoc) { .Case("__datacoal_nt", "__data") .Default(Section); - if (!Section.equals(NonCoalSection)) { + if (Section != NonCoalSection) { StringRef SectionVal(Loc.getPointer()); size_t B = SectionVal.find(',') + 1, E = SectionVal.find(',', B); SMLoc BLoc = SMLoc::getFromPointer(SectionVal.data() + B); diff --git a/llvm/lib/MC/MCSymbolXCOFF.cpp b/llvm/lib/MC/MCSymbolXCOFF.cpp index b4c96a1ffa233..599a3946a1ed7 100644 --- a/llvm/lib/MC/MCSymbolXCOFF.cpp +++ b/llvm/lib/MC/MCSymbolXCOFF.cpp @@ -13,7 +13,7 @@ using namespace llvm; MCSectionXCOFF *MCSymbolXCOFF::getRepresentedCsect() const { assert(RepresentedCsect && "Trying to get csect representation of this symbol but none was set."); - assert(getSymbolTableName().equals(RepresentedCsect->getSymbolTableName()) && + assert(getSymbolTableName() == RepresentedCsect->getSymbolTableName() && "SymbolTableNames need to be the same for this symbol and its csect " "representation."); return RepresentedCsect; @@ -24,7 +24,7 @@ void MCSymbolXCOFF::setRepresentedCsect(MCSectionXCOFF *C) { assert((!RepresentedCsect || RepresentedCsect == C) && "Trying to set a csect that doesn't match the one that this symbol is " "already mapped to."); - assert(getSymbolTableName().equals(C->getSymbolTableName()) && + assert(getSymbolTableName() == C->getSymbolTableName() && "SymbolTableNames need to be the same for this symbol and its csect " "representation."); RepresentedCsect = C; diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp index 6139d9996bdad..e798bbdd16f14 100644 --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -269,11 +269,11 @@ Expected<StringRef> ArchiveMemberHeader::getName(uint64_t Size) const { return Name; // System libraries from the Windows SDK for Windows 11 contain this symbol. // It looks like a CFG guard: we just skip it for now. - if (Name.equals("/<XFGHASHMAP>/")) + if (Name == "/<XFGHASHMAP>/") return Name; // Some libraries (e.g., arm64rt.lib) from the Windows WDK // (version 10.0.22000.0) contain this undocumented special member. - if (Name.equals("/<ECSYMBOLS>/")) + if (Name == "/<ECSYMBOLS>/") return Name; // It's a long name. // Get the string table offset. diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 1cfd0a069463e..06186ad362aad 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -399,7 +399,7 @@ static Error parseSegmentLoadCommand( return malformedError("load command " + Twine(LoadCommandIndex) + " filesize field in " + CmdName + " greater than vmsize field"); - IsPageZeroSegment |= StringRef("__PAGEZERO").equals(S.segname); + IsPageZeroSegment |= StringRef("__PAGEZERO") == S.segname; } else return SegOrErr.takeError(); @@ -4364,7 +4364,7 @@ BindRebaseSegInfo::BindRebaseSegInfo(const object::MachOObjectFile *Obj) { Info.Size = Section.getSize(); Info.SegmentName = Obj->getSectionFinalSegmentName(Section.getRawDataRefImpl()); - if (!Info.SegmentName.equals(CurSegName)) { + if (Info.SegmentName != CurSegName) { ++CurSegIndex; CurSegName = Info.SegmentName; CurSegAddress = Info.Address; diff --git a/llvm/lib/Object/OffloadBinary.cpp b/llvm/lib/Object/OffloadBinary.cpp index 6e9f8bed513c1..89dc12551494f 100644 --- a/llvm/lib/Object/OffloadBinary.cpp +++ b/llvm/lib/Object/OffloadBinary.cpp @@ -359,7 +359,7 @@ bool object::areTargetsCompatible(const OffloadFile::TargetID &LHS, return false; // If the architecture is "all" we assume it is always compatible. - if (LHS.second.equals("generic") || RHS.second.equals("generic")) + if (LHS.second == "generic" || RHS.second == "generic") return true; // Only The AMDGPU target requires additional checks. diff --git a/llvm/lib/ObjectYAML/COFFEmitter.cpp b/llvm/lib/ObjectYAML/COFFEmitter.cpp index 7088223b9b672..bb46de4c6f57f 100644 --- a/llvm/lib/ObjectYAML/COFFEmitter.cpp +++ b/llvm/lib/ObjectYAML/COFFEmitter.cpp @@ -359,9 +359,9 @@ static uint32_t initializeOptionalHeader(COFFParser &CP, uint16_t Magic, SizeOfInitializedData += S.Header.SizeOfRawData; if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA) SizeOfUninitializedData += S.Header.SizeOfRawData; - if (S.Name.equals(".text")) + if (S.Name == ".text") Header->BaseOfCode = S.Header.VirtualAddress; // RVA - else if (S.Name.equals(".data")) + else if (S.Name == ".data") BaseOfData = S.Header.VirtualAddress; // RVA if (S.Header.VirtualAddress) SizeOfImage += alignTo(S.Header.VirtualSize, Header->SectionAlignment); diff --git a/llvm/lib/Passes/StandardInstrumentations.cpp b/llvm/lib/Passes/StandardInstrumentations.cpp index 79aff096fb085..c7adc7668b9a1 100644 --- a/llvm/lib/Passes/StandardInstrumentations.cpp +++ b/llvm/lib/Passes/StandardInstrumentations.cpp @@ -822,8 +822,7 @@ PrintIRInstrumentation::PassRunDescriptor PrintIRInstrumentation::popPassRunDescriptor(StringRef PassID) { assert(!PassRunDescriptorStack.empty() && "empty PassRunDescriptorStack"); PassRunDescriptor Descriptor = PassRunDescriptorStack.pop_back_val(); - assert(Descriptor.PassID.equals(PassID) && - "malformed PassRunDescriptorStack"); + assert(Descriptor.PassID == PassID && "malformed PassRunDescriptorStack"); return Descriptor; } diff --git a/llvm/lib/ProfileData/GCOV.cpp b/llvm/lib/ProfileData/GCOV.cpp index ee61784abade5..ecb12c045b5b1 100644 --- a/llvm/lib/ProfileData/GCOV.cpp +++ b/llvm/lib/ProfileData/GCOV.cpp @@ -678,7 +678,7 @@ std::string Context::getCoveragePath(StringRef filename, return std::string(filename); std::string CoveragePath; - if (options.LongFileNames && !filename.equals(mainFilename)) + if (options.LongFileNames && filename != mainFilename) CoveragePath = mangleCoveragePath(mainFilename, options.PreservePaths) + "##"; CoveragePath += mangleCoveragePath(filename, options.PreservePaths); diff --git a/llvm/lib/ProfileData/InstrProf.cpp b/llvm/lib/ProfileData/InstrProf.cpp index f9ba80bd99c85..1e3ca47b3d5aa 100644 --- a/llvm/lib/ProfileData/InstrProf.cpp +++ b/llvm/lib/ProfileData/InstrProf.cpp @@ -1283,7 +1283,7 @@ MDNode *mayHaveValueProfileOfKind(const Instruction &Inst, return nullptr; MDString *Tag = cast<MDString>(MD->getOperand(0)); - if (!Tag || !Tag->getString().equals("VP")) + if (!Tag || Tag->getString() != "VP") return nullptr; // Now check kind: diff --git a/llvm/lib/ProfileData/MemProfReader.cpp b/llvm/lib/ProfileData/MemProfReader.cpp index b4d2c6f043f6d..c25babac844ac 100644 --- a/llvm/lib/ProfileData/MemProfReader.cpp +++ b/llvm/lib/ProfileData/MemProfReader.cpp @@ -164,9 +164,9 @@ bool isRuntimePath(const StringRef Path) { const StringRef Filename = llvm::sys::path::filename(Path); // This list should be updated in case new files with additional interceptors // are added to the memprof runtime. - return Filename.equals("memprof_malloc_linux.cpp") || - Filename.equals("memprof_interceptors.cpp") || - Filename.equals("memprof_new_delete.cpp"); + return Filename == "memprof_malloc_linux.cpp" || + Filename == "memprof_interceptors.cpp" || + Filename == "memprof_new_delete.cpp"; } std::string getBuildIdString(const SegmentEntry &Entry) { diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp index 54b9c38f76095..fcefdef992be5 100644 --- a/llvm/lib/Support/VirtualFileSystem.cpp +++ b/llvm/lib/Support/VirtualFileSystem.cpp @@ -1725,7 +1725,7 @@ class llvm::vfs::RedirectingFileSystemParser { RedirectingFileSystem::Entry *ParentEntry = nullptr) { if (!ParentEntry) { // Look for a existent root for (const auto &Root : FS->Roots) { - if (Name.equals(Root->getName())) { + if (Name == Root->getName()) { ParentEntry = Root.get(); return ParentEntry; } @@ -1736,7 +1736,7 @@ class llvm::vfs::RedirectingFileSystemParser { llvm::make_range(DE->contents_begin(), DE->contents_end())) { auto *DirContent = dyn_cast<RedirectingFileSystem::DirectoryEntry>(Content.get()); - if (DirContent && Name.equals(Content->getName())) + if (DirContent && Name == Content->getName()) return DirContent; } } diff --git a/llvm/lib/TargetParser/ARMTargetParser.cpp b/llvm/lib/TargetParser/ARMTargetParser.cpp index 67f937ebc33f9..9d9917d86a368 100644 --- a/llvm/lib/TargetParser/ARMTargetParser.cpp +++ b/llvm/lib/TargetParser/ARMTargetParser.cpp @@ -610,7 +610,7 @@ StringRef ARM::getARMCPUForArch(const llvm::Triple &Triple, StringRef MArch) { return StringRef(); StringRef CPU = llvm::ARM::getDefaultCPU(MArch); - if (!CPU.empty() && !CPU.equals("invalid")) + if (!CPU.empty() && CPU != "invalid") return CPU; // If no specific architecture version is requested, return the minimum CPU diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index f3f244c814e7e..b4b2fa3b0b85e 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -348,14 +348,14 @@ StringRef Triple::getObjectFormatTypeName(ObjectFormatType Kind) { } static Triple::ArchType parseBPFArch(StringRef ArchName) { - if (ArchName.equals("bpf")) { + if (ArchName == "bpf") { if (sys::IsLittleEndianHost) return Triple::bpfel; else return Triple::bpfeb; - } else if (ArchName.equals("bpf_be") || ArchName.equals("bpfeb")) { + } else if (ArchName == "bpf_be" || ArchName == "bpfeb") { return Triple::bpfeb; - } else if (ArchName.equals("bpf_le") || ArchName.equals("bpfel")) { + } else if (ArchName == "bpf_le" || ArchName == "bpfel") { return Triple::bpfel; } else { return Triple::UnknownArch; diff --git a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp index 7246ba45d5afc..83473704398df 100644 --- a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp +++ b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp @@ -705,7 +705,7 @@ bool DwarfLinkerForBinary::linkImpl( } else { // Try and emit more helpful warnings by applying some heuristics. StringRef ObjFile = ContainerName; - bool IsClangModule = sys::path::extension(Path).equals(".pcm"); + bool IsClangModule = sys::path::extension(Path) == ".pcm"; bool IsArchive = ObjFile.ends_with(")"); if (IsClangModule) { diff --git a/llvm/tools/llvm-dwarfdump/Statistics.cpp b/llvm/tools/llvm-dwarfdump/Statistics.cpp index 96841c3c387bd..1846f9265c755 100644 --- a/llvm/tools/llvm-dwarfdump/Statistics.cpp +++ b/llvm/tools/llvm-dwarfdump/Statistics.cpp @@ -229,7 +229,7 @@ static std::string constructDieID(DWARFDie Die, << Die.getName(DINameKind::LinkageName); // Prefix + Name is enough for local variables and parameters. - if (!Prefix.empty() && !Prefix.equals("g")) + if (!Prefix.empty() && Prefix != "g") return ID.str(); auto DeclFile = Die.findRecursively(dwarf::DW_AT_decl_file); diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp index a879c203fc374..5915f92ea05c3 100644 --- a/llvm/tools/llvm-extract/llvm-extract.cpp +++ b/llvm/tools/llvm-extract/llvm-extract.cpp @@ -357,7 +357,7 @@ int main(int argc, char **argv) { // The function has been materialized, so add its matching basic blocks // to the block extractor list, or fail if a name is not found. auto Res = llvm::find_if(*P.first, [&](const BasicBlock &BB) { - return BB.getName().equals(BBName); + return BB.getName() == BBName; }); if (Res == P.first->end()) { errs() << argv[0] << ": function " << P.first->getName() diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 5e0d69a68d69b..749f988201757 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -2148,7 +2148,7 @@ static void ProcessMachO(StringRef Name, MachOObjectFile *MachOOF, else consumeError(NameOrErr.takeError()); - if (SectName.equals("__text")) { + if (SectName == "__text") { DataRefImpl Ref = Section.getRawDataRefImpl(); StringRef SegName = MachOOF->getSectionFinalSegmentName(Ref); DisassembleMachO(FileName, MachOOF, SegName, SectName); diff --git a/llvm/tools/llvm-xray/xray-graph-diff.cpp b/llvm/tools/llvm-xray/xray-graph-diff.cpp index 899a6725a5d3e..b5c63ab0a9183 100644 --- a/llvm/tools/llvm-xray/xray-graph-diff.cpp +++ b/llvm/tools/llvm-xray/xray-graph-diff.cpp @@ -381,14 +381,14 @@ void GraphDiffRenderer::exportGraphAsDOT(raw_ostream &OS, StatType EdgeLabel, R"(color="{5}" labelfontcolor="{5}" penwidth={6}])" "\n", VertexNo[HeadId], VertexNo[TailId], - (HeadId.equals("")) ? static_cast<StringRef>("F0") : HeadId, + HeadId.empty() ? static_cast<StringRef>("F0") : HeadId, TailId, getLabel(E, EdgeLabel), getColor(E, G, H, EdgeColor), getLineWidth(E, EdgeColor)); } for (const auto &V : G.vertices()) { const auto &VertexId = V.first; - if (VertexId.equals("")) { + if (VertexId.empty()) { OS << formatv(R"(F{0} [label="F0"])" "\n", VertexNo[VertexId]); diff --git a/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp b/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp index c8370289963db..9a572c1e06005 100644 --- a/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp +++ b/llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp @@ -18,7 +18,7 @@ inline bool isNumericRegex(llvm::StringRef S) { static llvm::Regex Float( "^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$"); - if (S.equals(".nan") || S.equals(".NaN") || S.equals(".NAN")) + if (S == ".nan" || S == ".NaN" || S == ".NAN") return true; if (Infinity.... [truncated] 
@kazutakahirata kazutakahirata merged commit bb6df08 into llvm:main May 8, 2024
@kazutakahirata kazutakahirata deleted the cleanup_StringRef_equals_llvm branch May 8, 2024 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

4 participants