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

Data Fields

unsigned int in_graph_p: 1
unsigned int may_be_spilled_p: 1
unsigned int colorable_p: 1
int available_regs_num
ira_allocno_t next_bucket_allocno
ira_allocno_t prev_bucket_allocno
int temp
int last_process
HARD_REG_SET profitable_hard_regs
allocno_hard_regs_node_t hard_regs_node
int hard_regs_subnodes_start
int hard_regs_subnodes_num
struct update_cost_recordupdate_cost_records

Detailed Description

   To decrease footprint of ira_allocno structure we store all data
   needed only for coloring in the following structure.  

Field Documentation

int allocno_color_data::available_regs_num
     Number of hard registers of the allocno class really
     available for the allocno allocation.  It is number of the
     profitable hard regs.  
unsigned int allocno_color_data::colorable_p
     TRUE if the allocno is trivially colorable.  

Referenced by bucket_allocno_compare_func().

allocno_hard_regs_node_t allocno_color_data::hard_regs_node
     The allocno hard registers node.  
int allocno_color_data::hard_regs_subnodes_num
     The length of the previous array. 
int allocno_color_data::hard_regs_subnodes_start
     Array of structures allocno_hard_regs_subnode representing
     given allocno hard registers node (the 1st element in the array)
     and all its subnodes in the tree (forest) of allocno hard
     register nodes (see comments above).  
unsigned int allocno_color_data::in_graph_p
     TRUE value means that the allocno was not removed yet from the
     conflicting graph during colouring.  

Referenced by add_allocno_to_bucket(), and bucket_allocno_compare_func().

int allocno_color_data::last_process
     Used to exclude repeated processing.  
unsigned int allocno_color_data::may_be_spilled_p
     TRUE if it is put on the stack to make other allocnos
     colorable.  
ira_allocno_t allocno_color_data::next_bucket_allocno
     Allocnos in a bucket (used in coloring) chained by the following
     two members.  
ira_allocno_t allocno_color_data::prev_bucket_allocno
HARD_REG_SET allocno_color_data::profitable_hard_regs
     Profitable hard regs available for this pseudo allocation.  It
     means that the set excludes unavailable hard regs and hard regs
     conflicting with given pseudo.  They should be of the allocno
     class.  

Referenced by bucket_allocno_compare_func(), and update_left_conflict_sizes_p().

int allocno_color_data::temp
     Used for temporary purposes.  
struct update_cost_record* allocno_color_data::update_cost_records
     Records about updating allocno hard reg costs from copies.  If
     the allocno did not get expected hard register, these records are
     used to restore original hard reg costs of allocnos connected to
     this allocno by copies.  

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