New directory: ana for analyses. Adapted configure/makefiles
[libfirm] / ir / tr / typewalk.h
index 8086598..9968375 100644 (file)
 ** - execute the post function after recursion
 */
 
+/* $Id$ */
 
-/* walk over all type information reachable from the ir graph. */
 
+/* walk over all type information reachable from the ir graph. */
 
+#ifndef _TYPEWALK_H_
+#define _TYPEWALK_H_
 
 # include "type_or_entity.h"
 
-void type_walk(ir_graph *irg,
-             void (pre)(type_or_ent*, void*), void (post)(type_or_ent*, void*),
-              void *env);
+
+/** Walks over all type information reachable from global roots.
+    Touches every type and entity in unspecified order.  If new
+    types/entities are created during the traversal these will
+    be visited, too. **/
+void type_walk(void (pre)(type_or_ent*, void*),
+              void (post)(type_or_ent*, void*),
+              void *env);
+
+/** walks over all type information reachable from irg **/
+void type_walk_irg(ir_graph *irg,
+                  void (pre)(type_or_ent*, void*),
+                  void (post)(type_or_ent*, void*),
+                  void *env);
+
+/** Walks over all classes information reachable from global roots.
+    Touches every class in specified order:
+    - first the super class
+    - second the class itself
+    - third the sub classes.  If new classes are created
+    during the traversal these will be visited, too. **/
+/** @@@ shoulc be named class-walk **/
+void type_walk_super2sub(void (pre)(type_or_ent*, void*),
+                        void (post)(type_or_ent*, void*),
+                        void *env);
+
+#endif /* _TYPEWALK_H_ */