projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
init nr field for debug dump output
[libfirm]
/
ir
/
tr
/
typewalk.h
diff --git
a/ir/tr/typewalk.h
b/ir/tr/typewalk.h
index
26b951b
..
e00a36b
100644
(file)
--- a/
ir/tr/typewalk.h
+++ b/
ir/tr/typewalk.h
@@
-1,13
+1,18
@@
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-
* All rights reserved.
* All rights reserved.
+*/
+
+/**
+* @file typewalk.h
*
*
-*
Author: Goetz Lindenmaier
+*
Traverse the type information.
*
*
-* traverse the type information. The walker walks the whole ir graph
+* @author Goetz Lindenmaier
+*
+* The walker walks the whole ir graph
* to find the distinct type trees in the type graph forest.
* to find the distinct type trees in the type graph forest.
-* - execute the pre function before recursion
-* - execute the post function after recursion
+* - execute the pre
()
function before recursion
+* - execute the post
()
function after recursion
*/
/* $Id$ */
*/
/* $Id$ */
@@
-20,18
+25,31
@@
# include "type_or_entity.h"
# include "type_or_entity.h"
+/**
+ * the type walk function
+ *
+ * @param tore points to the visited type or entity
+ * @param env free environment pointer
+ */
+typedef void type_walk_func(type_or_ent *tore, void *env);
-typedef void (type_walk_func)(type_or_ent *, void *);
+/**
+ * the class walk function
+ *
+ * @param clss points to the visited class
+ * @param env free environment pointer
+ */
+typedef void class_walk_func(type *clss, void *env);
/**
Touches every type and entity in unspecified order. If new
types/entities are created during the traversal these will
/**
Touches every type and entity in unspecified order. If new
types/entities are created during the traversal these will
- be visited, too. *
*
/
+ be visited, too. */
void type_walk(type_walk_func *pre,
type_walk_func *post,
void *env);
void type_walk(type_walk_func *pre,
type_walk_func *post,
void *env);
-/** walks over all type information reachable from irg *
*
/
+/** walks over all type information reachable from irg */
void type_walk_irg(ir_graph *irg,
type_walk_func *pre,
type_walk_func *post,
void type_walk_irg(ir_graph *irg,
type_walk_func *pre,
type_walk_func *post,
@@
-42,9
+60,12
@@
void type_walk_irg(ir_graph *irg,
- first the super class
- second the class itself
- third the sub classes. If new classes are created
- 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. **/
-/** @@@ should be named class-walk **/
-/* @@@ will be removed? */
+ during the traversal these will be visited, too.
+
+ @todo should be named class-walk
+
+ @deprecated will be removed?
+*/
void type_walk_super2sub(type_walk_func *pre,
type_walk_func *post,
void *env);
void type_walk_super2sub(type_walk_func *pre,
type_walk_func *post,
void *env);
@@
-54,25
+75,38
@@
void type_walk_super2sub(type_walk_func *pre,
- first the super class
- second the class itself
If new classes are created during the traversal these
- first the super class
- second the class itself
If new classes are created during the traversal these
- will be visited, too. *
*
/
+ will be visited, too. */
void type_walk_super(type_walk_func *pre,
type_walk_func *post,
void *env);
void type_walk_super(type_walk_func *pre,
type_walk_func *post,
void *env);
-/* Same as type_walk_super2sub, but visits only class types.
+/*
*
Same as type_walk_super2sub, but visits only class types.
Executes pre for a class if all superclasses have been visited.
Then iterates to subclasses. Executes post after return from
subclass.
Does not visit global type, frame types.
Executes pre for a class if all superclasses have been visited.
Then iterates to subclasses. Executes post after return from
subclass.
Does not visit global type, frame types.
+
+ @bug ?? something is wrong with this.
*/
*/
-/* @@@ ?? something is wrong with this. */
-void class_walk_super2sub(type_walk_func *pre,
- type_walk_func *post,
+void class_walk_super2sub(class_walk_func *pre,
+ class_walk_func *post,
void *env);
void *env);
+/**
+ * the entity walk function
+ *
+ * @param ent points to the visited entity
+ * @param env free environment pointer
+ */
+typedef void entity_walk_func(entity *ent, void *env);
-/* Walks over all entities in the type */
-typedef void (entity_walk_func)(entity *, void *);
+/**
+ * Walks over all entities in the type.
+ *
+ * @param tp the type
+ * @param doit the entity walker function
+ * @param env environment, wil be passed to the walker function
+ */
void walk_types_entities(type *tp,
entity_walk_func *doit,
void *env);
void walk_types_entities(type *tp,
entity_walk_func *doit,
void *env);