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: