From 0a51eeda1ef43d0f9a73ed2ac15f602262943ea1 Mon Sep 17 00:00:00 2001 From: Daniel Thornburgh Date: Mon, 30 Jan 2023 13:19:05 -0800 Subject: [PATCH] [NFC] [llvm-cov] Remove unnecessary logic from llvm-cov debuginfod. Indexed profiles already have a sorted and uniqued binary ID list, and due to this, duplicates are harmless in the list of binary IDs found, since it's set_differenced from the list in the indexed profile. Differential Revision: https://reviews.llvm.org/D136702 --- llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp index 6b7fe1a..ce71eeb 100644 --- a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp +++ b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp @@ -410,30 +410,21 @@ CoverageMapping::load(ArrayRef ObjectFilenames, } if (BIDFetcher) { - const auto &CompareLT = [](object::BuildIDRef A, object::BuildIDRef B) { - return StringRef(reinterpret_cast(A.data()), A.size()) < - StringRef(reinterpret_cast(B.data()), B.size()); - }; - const auto &CompareEQ = [](object::BuildIDRef A, object::BuildIDRef B) { - return StringRef(reinterpret_cast(A.data()), A.size()) == - StringRef(reinterpret_cast(B.data()), B.size()); - }; std::vector ProfileBinaryIDs; if (Error E = ProfileReader->readBinaryIds(ProfileBinaryIDs)) return createFileError(ProfileFilename, std::move(E)); - llvm::sort(ProfileBinaryIDs, CompareLT); - ProfileBinaryIDs.erase(llvm::unique(ProfileBinaryIDs, CompareEQ), - ProfileBinaryIDs.end()); SmallVector BinaryIDsToFetch; if (!ProfileBinaryIDs.empty()) { - llvm::sort(FoundBinaryIDs, CompareLT); - FoundBinaryIDs.erase(llvm::unique(FoundBinaryIDs, CompareEQ), - FoundBinaryIDs.end()); + const auto &Compare = [](object::BuildIDRef A, object::BuildIDRef B) { + return std::lexicographical_compare(A.begin(), A.end(), B.begin(), + B.end()); + }; + llvm::sort(FoundBinaryIDs, Compare); std::set_difference( ProfileBinaryIDs.begin(), ProfileBinaryIDs.end(), FoundBinaryIDs.begin(), FoundBinaryIDs.end(), - std::inserter(BinaryIDsToFetch, BinaryIDsToFetch.end()), CompareLT); + std::inserter(BinaryIDsToFetch, BinaryIDsToFetch.end()), Compare); } for (object::BuildIDRef BinaryID : BinaryIDsToFetch) { -- 2.7.4