From 095cc29f321382e1f7d295e262a28197f92c5491 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 13 Sep 2008 01:54:27 +0000 Subject: Define CallSDNode, an SDNode subclass for use with ISD::CALL. Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp') diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp index f2cd3c1..570caa9 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp @@ -179,6 +179,12 @@ std::string DOTGraphTraits::getNodeLabel(const SDNode *Node, Op += ":" + utostr(D->getColumn()); } else if (const LabelSDNode *L = dyn_cast(Node)) { Op += ": LabelID=" + utostr(L->getLabelID()); + } else if (const CallSDNode *C = dyn_cast(Node)) { + Op += ": CallingConv=" + utostr(C->getCallingConv()); + if (C->isVarArg()) + Op += ", isVarArg"; + if (C->isTailCall()) + Op += ", isTailCall"; } else if (const ExternalSymbolSDNode *ES = dyn_cast(Node)) { Op += "'" + std::string(ES->getSymbol()) + "'"; -- cgit v1.1