Author: Fangrui Song Date: 2023-07-25T16:02:54-07:00 New Revision: 16d79d26b3b6b7ab4b024f478f05569e0a033c76
URL: https://github.com/llvm/llvm-project/commit/16d79d26b3b6b7ab4b024f478f05569e0a033c76 DIFF: https://github.com/llvm/llvm-project/commit/16d79d26b3b6b7ab4b024f478f05569e0a033c76.diff LOG: [clangd] Use xxh3_64bits for background index file digests Many sources show that xxh3 is much better than xxh64. This particular instance may or may not have noticeable difference, but this change moves us toward removing xxHash64. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D155992 Added: Modified: clang-tools-extra/clangd/SourceCode.cpp clang-tools-extra/clangd/index/Background.cpp clang-tools-extra/clangd/index/Serialization.cpp clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/SourceCode.cpp b/clang-tools-extra/clangd/SourceCode.cpp index eb0a578b0f4a12..31323c08cf1ddf 100644 --- a/clang-tools-extra/clangd/SourceCode.cpp +++ b/clang-tools-extra/clangd/SourceCode.cpp @@ -559,7 +559,7 @@ TextEdit toTextEdit(const FixItHint &FixIt, const SourceManager &M, } FileDigest digest(llvm::StringRef Content) { - uint64_t Hash{llvm::xxHash64(Content)}; + uint64_t Hash{llvm::xxh3_64bits(Content)}; FileDigest Result; for (unsigned I = 0; I < Result.size(); ++I) { Result[I] = uint8_t(Hash); diff --git a/clang-tools-extra/clangd/index/Background.cpp b/clang-tools-extra/clangd/index/Background.cpp index c35de750435cc4..cbeb74d145401c 100644 --- a/clang-tools-extra/clangd/index/Background.cpp +++ b/clang-tools-extra/clangd/index/Background.cpp @@ -155,7 +155,7 @@ static llvm::StringRef filenameWithoutExtension(llvm::StringRef Path) { BackgroundQueue::Task BackgroundIndex::indexFileTask(std::string Path) { std::string Tag = filenameWithoutExtension(Path).str(); - uint64_t Key = llvm::xxHash64(Path); + uint64_t Key = llvm::xxh3_64bits(Path); BackgroundQueue::Task T([this, Path(std::move(Path))] { std::optional<WithContext> WithProvidedContext; if (ContextProvider) diff --git a/clang-tools-extra/clangd/index/Serialization.cpp b/clang-tools-extra/clangd/index/Serialization.cpp index aaa1d517370fb9..b905f580c281c9 100644 --- a/clang-tools-extra/clangd/index/Serialization.cpp +++ b/clang-tools-extra/clangd/index/Serialization.cpp @@ -457,7 +457,7 @@ readCompileCommand(Reader CmdReader, llvm::ArrayRef<llvm::StringRef> Strings) { // The current versioning scheme is simple - non-current versions are rejected. // If you make a breaking change, bump this version number to invalidate stored // data. Later we may want to support some backward compatibility. -constexpr static uint32_t Version = 18; +constexpr static uint32_t Version = 19; llvm::Expected<IndexFileIn> readRIFF(llvm::StringRef Data, SymbolOrigin Origin) { diff --git a/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx index b59849472d57bf..0c04df86ae1c6c 100644 Binary files a/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx and b/clang-tools-extra/clangd/test/index-serialization/Inputs/sample.idx diff er _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits