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
