1 /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
3 ** All rights reserved.
5 ** Author: Goetz Lindenmaier
7 ** traverse the type information. The walker walks the whole ir graph
8 ** to find the distinct type trees in the type graph forest.
9 ** - execute the pre function before recursion
10 ** - execute the post function after recursion
16 /* walk over all type information reachable from the ir graph. */
21 # include "type_or_entity.h"
24 /** Walks over all type information reachable from global roots.
25 Touches every type and entity in unspecified order. If new
26 types/entities are created during the traversal these will
28 void type_walk(void (pre)(type_or_ent*, void*),
29 void (post)(type_or_ent*, void*),
32 /** walks over all type information reachable from irg **/
33 void type_walk_irg(ir_graph *irg,
34 void (pre)(type_or_ent*, void*),
35 void (post)(type_or_ent*, void*),
38 /** Walks over all classes information reachable from global roots.
39 Touches every class in specified order:
40 - first the super class
41 - second the class itself
42 - third the sub classes. If new classes are created
43 during the traversal these will be visited, too. **/
44 /** @@@ shoulc be named class-walk **/
45 void type_walk_super2sub(void (pre)(type_or_ent*, void*),
46 void (post)(type_or_ent*, void*),
49 #endif /* _TYPEWALK_H_ */