libFirm
Reverse Type Edges

Trouts list all uses of types and entities. More...

Functions

size_t get_entity_n_accesses (const ir_entity *entity)
 Returns number of Load/Store nodes that possibly access entity entity.
ir_nodeget_entity_access (const ir_entity *entity, size_t pos)
 Returns Load/Store node number pos that possibly accesses entity entity.
size_t get_entity_n_references (const ir_entity *entity)
 Returns number of references to entity entity, in form of SymConst/Sel, including references from constant entities and the like.
ir_nodeget_entity_reference (const ir_entity *entity, size_t pos)
 Returns reference number pos of references to an entity, in form of SymConst/Sel, including references from constants.
size_t get_type_n_allocs (const ir_type *type)
 Returns number of Alloc nodes that create an instance of type type.
ir_nodeget_type_alloc (const ir_type *type, size_t pos)
 Returns Alloc node number pos that create an instance of type type.
size_t get_type_n_casts (const ir_type *type)
 Returns number of Cast nodes that cast a pointer to type type.
ir_nodeget_type_cast (const ir_type *type, size_t pos)
 Cast node that cast a pointer to this type.
size_t get_class_n_upcasts (const ir_type *clss)
 Returns number of upcasts.
size_t get_class_n_downcasts (const ir_type *clss)
 Returns number of downcasts.
size_t get_type_n_pointertypes_to (const ir_type *type)
 Returns number of pointertypes that point to type type.
ir_typeget_type_pointertype_to (const ir_type *type, size_t pos)
 Returns pointer type number pos that points to type type.
size_t get_type_n_arraytypes_of (const ir_type *type)
 Returns number of array types with element type type.
ir_typeget_type_arraytype_of (const ir_type *type, size_t pos)
 Returns array type number pos with element type type.
void compute_trouts (void)
 Computes the outs of types and entities.
void free_trouts (void)
 Frees trout data.

Detailed Description

Trouts list all uses of types and entities.

Each type gets a list of all Alloc nodes allocating it. Each entity gets two lists:

Function Documentation

void compute_trouts ( void  )

Computes the outs of types and entities.

Collects all reference from irnodes to types or entities in the corresponding types/entities. Further reverses references between types and entities.

Annotates the following nodes: Alloc –> get_Alloc_type() Cast –> get_Cast_type() Sel –> get_Sel_entity() SymConst –> get_SymConst_entity() Load(addr) –> get_addr_entity() \ ent von SymConst, oder falls Sel: ent von Store(addr) –> get_addr_entity() / outermost im compound. Ansonsten: nirgends. d.h. wir bekommen die array Elementzugriffe an die jack array Klasse annotiert. Call(Sel) –> get_Sel_entity() // ev. Tabellenzugriff –> Load.

type –> pointer type refering to this type. type –> entity of this type. @@ to be implemented.

Sets trout state to outs_consistent.

void free_trouts ( void  )

Frees trout data.

size_t get_class_n_downcasts ( const ir_type clss)

Returns number of downcasts.

O(#casts).

size_t get_class_n_upcasts ( const ir_type clss)

Returns number of upcasts.

O(#casts).

ir_node* get_entity_access ( const ir_entity entity,
size_t  pos 
)

Returns Load/Store node number pos that possibly accesses entity entity.

size_t get_entity_n_accesses ( const ir_entity entity)

Returns number of Load/Store nodes that possibly access entity entity.

size_t get_entity_n_references ( const ir_entity entity)

Returns number of references to entity entity, in form of SymConst/Sel, including references from constant entities and the like.

ir_node* get_entity_reference ( const ir_entity entity,
size_t  pos 
)

Returns reference number pos of references to an entity, in form of SymConst/Sel, including references from constants.

ir_node* get_type_alloc ( const ir_type type,
size_t  pos 
)

Returns Alloc node number pos that create an instance of type type.

ir_type* get_type_arraytype_of ( const ir_type type,
size_t  pos 
)

Returns array type number pos with element type type.

ir_node* get_type_cast ( const ir_type type,
size_t  pos 
)

Cast node that cast a pointer to this type.

size_t get_type_n_allocs ( const ir_type type)

Returns number of Alloc nodes that create an instance of type type.

size_t get_type_n_arraytypes_of ( const ir_type type)

Returns number of array types with element type type.

size_t get_type_n_casts ( const ir_type type)

Returns number of Cast nodes that cast a pointer to type type.

size_t get_type_n_pointertypes_to ( const ir_type type)

Returns number of pointertypes that point to type type.

ir_type* get_type_pointertype_to ( const ir_type type,
size_t  pos 
)

Returns pointer type number pos that points to type type.