GCC Middle and Back End API Reference
|
#include <profile.h>
Data Fields | |
unsigned int | count_valid:1 |
unsigned int | on_tree:1 |
unsigned int | ignore:1 |
tree | lhs |
tree | rhs |
vec< cond_equivalence > | cond_equivalences |
Additional information about edges.
Structure for recording edge equivalences as well as any pending edge redirections during the dominator optimizer. Computing and storing the edge equivalences instead of creating them on-demand can save significant amounts of time, particularly for pathological cases involving switch statements. These structures live for a single iteration of the dominator optimizer in the edge's AUX field. At the end of an iteration we free each of these structures and update the AUX field to point to any requested redirection target (the code for updating the CFG and SSA graph for edge redirection expects redirection edge targets to be in the AUX field for each edge.
vec<cond_equivalence> edge_info::cond_equivalences |
Traversing an edge may also indicate one or more particular conditions are true or false.
Referenced by debug_dominator_optimization_stats(), free_expr_hash_elt(), and record_cond().
unsigned int edge_info::count_valid |
unsigned int edge_info::ignore |
Pretend this edge does not exist (it is abnormal and we've inserted a fake to compensate).
Referenced by find_group(), find_working_set(), instrument_edges(), and set_bb_counts().
tree edge_info::lhs |
If this edge creates a simple equivalence, the LHS and RHS of the equivalence will be stored here.
Referenced by cprop_into_successor_phis(), record_edge_info(), and record_equality().
unsigned int edge_info::on_tree |
Is on the spanning tree.
Referenced by find_working_set(), instrument_edges(), and set_bb_counts().
tree edge_info::rhs |
Referenced by cprop_into_successor_phis(), record_edge_info(), and record_equality().