[llvm-branch-commits] [clang] [AllocToken, Clang] Implement TypeHashPointerSplit mode (PR #156840)

Vitaly Buka via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Sep 22 10:19:03 PDT 2025


================
@@ -183,12 +201,20 @@ class TypeHashMode : public ModeBase {
   using ModeBase::ModeBase;
 
   uint64_t operator()(const CallBase &CB, OptimizationRemarkEmitter &ORE) {
+    const auto [N, H] = getHash(CB, ORE);
+    return N ? boundedToken(H) : H;
+  }
+
+protected:
+  std::pair<MDNode *, uint64_t> getHash(const CallBase &CB,
+                                        OptimizationRemarkEmitter &ORE) {
     if (MDNode *N = getAllocTokenMetadata(CB)) {
       MDString *S = cast<MDString>(N->getOperand(0));
-      return boundedToken(xxHash64(S->getString()));
+      return {N, xxHash64(S->getString())};
----------------
vitalybuka wrote:

So we need a stable hash here? I assume xxHash64 is not.
Maybe something we use in GUID?


https://github.com/llvm/llvm-project/pull/156840


More information about the llvm-branch-commits mailing list