#include "llvm/ADT/iterator"
#include <stack>
#include <set>
+#include <vector>
namespace llvm {
typedef forward_iterator<typename GT::NodeType, ptrdiff_t> super;
typedef typename GT::NodeType NodeType;
typedef typename GT::ChildIteratorType ChildItTy;
-
- std::set<NodeType *> Visited; // All of the blocks visited so far...
+
// VisitStack - Used to maintain the ordering. Top = current block
// First element is basic block pointer, second is the 'next child' to visit
std::stack<std::pair<NodeType *, ChildItTy> > VisitStack;
// Provide global definitions of inverse post order iterators...
template <class T,
- class SetType = std::set<typename GraphTraits<T>::NoddeType*>,
+ class SetType = std::set<typename GraphTraits<T>::NodeType*>,
bool External = false>
struct ipo_iterator : public po_iterator<Inverse<T>, SetType, External > {
ipo_iterator(const po_iterator<Inverse<T>, SetType, External> &V) :