================ @@ -193,18 +193,43 @@ class StaleMatcher { public: /// Initialize stale matcher. void init(const std::vector<FlowBlock *> &Blocks, - const std::vector<BlendedBlockHash> &Hashes) { + const std::vector<BlendedBlockHash> &Hashes, + const std::vector<uint64_t> &CallHashes) { assert(Blocks.size() == Hashes.size() && + Hashes.size() == CallHashes.size() && "incorrect matcher initialization"); for (size_t I = 0; I < Blocks.size(); I++) { FlowBlock *Block = Blocks[I]; uint16_t OpHash = Hashes[I].OpcodeHash; OpHashToBlocks[OpHash].push_back(std::make_pair(Hashes[I], Block)); + if (CallHashes[I]) + CallHashToBlocks[CallHashes[I]].push_back( + std::make_pair(Hashes[I], Block)); } } /// Find the most similar block for a given hash. - const FlowBlock *matchBlock(BlendedBlockHash BlendedHash) const { + const FlowBlock *matchBlock(BlendedBlockHash &BlendedHash, + uint64_t &CallHash) const { ---------------- aaupov wrote:
```suggestion const FlowBlock *matchBlock(BlendedBlockHash BlendedHash, uint64_t CallHash) const { ``` BlendedBlockHash is aliased to uint64_t, and integral types should be passed by value. https://github.com/llvm/llvm-project/pull/96596 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits