https://github.com/vitalybuka updated 
https://github.com/llvm/llvm-project/pull/192911

>From 8e22e55a4330c8ab459604eca6aa13b770681ac7 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <[email protected]>
Date: Mon, 20 Apr 2026 01:14:58 -0700
Subject: [PATCH 1/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20ch?=
 =?UTF-8?q?anges=20to=20main=20this=20commit=20is=20based=20on?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7

[skip ci]
---
 llvm/lib/CodeGen/MachineBlockHashInfo.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp 
b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
index 3aa3823731396..eeddaf6d48de4 100644
--- a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
@@ -11,6 +11,8 @@
 
//===----------------------------------------------------------------------===//
 
 #include "llvm/CodeGen/MachineBlockHashInfo.h"
+#include "llvm/ADT/Hashing.h"
+#include "llvm/CodeGen/MachineStableHash.h"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Target/TargetMachine.h"
@@ -25,8 +27,8 @@ static uint64_t hashBlock(const MachineBasicBlock &MBB, bool 
HashOperands) {
     Hash = hashing::detail::hash_16_bytes(Hash, MI.getOpcode());
     if (HashOperands) {
       for (unsigned i = 0; i < MI.getNumOperands(); i++) {
-        Hash =
-            hashing::detail::hash_16_bytes(Hash, hash_value(MI.getOperand(i)));
+        Hash = hashing::detail::hash_16_bytes(
+            Hash, stableHashValue(MI.getOperand(i)));
       }
     }
   }

>From 4da84015363419bb8a6eeb61d1fafa492bb707f2 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <[email protected]>
Date: Mon, 20 Apr 2026 01:18:29 -0700
Subject: [PATCH 2/3] new line

Created using spr 1.3.7
---
 llvm/lib/CodeGen/MachineBlockHashInfo.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp 
b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
index 5b0569cbdba26..93b731fcf2748 100644
--- a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
@@ -159,4 +159,4 @@ MachineFunctionPass *llvm::createMachineBlockHashInfoPass() 
{
 MachineFunctionPass *
 llvm::createMachineBlockHashInfoPrinterPass(raw_ostream &OS) {
   return new MachineBlockHashInfoPrinter(OS);
-}
\ No newline at end of file
+}

>From 354d62c00ac6a00c75c383a742ff16d3005fc410 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <[email protected]>
Date: Mon, 20 Apr 2026 12:41:54 -0700
Subject: [PATCH 3/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20ch?=
 =?UTF-8?q?anges=20introduced=20through=20rebase?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7

[skip ci]
---
 .../llvm/CodeGen/MachineBlockHashInfo.h       | 15 +++++++++++++--
 llvm/lib/CodeGen/MachineBlockHashInfo.cpp     | 19 ++++++++++++++++---
 2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/llvm/include/llvm/CodeGen/MachineBlockHashInfo.h 
b/llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
index 6f26819d566ae..b6df22b135bfe 100644
--- a/llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_CODEGEN_MACHINEBLOCKHASHINFO_H
 #define LLVM_CODEGEN_MACHINEBLOCKHASHINFO_H
 
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 
 namespace llvm {
@@ -95,9 +96,19 @@ struct BlendedBlockHash {
   uint16_t NeighborHash{0};
 };
 
-class MachineBlockHashInfo : public MachineFunctionPass {
+/// Result object for MachineBlockHashInfo.
+class MachineBlockHashInfoResult {
   DenseMap<const MachineBasicBlock *, uint64_t> MBBHashInfo;
 
+public:
+  MachineBlockHashInfoResult();
+  explicit MachineBlockHashInfoResult(const MachineFunction &MBB);
+  uint64_t getMBBHash(const MachineBasicBlock &MBB) const;
+};
+
+class MachineBlockHashInfo : public MachineFunctionPass {
+  MachineBlockHashInfoResult Result;
+
 public:
   static char ID;
   MachineBlockHashInfo();
@@ -108,7 +119,7 @@ class MachineBlockHashInfo : public MachineFunctionPass {
 
   bool runOnMachineFunction(MachineFunction &F) override;
 
-  uint64_t getMBBHash(const MachineBasicBlock &MBB);
+  uint64_t getMBBHash(const MachineBasicBlock &MBB) const;
 };
 
 } // end namespace llvm
diff --git a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp 
b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
index eeddaf6d48de4..9810c72709cbf 100644
--- a/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
+++ b/llvm/lib/CodeGen/MachineBlockHashInfo.cpp
@@ -16,6 +16,7 @@
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Target/TargetMachine.h"
+#include <utility>
 
 using namespace llvm;
 
@@ -63,7 +64,10 @@ struct CollectHashInfo {
   uint64_t NeighborHash;
 };
 
-bool MachineBlockHashInfo::runOnMachineFunction(MachineFunction &F) {
+MachineBlockHashInfoResult::MachineBlockHashInfoResult() = default;
+
+MachineBlockHashInfoResult::MachineBlockHashInfoResult(
+    const MachineFunction &F) {
   DenseMap<const MachineBasicBlock *, CollectHashInfo> HashInfos;
   uint16_t Offset = 0;
   // Initialize hash components
@@ -103,12 +107,21 @@ bool 
MachineBlockHashInfo::runOnMachineFunction(MachineFunction &F) {
                                  fold_64_to_16(HashInfo.NeighborHash));
     MBBHashInfo[&MBB] = BlendedHash.combine();
   }
+}
 
+uint64_t
+MachineBlockHashInfoResult::getMBBHash(const MachineBasicBlock &MBB) const {
+  auto it = MBBHashInfo.find(&MBB);
+  return it == MBBHashInfo.end() ? 0 : it->second;
+}
+
+bool MachineBlockHashInfo::runOnMachineFunction(MachineFunction &F) {
+  Result = MachineBlockHashInfoResult{F};
   return false;
 }
 
-uint64_t MachineBlockHashInfo::getMBBHash(const MachineBasicBlock &MBB) {
-  return MBBHashInfo[&MBB];
+uint64_t MachineBlockHashInfo::getMBBHash(const MachineBasicBlock &MBB) const {
+  return Result.getMBBHash(MBB);
 }
 
 MachineFunctionPass *llvm::createMachineBlockHashInfoPass() {

_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to