[llvm-branch-commits] [llvm] [BOLT] Match blocks with pseudo probes (PR #99891)
Amir Ayupov via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Sep 18 13:11:38 PDT 2024
================
@@ -587,6 +590,51 @@ size_t YAMLProfileReader::matchWithCallGraph(BinaryContext &BC) {
return MatchedWithCallGraph;
}
+void YAMLProfileReader::InlineTreeNodeMapTy::matchInlineTrees(
+ const MCPseudoProbeDecoder &Decoder,
+ const yaml::bolt::PseudoProbeDesc &YamlPD,
+ const std::vector<yaml::bolt::InlineTreeNode> &YamlInlineTree,
+ llvm::function_ref<const MCDecodedPseudoProbeInlineTree *(uint64_t)>
+ GetRootCallback) {
+
+ // Match inline tree nodes by GUID, checksum, parent, and call site.
+ uint32_t ParentId = 0;
+ uint32_t PrevGUIDIdx = 0;
+ uint32_t Index = 0;
+ for (const yaml::bolt::InlineTreeNode &InlineTreeNode : YamlInlineTree) {
+ uint64_t GUIDIdx = InlineTreeNode.GUIDIndex;
+ if (GUIDIdx)
+ PrevGUIDIdx = GUIDIdx;
+ else
+ GUIDIdx = PrevGUIDIdx;
+ assert(GUIDIdx < YamlPD.GUID.size());
----------------
aaupov wrote:
I'll drop these assertions as they are done by operator[] anyway.
https://github.com/llvm/llvm-project/pull/99891
More information about the llvm-branch-commits
mailing list