Add support for walking type graphs
authorChris Lattner <sabre@nondot.org>
Fri, 7 Sep 2001 16:17:24 +0000 (16:17 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 7 Sep 2001 16:17:24 +0000 (16:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@418 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CFGdecls.h

index 8d4152fea0a34767ddbbad18cea64eb0c282ddd9..b59a1d25367e5ee9054732c1083795adbbea2ed4 100644 (file)
@@ -73,6 +73,7 @@ struct      BasicBlockGraph;
 struct ConstBasicBlockGraph;
 struct      InverseBasicBlockGraph;
 struct ConstInverseBasicBlockGraph;
+struct TypeGraph;
 
 // Forward declare iterator class template...
 template<class GraphInfo> class DFIterator;
@@ -104,6 +105,15 @@ inline idf_iterator       idf_end  (      BasicBlock *BB);
 inline idf_const_iterator idf_end  (const BasicBlock *BB);
 
 
+// Depth First Iterator Definitions for Types.  This lets you iterator over 
+// (possibly cyclic) type graphs in dfo
+//
+typedef DFIterator<TypeGraph> tdf_iterator;
+
+inline tdf_iterator tdf_begin(const Type *T, bool Reverse = false);
+inline tdf_iterator tdf_end  (const Type *T);
+
+
 //===--------------------------------------------------------------------===//
 // Post Order CFG iterator code
 //===--------------------------------------------------------------------===//