[PATCH] D126434: [PseudoProbe] Use callee name as callsite identfier for MCDecodedPseudoProbeInlineTree.
Hongtao Yu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 8 10:54:54 PDT 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGab34ab2b87a5: [PseudoProbe] Use callee name as callsite identfier for… (authored by hoy).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126434/new/
https://reviews.llvm.org/D126434
Files:
llvm/include/llvm/MC/MCPseudoProbe.h
llvm/lib/MC/MCPseudoProbe.cpp
Index: llvm/lib/MC/MCPseudoProbe.cpp
===================================================================
--- llvm/lib/MC/MCPseudoProbe.cpp
+++ llvm/lib/MC/MCPseudoProbe.cpp
@@ -230,8 +230,7 @@
// It will add the string of each node's inline site during iteration.
// Note that it won't include the probe's belonging function(leaf location)
while (Cur->hasInlineSite()) {
- StringRef FuncName =
- getProbeFNameForGUID(GUID2FuncMAP, std::get<0>(Cur->ISite));
+ StringRef FuncName = getProbeFNameForGUID(GUID2FuncMAP, Cur->Parent->Guid);
ContextStack.emplace_back(
MCPseduoProbeFrameLocation(FuncName, std::get<1>(Cur->ISite)));
Cur = static_cast<MCDecodedPseudoProbeInlineTree *>(Cur->Parent);
@@ -417,7 +416,7 @@
// If the incoming node is null, all its children nodes should be disgarded.
if (Cur) {
// Switch/add to a new tree node(inlinee)
- Cur = Cur->getOrAddNode(std::make_tuple(Cur->Guid, Index));
+ Cur = Cur->getOrAddNode(std::make_tuple(Guid, Index));
Cur->Guid = Guid;
}
@@ -574,5 +573,5 @@
MCDecodedPseudoProbeInlineTree *InlinerNode = Probe->getInlineTreeNode();
if (!InlinerNode->hasInlineSite())
return nullptr;
- return getFuncDescForGUID(std::get<0>(InlinerNode->ISite));
+ return getFuncDescForGUID(InlinerNode->Parent->Guid);
}
Index: llvm/include/llvm/MC/MCPseudoProbe.h
===================================================================
--- llvm/include/llvm/MC/MCPseudoProbe.h
+++ llvm/include/llvm/MC/MCPseudoProbe.h
@@ -85,7 +85,7 @@
class MCDecodedPseudoProbe;
-// An inline frame has the form <Guid, ProbeID>
+// An inline frame has the form <CalleeGuid, ProbeID>
using InlineSite = std::tuple<uint64_t, uint32_t>;
using MCPseudoProbeInlineStack = SmallVector<InlineSite, 8>;
// GUID to PseudoProbeFuncDesc map
@@ -271,7 +271,7 @@
MCDecodedPseudoProbeInlineTree(const InlineSite &Site) : ISite(Site){};
// Return false if it's a dummy inline site
- bool hasInlineSite() const { return std::get<0>(ISite) != 0; }
+ bool hasInlineSite() const { return !isRoot() && !Parent->isRoot(); }
};
/// Instances of this class represent the pseudo probes inserted into a compile
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126434.435252.patch
Type: text/x-patch
Size: 2197 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220608/eb310550/attachment.bin>
More information about the llvm-commits
mailing list