GCC Middle and Back End API Reference
incr_info_d Struct Reference
Collaboration diagram for incr_info_d:

Data Fields

double_int incr
unsigned count
int cost
tree initializer
basic_block init_bb

Detailed Description

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.


Field Documentation

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().


The documentation for this struct was generated from the following file: