mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-19 04:29:21 +00:00
* Print the "return" node in the graphs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4199 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96f5493100
commit
eb265cdc90
@ -146,7 +146,7 @@ void DSGraph::print(std::ostream &O) const {
|
|||||||
O << "\tNode0x1" << "[ plaintext=circle, label =\""
|
O << "\tNode0x1" << "[ plaintext=circle, label =\""
|
||||||
<< escapeLabel("returning") << "\"];\n";
|
<< escapeLabel("returning") << "\"];\n";
|
||||||
writeEdge(O, (void*)1, "", -1, RetNode, "arrowtail=tee,color=gray63");
|
writeEdge(O, (void*)1, "", -1, RetNode, "arrowtail=tee,color=gray63");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output all of the call nodes...
|
// Output all of the call nodes...
|
||||||
for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i) {
|
for (unsigned i = 0, e = FunctionCalls.size(); i != e; ++i) {
|
||||||
@ -194,6 +194,23 @@ struct DOTGraphTraits<DSGraph*> : public DefaultDOTGraphTraits {
|
|||||||
assert(Node == I.getNode() && "Iterator not for this node!");
|
assert(Node == I.getNode() && "Iterator not for this node!");
|
||||||
return Node->getMergeMapLabel(I.getOffset());
|
return Node->getMergeMapLabel(I.getOffset());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// addCustomGraphFeatures - Use this graph writing hook to emit call nodes
|
||||||
|
/// and the return node.
|
||||||
|
///
|
||||||
|
static void addCustomGraphFeatures(DSGraph *G, GraphWriter<DSGraph*> &GW) {
|
||||||
|
// Output the returned value pointer...
|
||||||
|
if (G->getRetNode().getNode() != 0) {
|
||||||
|
// Output the return node...
|
||||||
|
GW.emitSimpleNode((void*)1, "plaintext=circle", "returning");
|
||||||
|
|
||||||
|
// Add edge from return node to real destination
|
||||||
|
int RetEdgeDest = G->getRetNode().getOffset();
|
||||||
|
if (RetEdgeDest == 0) RetEdgeDest = -1;
|
||||||
|
GW.emitEdge((void*)1, -1, G->getRetNode().getNode(),
|
||||||
|
RetEdgeDest, "arrowtail=tee,color=gray63");
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user