diff options
-rw-r--r-- | include/llvm/Analysis/DataStructure/DSGraph.h | 12 | ||||
-rw-r--r-- | include/llvm/Analysis/DataStructure/DSGraphTraits.h | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/include/llvm/Analysis/DataStructure/DSGraph.h b/include/llvm/Analysis/DataStructure/DSGraph.h index 9b04e505b6..9da47af5fe 100644 --- a/include/llvm/Analysis/DataStructure/DSGraph.h +++ b/include/llvm/Analysis/DataStructure/DSGraph.h @@ -204,9 +204,13 @@ public: /// cause the node to be removed from this list. This means that if you are /// iterating over nodes and doing something that could cause _any_ node to /// merge, your node_iterators into this graph can be invalidated. - typedef NodeListTy::compat_iterator node_iterator; - node_iterator node_begin() const { return Nodes.compat_begin(); } - node_iterator node_end() const { return Nodes.compat_end(); } + typedef NodeListTy::iterator node_iterator; + node_iterator node_begin() { return Nodes.begin(); } + node_iterator node_end() { return Nodes.end(); } + + typedef NodeListTy::const_iterator node_const_iterator; + node_const_iterator node_begin() const { return Nodes.begin(); } + node_const_iterator node_end() const { return Nodes.end(); } /// getFunctionNames - Return a space separated list of the name of the /// functions in this graph (if any) @@ -337,7 +341,7 @@ public: /// void maskNodeTypes(unsigned Mask) { for (node_iterator I = node_begin(), E = node_end(); I != E; ++I) - (*I)->maskNodeTypes(Mask); + I->maskNodeTypes(Mask); } void maskIncompleteMarkers() { maskNodeTypes(~DSNode::Incomplete); } diff --git a/include/llvm/Analysis/DataStructure/DSGraphTraits.h b/include/llvm/Analysis/DataStructure/DSGraphTraits.h index efb31517d1..5f8b8d0ade 100644 --- a/include/llvm/Analysis/DataStructure/DSGraphTraits.h +++ b/include/llvm/Analysis/DataStructure/DSGraphTraits.h @@ -135,15 +135,13 @@ template <> struct GraphTraits<const DSGraph*> { typedef const DSNode NodeType; typedef DSNode::const_iterator ChildIteratorType; - typedef std::pointer_to_unary_function<const DSNode *,const DSNode&> DerefFun; - // nodes_iterator/begin/end - Allow iteration over all nodes in the graph - typedef mapped_iterator<DSGraph::node_iterator, DerefFun> nodes_iterator; + typedef DSGraph::node_const_iterator nodes_iterator; static nodes_iterator nodes_begin(const DSGraph *G) { - return map_iterator(G->node_begin(), DerefFun(dereferenceC)); + return G->node_begin(); } static nodes_iterator nodes_end(const DSGraph *G) { - return map_iterator(G->node_end(), DerefFun(dereferenceC)); + return G->node_end(); } static ChildIteratorType child_begin(const NodeType *N) { return N->begin(); } |