[PATCH] D155677: [lld-macho] Switch to xxh3_64bits
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 19 09:59:01 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2090d66b2376: [lld-macho] Switch to xxh3_64bits (authored by MaskRay).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155677/new/
https://reviews.llvm.org/D155677
Files:
lld/MachO/ICF.cpp
lld/MachO/InputSection.cpp
lld/MachO/SyntheticSections.cpp
lld/MachO/Writer.cpp
Index: lld/MachO/Writer.cpp
===================================================================
--- lld/MachO/Writer.cpp
+++ lld/MachO/Writer.cpp
@@ -1190,14 +1190,14 @@
threadFutures.reserve(chunks.size());
for (size_t i = 0; i < chunks.size(); ++i)
threadFutures.emplace_back(threadPool.async(
- [&](size_t j) { hashes[j] = xxHash64(chunks[j]); }, i));
+ [&](size_t j) { hashes[j] = xxh3_64bits(chunks[j]); }, i));
for (std::shared_future<void> &future : threadFutures)
future.wait();
// Append the output filename so that identical binaries with different names
// don't get the same UUID.
- hashes[chunks.size()] = xxHash64(sys::path::filename(config->finalOutput));
- uint64_t digest = xxHash64({reinterpret_cast<uint8_t *>(hashes.data()),
- hashes.size() * sizeof(uint64_t)});
+ hashes[chunks.size()] = xxh3_64bits(sys::path::filename(config->finalOutput));
+ uint64_t digest = xxh3_64bits({reinterpret_cast<uint8_t *>(hashes.data()),
+ hashes.size() * sizeof(uint64_t)});
uuidCommand->writeUuid(digest);
}
Index: lld/MachO/SyntheticSections.cpp
===================================================================
--- lld/MachO/SyntheticSections.cpp
+++ lld/MachO/SyntheticSections.cpp
@@ -1677,7 +1677,7 @@
DeduplicatedCStringSection::StringOffset
DeduplicatedCStringSection::getStringOffset(StringRef str) const {
// StringPiece uses 31 bits to store the hashes, so we replicate that
- uint32_t hash = xxHash64(str) & 0x7fffffff;
+ uint32_t hash = xxh3_64bits(str) & 0x7fffffff;
auto offset = stringOffsetMap.find(CachedHashStringRef(str, hash));
assert(offset != stringOffsetMap.end() &&
"Looked-up strings should always exist in section");
Index: lld/MachO/InputSection.cpp
===================================================================
--- lld/MachO/InputSection.cpp
+++ lld/MachO/InputSection.cpp
@@ -246,7 +246,7 @@
size_t end = s.find(0);
if (end == StringRef::npos)
fatal(getLocation(off) + ": string is not null terminated");
- uint32_t hash = deduplicateLiterals ? xxHash64(s.take_front(end)) : 0;
+ uint32_t hash = deduplicateLiterals ? xxh3_64bits(s.take_front(end)) : 0;
pieces.emplace_back(off, hash);
size_t size = end + 1; // include null terminator
s = s.substr(size);
Index: lld/MachO/ICF.cpp
===================================================================
--- lld/MachO/ICF.cpp
+++ lld/MachO/ICF.cpp
@@ -457,7 +457,7 @@
assert(isec->icfEqClass[0] == 0); // don't overwrite a unique ID!
// Turn-on the top bit to guarantee that valid hashes have no collisions
// with the small-integer unique IDs for ICF-ineligible sections
- isec->icfEqClass[0] = xxHash64(isec->data) | (1ull << 31);
+ isec->icfEqClass[0] = xxh3_64bits(isec->data) | (1ull << 31);
});
// Now that every input section is either hashed or marked as unique, run the
// segregation algorithm to detect foldable subsections.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D155677.542089.patch
Type: text/x-patch
Size: 3024 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230719/b83ccff9/attachment.bin>
More information about the llvm-commits
mailing list