libFirm 1.20
|
Data Structures | |
union | type_or_ent |
A data type to treat types and entities as the same. More... | |
Typedefs | |
typedef int( | compare_types_func_t )(const void *tp1, const void *tp2) |
Type for a function that compares two types. | |
typedef void | type_walk_func (type_or_ent tore, void *env) |
Type of argument functions for type walkers. | |
typedef void | class_walk_func (ir_type *clss, void *env) |
The class walk function. | |
typedef void | entity_walk_func (ir_entity *ent, void *env) |
the entity walk function. | |
Functions | |
void | type_walk (type_walk_func *pre, type_walk_func *post, void *env) |
Touches every type and entity in unspecified order. | |
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. | |
void | type_walk_super2sub (type_walk_func *pre, type_walk_func *post, void *env) |
Touches every class in specified order: | |
void | type_walk_super (type_walk_func *pre, type_walk_func *post, void *env) |
Walker for class types in inheritance order. | |
void | class_walk_super2sub (class_walk_func *pre, class_walk_func *post, void *env) |
Same as type_walk_super2sub, but visits only class types. | |
void | walk_types_entities (ir_type *tp, entity_walk_func *doit, void *env) |
Walks over all entities in the type. | |
void | types_calc_finalization (void) |
If we have the closed world assumption, we can calculate the finalization of classes and entities by inspecting the class hierarchy. | |
ir_visibility | get_type_visibility (const ir_type *tp) |
void | set_type_visibility (ir_type *tp, ir_visibility v) |
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) |
typedef void type_walk_func(type_or_ent tore, 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.
ir_visibility get_type_visibility | ( | const ir_type * | tp | ) |
void set_type_visibility | ( | ir_type * | tp, |
ir_visibility | v | ||
) |
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 types_calc_finalization | ( | void | ) |
If we have the closed world assumption, we can calculate the finalization of classes and entities by inspecting the class hierarchy.
After this is done, all classes and entities that are not overridden anymore have the final property set.
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 |