diff options
Diffstat (limited to 'include/llvm/ADT/DepthFirstIterator.h')
| -rw-r--r-- | include/llvm/ADT/DepthFirstIterator.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/ADT/DepthFirstIterator.h b/include/llvm/ADT/DepthFirstIterator.h index b9e5cbd..3edb555 100644 --- a/include/llvm/ADT/DepthFirstIterator.h +++ b/include/llvm/ADT/DepthFirstIterator.h @@ -193,6 +193,15 @@ public: NodeType *getPath(unsigned n) const { return VisitStack[n].first.getPointer(); } + + /// skipChildren - Skip all children of Node, assuming that Node is on the + /// current path. This allows more aggressive pruning than just skipping + /// children of the current node. + _Self& skipChildren(NodeType *Node) { + while (!VisitStack.empty() && **this != Node) + VisitStack.pop_back(); + return skipChildren(); + } }; |
