Skip to content

Commit

Permalink
[NFC] [llvm-cov] Remove unnecessary logic from llvm-cov debuginfod.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
mysterymath committed Jan 30, 2023
1 parent 0eb01a9 commit 0a51eed
Showing 1 changed file with 6 additions and 15 deletions.
21 changes: 6 additions & 15 deletions llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 0a51eed

Please sign in to comment.