mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
* Add assertions
* Add a nodeVisited method to the DF interator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
92101acd7f
commit
bd8364aed7
@ -108,9 +108,13 @@ public:
|
||||
typedef SuccIterator<_Term, _BB> _Self;
|
||||
// TODO: This can be random access iterator, need operator+ and stuff tho
|
||||
|
||||
inline SuccIterator(_Term T) : Term(T), idx(0) {} // begin iterator
|
||||
inline SuccIterator(_Term T, bool)
|
||||
: Term(T), idx(Term->getNumSuccessors()) {} // end iterator
|
||||
inline SuccIterator(_Term T) : Term(T), idx(0) { // begin iterator
|
||||
assert(T && "getTerminator returned null!");
|
||||
}
|
||||
inline SuccIterator(_Term T, bool) // end iterator
|
||||
: Term(T), idx(Term->getNumSuccessors()) {
|
||||
assert(T && "getTerminator returned null!");
|
||||
}
|
||||
|
||||
inline bool operator==(const _Self& x) const { return idx == x.idx; }
|
||||
inline bool operator!=(const _Self& x) const { return !operator==(x); }
|
||||
@ -287,6 +291,14 @@ public:
|
||||
inline _Self operator++(int) { // Postincrement
|
||||
_Self tmp = *this; ++*this; return tmp;
|
||||
}
|
||||
|
||||
// nodeVisited - return true if this iterator has already visited the
|
||||
// specified node. This is public, and will probably be used to iterate over
|
||||
// nodes that a depth first iteration did not find: ie unreachable nodes.
|
||||
//
|
||||
inline bool nodeVisited(NodeType *Node) const {
|
||||
return Visited.count(Node) != 0;
|
||||
}
|
||||
};
|
||||
|
||||
inline df_iterator df_begin(Method *M, bool Reverse = false) {
|
||||
|
Loading…
Reference in New Issue
Block a user