diff options
author | Daniel Thornburgh <dthorn@google.com> | 2023-01-30 13:19:05 -0800 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2023-02-07 19:00:57 -0800 |
commit | d551b1e6d3eff268bae5d102fe97c697135e712c (patch) | |
tree | 17b1cd8320724f45bd11f1a2900af5637a86da24 | |
parent | 0b21322abe6f1da2c609302581d2465e2057d1d5 (diff) | |
download | llvm-d551b1e6d3eff268bae5d102fe97c697135e712c.tar.gz |
[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
(cherry picked from commit 0a51eeda1ef43d0f9a73ed2ac15f602262943ea1)
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp index 6b7fe1a387bb..ce71eebd4fd3 100644 --- a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp +++ b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp @@ -410,30 +410,21 @@ CoverageMapping::load(ArrayRef<StringRef> ObjectFilenames, } if (BIDFetcher) { - const auto &CompareLT = [](object::BuildIDRef A, object::BuildIDRef B) { - return StringRef(reinterpret_cast<const char *>(A.data()), A.size()) < - StringRef(reinterpret_cast<const char *>(B.data()), B.size()); - }; - const auto &CompareEQ = [](object::BuildIDRef A, object::BuildIDRef B) { - return StringRef(reinterpret_cast<const char *>(A.data()), A.size()) == - StringRef(reinterpret_cast<const char *>(B.data()), B.size()); - }; std::vector<object::BuildID> 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<object::BuildIDRef> 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) { |