[clang] 12c0281 - [Lex] Replace hash_combine with a stable hash
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 20 23:26:18 PDT 2024
Author: Fangrui Song
Date: 2024-06-20T23:26:15-07:00
New Revision: 12c0281f8c73bc1aa20d1517357e0e12c3f8bb4e
URL: https://github.com/llvm/llvm-project/commit/12c0281f8c73bc1aa20d1517357e0e12c3f8bb4e
DIFF: https://github.com/llvm/llvm-project/commit/12c0281f8c73bc1aa20d1517357e0e12c3f8bb4e.diff
LOG: [Lex] Replace hash_combine with a stable hash
Added:
Modified:
clang/lib/Lex/HeaderSearch.cpp
Removed:
################################################################################
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp
index 3bd3aa447ff40..c3b3064cfbf28 100644
--- a/clang/lib/Lex/HeaderSearch.cpp
+++ b/clang/lib/Lex/HeaderSearch.cpp
@@ -25,11 +25,11 @@
#include "clang/Lex/Preprocessor.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/Hashing.h"
+#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
-#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/Errc.h"
@@ -37,6 +37,7 @@
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/VirtualFileSystem.h"
+#include "llvm/Support/xxhash.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
@@ -282,10 +283,10 @@ std::string HeaderSearch::getCachedModuleFileNameImpl(StringRef ModuleName,
if (getModuleMap().canonicalizeModuleMapPath(CanonicalPath))
return {};
- llvm::hash_code Hash = llvm::hash_combine(CanonicalPath.str().lower());
+ auto Hash = llvm::xxh3_64bits(CanonicalPath.str().lower());
SmallString<128> HashStr;
- llvm::APInt(64, size_t(Hash)).toStringUnsigned(HashStr, /*Radix*/36);
+ llvm::APInt(64, Hash).toStringUnsigned(HashStr, /*Radix*/36);
llvm::sys::path::append(Result, ModuleName + "-" + HashStr + ".pcm");
}
return Result.str().str();
More information about the cfe-commits
mailing list