GCC Middle and Back End API Reference
|
Data Fields | |
tree | index_expr |
tree | range_min |
tree | range_max |
tree | range_size |
basic_block | switch_bb |
basic_block | default_bb |
basic_block | final_bb |
int | default_prob |
gcov_type | default_count |
gcov_type | other_count |
int | phi_count |
tree * | default_values |
vec< constructor_elt, va_gc > ** | constructors |
tree * | target_inbound_names |
tree * | target_outbound_names |
gimple | arr_ref_first |
gimple | arr_ref_last |
const char * | reason |
unsigned int | uniq |
unsigned int | count |
The main structure of the pass.
gimple switch_conv_info::arr_ref_first |
The first load statement that loads a temporary from a new static array.
Referenced by build_one_array().
gimple switch_conv_info::arr_ref_last |
The last load statement that loads a temporary from a new static array.
vec<constructor_elt, va_gc>** switch_conv_info::constructors |
Constructors of new static arrays.
Referenced by free_temp_arrays().
unsigned int switch_conv_info::count |
basic_block switch_conv_info::default_bb |
Basic block that is the target of the default case.
gcov_type switch_conv_info::default_count |
The count of the default edge in the replaced switch.
int switch_conv_info::default_prob |
The probability of the default edge in the replaced switch.
tree* switch_conv_info::default_values |
Array of default values, in the same order as phi nodes.
Referenced by free_temp_arrays().
basic_block switch_conv_info::final_bb |
The single successor block of all branches out of the GIMPLE_SWITCH, if such a block exists. Otherwise NULL.
Referenced by build_one_array(), and create_temp_arrays().
tree switch_conv_info::index_expr |
The expression used to decide the switch branch.
Referenced by build_one_array().
gcov_type switch_conv_info::other_count |
Combined count of all other (non-default) edges in the replaced switch.
int switch_conv_info::phi_count |
Number of phi nodes in the final bb (that we'll be replacing).
tree switch_conv_info::range_max |
tree switch_conv_info::range_min |
The following integer constants store the minimum and maximum value covered by the case labels.
Referenced by build_one_array(), create_temp_arrays(), and free_temp_arrays().
tree switch_conv_info::range_size |
The difference between the above two numbers. Stored here because it is used in all the conversion heuristics, as well as for some of the transformation, and it is expensive to re-compute it all the time.
Referenced by build_one_array().
const char* switch_conv_info::reason |
String reason why the case wasn't a good candidate that is written to the dump file, if there is one.
Referenced by check_all_empty_except_final().
basic_block switch_conv_info::switch_bb |
Basic block that contains the actual GIMPLE_SWITCH.
Referenced by create_temp_arrays().
tree* switch_conv_info::target_inbound_names |
Array of ssa names that are initialized with a value from a new static array.
tree* switch_conv_info::target_outbound_names |
Array of ssa names that are initialized with the default value if the switch expression is out of range.
unsigned int switch_conv_info::uniq |
Parameters for expand_switch_using_bit_tests. Should be computed the same way as in expand_case.