aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/ADT/PostOrderIterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/ADT/PostOrderIterator.h')
-rw-r--r--include/llvm/ADT/PostOrderIterator.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/ADT/PostOrderIterator.h b/include/llvm/ADT/PostOrderIterator.h
index e519b5c07964..8fc08eb252eb 100644
--- a/include/llvm/ADT/PostOrderIterator.h
+++ b/include/llvm/ADT/PostOrderIterator.h
@@ -268,6 +268,10 @@ inverse_post_order_ext(const T &G, SetType &S) {
// with a postorder iterator to build the data structures). The moral of this
// story is: Don't create more ReversePostOrderTraversal classes than necessary.
//
+// Because it does the traversal in its constructor, it won't invalidate when
+// BasicBlocks are removed, *but* it may contain erased blocks. Some places
+// rely on this behavior (i.e. GVN).
+//
// This class should be used like this:
// {
// ReversePostOrderTraversal<Function*> RPOT(FuncPtr); // Expensive to create