diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index b8ac005952..49b08bba79 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -5893,47 +5893,43 @@ void SDNode::print(raw_ostream &OS, const SelectionDAG *G) const { print_details(OS, G); } -void SDNode::printWithDepth(raw_ostream &OS, const SelectionDAG *G, - unsigned depth, unsigned indent, - bool limit) const { - if (depth == 0) { - if (limit) - OS << "*** <max depth> - Cycle? ***\n"; +static void printrWithDepthHelper(raw_ostream &OS, const SDNode *N, + const SelectionDAG *G, unsigned depth, + unsigned indent) +{ + if (depth == 0) return; - } - int myindent = indent; + OS.indent(indent); - while (myindent--) { - OS << ' '; - } + N->print(OS, G); - print(OS, G); + if (depth < 1) + return; - if (depth > 1) { - for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { - OS << '\n'; - getOperand(i).getNode()->printWithDepth(OS, G, - depth > 0 ? depth-1 : depth, - indent+2); - } + for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) { + OS << '\n'; + printrWithDepthHelper(OS, N->getOperand(i).getNode(), G, depth-1, indent+2); } +} + +void SDNode::printrWithDepth(raw_ostream &OS, const SelectionDAG *G, + unsigned depth) const { + printrWithDepthHelper(OS, this, G, depth, 0); } -void SDNode::printWithFullDepth(raw_ostream &OS, const SelectionDAG *G, - unsigned indent) const { +void SDNode::printrFull(raw_ostream &OS, const SelectionDAG *G) const { // Don't print impossibly deep things. - printWithDepth(OS, G, 100, indent, true); -} + printrWithDepth(OS, G, 100); +} -void SDNode::dumpWithDepth(const SelectionDAG *G, unsigned depth, - unsigned indent, bool limit) const { - printWithDepth(dbgs(), G, depth, indent, limit); +void SDNode::dumprWithDepth(const SelectionDAG *G, unsigned depth) const { + printrWithDepth(dbgs(), G, depth); } -void SDNode::dumpWithFullDepth(const SelectionDAG *G, unsigned indent) const { +void SDNode::dumprFull(const SelectionDAG *G) const { // Don't print impossibly deep things. - dumpWithDepth(G, 100, indent, true); + dumprWithDepth(G, 100); } static void DumpNodes(const SDNode *N, unsigned indent, const SelectionDAG *G) { |