Function &getFunction() const {
return F;
- };
+ }
iterator begin() const {
return iterator(*G, Callees.begin(), Callees.end());
parent_iterator parent_end() const { return ParentSCCs.end(); }
iterator_range<parent_iterator> parents() const {
- return iterator_range<parent_iterator>(parent_begin(), parent_end());
+ return make_range(parent_begin(), parent_end());
}
/// \brief Test if this SCC is a parent of \a C.
}
iterator_range<postorder_scc_iterator> postorder_sccs() {
- return iterator_range<postorder_scc_iterator>(postorder_scc_begin(),
- postorder_scc_end());
+ return make_range(postorder_scc_begin(), postorder_scc_end());
}
/// \brief Lookup a function in the graph which has already been scanned and
///@}
- /// \brief Print out the CFG to the provided stream.
- ///
- /// This will fully traverse the call graph (and so is non-const) and print
- /// it out to the provided stream.
- void print(raw_ostream &OS, Module &M);
-
private:
/// \brief Allocator that holds all the call graph nodes.
SpecificBumpPtrAllocator<Node> BPA;