Add better debug output

llvm-svn: 5476
This commit is contained in:
Chris Lattner 2003-02-03 19:11:38 +00:00
parent 6662cbc510
commit e396e9bbae
1 changed files with 20 additions and 12 deletions

View File

@ -109,6 +109,7 @@ public:
// //
bool BUDataStructures::run(Module &M) { bool BUDataStructures::run(Module &M) {
GlobalsGraph = new DSGraph(); GlobalsGraph = new DSGraph();
GlobalsGraph->setPrintAuxCalls();
Function *MainFunc = M.getMainFunction(); Function *MainFunc = M.getMainFunction();
if (MainFunc) if (MainFunc)
@ -336,9 +337,10 @@ DSGraph &BUDataStructures::calculateGraph(Function &F) {
DSGraph &GI = getDSGraph(*Callee); // Graph to inline DSGraph &GI = getDSGraph(*Callee); // Graph to inline
DEBUG(std::cerr << " Inlining graph for " << Callee->getName() DEBUG(std::cerr << " Inlining graph for " << Callee->getName()
<< " in: " << F.getName() << "[" << GI.getGraphSize() << "+" << "[" << GI.getGraphSize() << "+"
<< GI.getAuxFunctionCalls().size() << "]\n"); << GI.getAuxFunctionCalls().size() << "] into: " << F.getName()
<< "[" << Graph.getGraphSize() << "+"
<< Graph.getAuxFunctionCalls().size() << "]\n");
#if 0 #if 0
Graph.writeGraphToFile(std::cerr, "bu_" + F.getName() + "_before_" + Graph.writeGraphToFile(std::cerr, "bu_" + F.getName() + "_before_" +
Callee->getName()); Callee->getName());
@ -366,6 +368,7 @@ DSGraph &BUDataStructures::calculateGraph(Function &F) {
// now that are complete, we must loop! // now that are complete, we must loop!
Graph.maskIncompleteMarkers(); Graph.maskIncompleteMarkers();
Graph.markIncompleteNodes(DSGraph::MarkFormalArgs); Graph.markIncompleteNodes(DSGraph::MarkFormalArgs);
// FIXME: materialize nodes from the globals graph as neccesary...
Graph.removeDeadNodes(DSGraph::KeepUnreachableGlobals); Graph.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
DEBUG(std::cerr << " [BU] Done inlining: " << F.getName() << " [" DEBUG(std::cerr << " [BU] Done inlining: " << F.getName() << " ["
@ -420,10 +423,12 @@ DSGraph &BUDataStructures::inlineNonSCCGraphs(Function &F,
// Get the data structure graph for the called function. // Get the data structure graph for the called function.
// //
DSGraph &GI = getDSGraph(*Callee); // Graph to inline DSGraph &GI = getDSGraph(*Callee); // Graph to inline
DEBUG(std::cerr << " Inlining graph for " << Callee->getName() DEBUG(std::cerr << " Inlining graph for " << Callee->getName()
<< " in: " << F.getName() << "[" << GI.getGraphSize() << "+" << "[" << GI.getGraphSize() << "+"
<< GI.getAuxFunctionCalls().size() << "]\n"); << GI.getAuxFunctionCalls().size() << "] into: " << F.getName()
<< "[" << Graph.getGraphSize() << "+"
<< Graph.getAuxFunctionCalls().size() << "]\n");
// Handle self recursion by resolving the arguments and return value // Handle self recursion by resolving the arguments and return value
Graph.mergeInGraph(CS, GI, Graph.mergeInGraph(CS, GI,
@ -447,7 +452,7 @@ DSGraph &BUDataStructures::inlineNonSCCGraphs(Function &F,
DEBUG(std::cerr << " [BU] Done Non-SCC inlining: " << F.getName() << " [" DEBUG(std::cerr << " [BU] Done Non-SCC inlining: " << F.getName() << " ["
<< Graph.getGraphSize() << "+" << Graph.getAuxFunctionCalls().size() << Graph.getGraphSize() << "+" << Graph.getAuxFunctionCalls().size()
<< "]\n"); << "]\n");
//Graph.writeGraphToFile(std::cerr, "nscc_" + F.getName());
return Graph; return Graph;
} }
@ -466,7 +471,7 @@ DSGraph &BUDataStructures::calculateSCCGraph(Function &F,
// the new call site list and doesn't invalidate our iterators! // the new call site list and doesn't invalidate our iterators!
std::vector<DSCallSite> TempFCs; std::vector<DSCallSite> TempFCs;
TempFCs.swap(AuxCallsList); TempFCs.swap(AuxCallsList);
// Loop over all of the resolvable call sites // Loop over all of the resolvable call sites
unsigned LastCallSiteIdx = ~0U; unsigned LastCallSiteIdx = ~0U;
CallSiteIterator I = CallSiteIterator::begin(TempFCs), CallSiteIterator I = CallSiteIterator::begin(TempFCs),
@ -505,10 +510,11 @@ DSGraph &BUDataStructures::calculateSCCGraph(Function &F,
// Get the data structure graph for the called function. // Get the data structure graph for the called function.
// //
DSGraph &GI = getDSGraph(*Callee); // Graph to inline DSGraph &GI = getDSGraph(*Callee); // Graph to inline
DEBUG(std::cerr << " Inlining graph for " << Callee->getName() DEBUG(std::cerr << " Inlining graph for " << Callee->getName()
<< " in: " << F.getName() << "[" << GI.getGraphSize() << "+" << "[" << GI.getGraphSize() << "+"
<< GI.getAuxFunctionCalls().size() << "]\n"); << GI.getAuxFunctionCalls().size() << "] into: " << F.getName()
<< "[" << Graph.getGraphSize() << "+"
<< Graph.getAuxFunctionCalls().size() << "]\n");
// Handle self recursion by resolving the arguments and return value // Handle self recursion by resolving the arguments and return value
Graph.mergeInGraph(CS, GI, Graph.mergeInGraph(CS, GI,
@ -537,12 +543,14 @@ DSGraph &BUDataStructures::calculateSCCGraph(Function &F,
// now that are complete, we must loop! // now that are complete, we must loop!
Graph.maskIncompleteMarkers(); Graph.maskIncompleteMarkers();
Graph.markIncompleteNodes(DSGraph::MarkFormalArgs); Graph.markIncompleteNodes(DSGraph::MarkFormalArgs);
// FIXME: materialize nodes from the globals graph as neccesary...
Graph.removeDeadNodes(DSGraph::KeepUnreachableGlobals); Graph.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
DEBUG(std::cerr << " [BU] Done inlining: " << F.getName() << " [" DEBUG(std::cerr << " [BU] Done inlining: " << F.getName() << " ["
<< Graph.getGraphSize() << "+" << Graph.getAuxFunctionCalls().size() << Graph.getGraphSize() << "+" << Graph.getAuxFunctionCalls().size()
<< "]\n"); << "]\n");
//Graph.writeGraphToFile(std::cerr, "bu_" + F.getName()); //Graph.writeGraphToFile(std::cerr, "bu_" + F.getName());
return Graph; return Graph;
} }