From e92e76446ed8eeb85312e772c09192c9d2b7c6a8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 7 Feb 2004 23:58:05 +0000 Subject: [PATCH] getNodes() is gone, use node_begin/end instead Rename stats from dsnode -> dsa Add a new stat git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11167 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/DataStructure/DataStructure.cpp | 12 +++++++----- lib/Analysis/DataStructure/GraphChecker.cpp | 7 +++---- lib/Analysis/DataStructure/Printer.cpp | 14 ++++++++------ 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp index 5050515bc28..ca1d8c623da 100644 --- a/lib/Analysis/DataStructure/DataStructure.cpp +++ b/lib/Analysis/DataStructure/DataStructure.cpp @@ -26,9 +26,10 @@ using namespace llvm; namespace { - Statistic<> NumFolds ("dsnode", "Number of nodes completely folded"); - Statistic<> NumCallNodesMerged("dsnode", "Number of call nodes merged"); - Statistic<> NumNodeAllocated ("dsnode", "Number of nodes allocated"); + Statistic<> NumFolds ("dsa", "Number of nodes completely folded"); + Statistic<> NumCallNodesMerged("dsa", "Number of call nodes merged"); + Statistic<> NumNodeAllocated ("dsa", "Number of nodes allocated"); + Statistic<> NumDNE ("dsa", "Number of nodes removed by reachability"); cl::opt EnableDSNodeGlobalRootsHack("enable-dsa-globalrootshack", cl::Hidden, @@ -73,7 +74,7 @@ DSNode::DSNode(const Type *T, DSGraph *G) : NumReferrers(0), Size(0), ParentGraph(G), Ty(Type::VoidTy), NodeType(0) { // Add the type entry if it is specified... if (T) mergeTypeInfo(T, 0); - G->getNodes().push_back(this); + G->addNode(this); ++NumNodeAllocated; } @@ -85,7 +86,7 @@ DSNode::DSNode(const DSNode &N, DSGraph *G, bool NullLinks) Links = N.Links; else Links.resize(N.Links.size()); // Create the appropriate number of null links - G->getNodes().push_back(this); + G->addNode(this); ++NumNodeAllocated; } @@ -1757,6 +1758,7 @@ void DSGraph::removeDeadNodes(unsigned Flags) { DeadNodes.reserve(Nodes.size()); for (unsigned i = 0; i != Nodes.size(); ++i) if (!Alive.count(Nodes[i])) { + ++NumDNE; DSNode *N = Nodes[i]; Nodes[i--] = Nodes.back(); // move node to end of vector Nodes.pop_back(); // Erase node from alive list. diff --git a/lib/Analysis/DataStructure/GraphChecker.cpp b/lib/Analysis/DataStructure/GraphChecker.cpp index 6d78621c11c..5cbd5ba7629 100644 --- a/lib/Analysis/DataStructure/GraphChecker.cpp +++ b/lib/Analysis/DataStructure/GraphChecker.cpp @@ -114,11 +114,10 @@ bool DSGC::runOnFunction(Function &F) { void DSGC::verify(const DSGraph &G) { // Loop over all of the nodes, checking to see if any are collapsed... if (AbortIfAnyCollapsed) { - const std::vector &Nodes = G.getNodes(); - for (unsigned i = 0, e = Nodes.size(); i != e; ++i) - if (Nodes[i]->isNodeCompletelyFolded()) { + for (DSGraph::node_iterator I = G.node_begin(), E = G.node_end(); I!=E; ++I) + if ((*I)->isNodeCompletelyFolded()) { std::cerr << "Node is collapsed: "; - Nodes[i]->print(std::cerr, &G); + (*I)->print(std::cerr, &G); abort(); } } diff --git a/lib/Analysis/DataStructure/Printer.cpp b/lib/Analysis/DataStructure/Printer.cpp index 7cea561c148..a5cb4da0b1b 100644 --- a/lib/Analysis/DataStructure/Printer.cpp +++ b/lib/Analysis/DataStructure/Printer.cpp @@ -30,8 +30,8 @@ using namespace llvm; namespace { cl::opt OnlyPrintMain("only-print-main-ds", cl::ReallyHidden); cl::opt DontPrintAnything("dont-print-ds", cl::ReallyHidden); - Statistic<> MaxGraphSize ("dsnode", "Maximum graph size"); - Statistic<> NumFoldedNodes ("dsnode", "Number of folded nodes (in final graph)"); + Statistic<> MaxGraphSize ("dsa", "Maximum graph size"); + Statistic<> NumFoldedNodes ("dsa", "Number of folded nodes (in final graph)"); } void DSNode::dump() const { print(std::cerr, 0); } @@ -249,10 +249,12 @@ static void printCollection(const Collection &C, std::ostream &O, << Gr.getGraphSize() << "+" << NumCalls << "]\n"; } - if (MaxGraphSize < Gr.getNodes().size()) - MaxGraphSize = Gr.getNodes().size(); - for (unsigned i = 0, e = Gr.getNodes().size(); i != e; ++i) - if (Gr.getNodes()[i]->isNodeCompletelyFolded()) + unsigned GraphSize = std::distance(Gr.node_begin(), Gr.node_end()); + if (MaxGraphSize < GraphSize) MaxGraphSize = GraphSize; + + for (DSGraph::node_iterator NI = Gr.node_begin(), E = Gr.node_end(); + NI != E; ++NI) + if ((*NI)->isNodeCompletelyFolded()) ++NumFoldedNodes; } -- 2.34.1