libFirm
|
Typedefs | |
typedef int( | compare_types_func_t) (const void *tp1, const void *tp2) |
Type for a function that compares two types. More... | |
typedef void | type_walk_func(ir_type *type, ir_entity *entity, void *env) |
Type of argument functions for type walkers. More... | |
typedef void | class_walk_func(ir_type *clss, void *env) |
The class walk function. More... | |
typedef void | entity_walk_func(ir_entity *ent, void *env) |
the entity walk function. More... | |
Functions | |
void | type_walk (type_walk_func *pre, type_walk_func *post, void *env) |
Touches every type and entity in unspecified order. More... | |
void | type_walk_irg (ir_graph *irg, type_walk_func *pre, type_walk_func *post, void *env) |
Walks over all type information reachable from an ir graph. More... | |
void | type_walk_super2sub (type_walk_func *pre, type_walk_func *post, void *env) |
Touches every class in specified order: More... | |
void | type_walk_super (type_walk_func *pre, type_walk_func *post, void *env) |
Walker for class types in inheritance order. More... | |
void | class_walk_super2sub (class_walk_func *pre, class_walk_func *post, void *env) |
Same as type_walk_super2sub, but visits only class types. More... | |
void | walk_types_entities (ir_type *tp, entity_walk_func *doit, void *env) |
Walks over all entities in the type. More... | |
typedef void class_walk_func(ir_type *clss, void *env) |
typedef int( compare_types_func_t) (const void *tp1, const void *tp2) |
typedef void entity_walk_func(ir_entity *ent, void *env) |
void class_walk_super2sub | ( | class_walk_func * | pre, |
class_walk_func * | post, | ||
void * | env | ||
) |
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.
void type_walk | ( | type_walk_func * | pre, |
type_walk_func * | post, | ||
void * | env | ||
) |
Touches every type and entity in unspecified order.
If new types/entities are created during the traversal these will be visited, too. Does not touch frame types or types for value params ...
void type_walk_irg | ( | ir_graph * | irg, |
type_walk_func * | pre, | ||
type_walk_func * | post, | ||
void * | env | ||
) |
Walks over all type information reachable from an ir graph.
Walks over all type information reachable from irg, i.e., starts a type walk at the irgs entity, the irgs frame type and all types and entities that are attributes to firm nodes.
void type_walk_super | ( | type_walk_func * | pre, |
type_walk_func * | post, | ||
void * | env | ||
) |
Walker for class types in inheritance order.
Touches every class in specified order:
The arguments pre, post, env may be NULL.
void type_walk_super2sub | ( | type_walk_func * | pre, |
type_walk_func * | post, | ||
void * | env | ||
) |
Touches every class in specified order:
void walk_types_entities | ( | ir_type * | tp, |
entity_walk_func * | doit, | ||
void * | env | ||
) |
Walks over all entities in the type.
tp | the type |
doit | the entity walker function |
env | environment, will be passed to the walker function |