GCC Middle and Back End API Reference

Data Fields  
unsigned int  size 
bitmap *  succs 
bitmap *  implicit_preds 
bitmap *  preds 
int *  indirect_cycles 
unsigned int *  rep 
int *  eq_rep 
unsigned int *  pe 
int *  pe_rep 
unsigned int *  pointer_label 
unsigned int *  loc_label 
bitmap *  pointed_by 
bitmap *  points_to 
sbitmap  direct_nodes 
bitmap  address_taken 
vec< constraint_t > *  complex 
The constraint graph is represented as an array of bitmaps containing successor nodes.
bitmap constraint_graph::address_taken 
Bitmap of nodes where the bit is set if the node is address taken. Used for variable substitution.
vec<constraint_t>* constraint_graph::complex 
Vector of complex constraints for each graph node. Complex constraints are those involving dereferences or offsets that are not 0.
Referenced by unite_pointer_equivalences().
sbitmap constraint_graph::direct_nodes 
Bitmap of nodes where the bit is set if the node is a direct node. Used for variable substitution.
Referenced by add_pred_graph_edge().
int* constraint_graph::eq_rep 
Equivalence class representative for a label. This is used for variable substitution.
bitmap* constraint_graph::implicit_preds 
Implicit predecessors of each node (Used for variable substitution).
int* constraint_graph::indirect_cycles 
Indirect cycle representatives, or 1 if the node has no indirect cycles.
Referenced by build_succ_graph(), and merge_graph_nodes().
unsigned int* constraint_graph::loc_label 
Location equivalence label for each node, used during location equivalence finding.
unsigned int* constraint_graph::pe 
Pointer equivalence label for a node. All nodes with the same pointer equivalence label can be unified together at some point (either during constraint optimization or after the constraint graph is built).
Referenced by perform_var_substitution().
int* constraint_graph::pe_rep 
Pointer equivalence representative for a label. This is used to handle nodes that are pointer equivalent but not location equivalent. We can unite these once the addressof constraints are transformed into initial pointsto sets.
Referenced by merge_graph_nodes(), and perform_var_substitution().
bitmap* constraint_graph::pointed_by 
Pointedby set for each node, used during location equivalence finding. This is pointedby rather than pointedto, because it is constructed using the predecessor graph.
unsigned int* constraint_graph::pointer_label 
Pointer equivalence label for each node, used during variable substitution.
bitmap* constraint_graph::points_to 
Points to sets for pointer equivalence. This is *not* the actual pointsto sets for nodes.
Referenced by equiv_class_lookup_or_add(), and equiv_class_hasher::hash().
bitmap* constraint_graph::preds 
Explicit predecessors of each node (Used for variable substitution).
Referenced by free_scc_info().
unsigned int* constraint_graph::rep 
Representative node for a node. rep[a] == a unless the node has been unified.
Referenced by merge_graph_nodes().
unsigned int constraint_graph::size 
Size of this graph, which may be different than the number of nodes in the variable map.
bitmap* constraint_graph::succs 
Explicit successors of each node.
Referenced by merge_node_constraints(), and pt_solution_set_var().