GCC Middle and Back End API Reference
|
Data Fields | |
double_int | incr |
unsigned | count |
int | cost |
tree | initializer |
basic_block | init_bb |
Information about a unique "increment" associated with candidates having an SSA name for a stride. An increment is the difference between the index of the candidate and the index of its basis, i.e., (i - i') as discussed in the module commentary. When we are not going to generate address arithmetic we treat increments that differ only in sign as the same, allowing sharing of the cost of initializers. The absolute value of the increment is stored in the incr_info.
int incr_info_d::cost |
Cost of replacing candidates using this increment. Negative and zero costs indicate replacement should be performed.
unsigned incr_info_d::count |
How many times the increment occurs in the candidate tree.
Referenced by replace_conditional_candidate().
double_int incr_info_d::incr |
The increment that relates a candidate to its basis.
Referenced by cand_already_replaced(), and ncd_for_two_cands().
basic_block incr_info_d::init_bb |
If the initializer was found to already exist, this is the block where it was found.
Referenced by replace_conditional_candidate(), and replace_uncond_cands_and_profitable_phis().
tree incr_info_d::initializer |
If this increment is profitable but is not -1, 0, or 1, it requires an initializer T_0 = stride * incr to be found or introduced in the nearest common dominator of all candidates. This field holds T_0 for subsequent use.
Referenced by ncd_for_two_cands(), replace_conditional_candidate(), and replace_uncond_cands_and_profitable_phis().