================
@@ -592,72 +633,276 @@ size_t
YAMLProfileReader::matchWithCallGraph(BinaryContext &BC) {
return MatchedWithCallGraph;
}
-size_t YAMLProfileReader::InlineTreeNodeMapTy::matchInlineTrees(
- const MCPseudoProbeDecoder &Decoder,
- const std::vector<yaml::bolt::InlineTreeNode> &DecodedInlineTree,
- const MCDecodedPseudoProbeInlineTree *Root) {
- // Match inline tree nodes by GUID, checksum, parent, and call site.
- for (const auto &[InlineTreeNodeId, InlineTreeNode] :
- llvm::enumerate(DecodedInlineTree)) {
- uint64_t GUID = InlineTreeNode.GUID;
- uint64_t Hash = InlineTreeNode.Hash;
- uint32_t ParentId = InlineTreeNode.ParentIndexDelta;
- uint32_t CallSiteProbe = InlineTreeNode.CallSiteProbe;
- const MCDecodedPseudoProbeInlineTree *Cur = nullptr;
- if (!InlineTreeNodeId) {
- Cur = Root;
- } else if (const MCDecodedPseudoProbeInlineTree *Parent =
- getInlineTreeNode(ParentId)) {
- for (const MCDecodedPseudoProbeInlineTree &Child :
- Parent->getChildren()) {
- if (Child.Guid == GUID) {
- if (std::get<1>(Child.getInlineSite()) == CallSiteProbe)
- Cur = &Child;
- break;
- }
+const MCDecodedPseudoProbeInlineTree *
+YAMLProfileReader::lookupTopLevelNode(const BinaryFunction &BF) {
+ const BinaryContext &BC = BF.getBinaryContext();
+ const MCPseudoProbeDecoder *Decoder = BC.getPseudoProbeDecoder();
+ assert(Decoder &&
+ "If pseudo probes are in use, pseudo probe decoder should exist");
+ uint64_t Addr = BF.getAddress();
+ uint64_t Size = BF.getSize();
----------------
maksfb wrote:
```suggestion
const uint64_t Addr = BF.getAddress();
const uint64_t Size = BF.getSize();
```
https://github.com/llvm/llvm-project/pull/100446
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits