|
GCC Middle and Back End API Reference
|

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_record * | update_cost_records |
To decrease footprint of ira_allocno structure we store all data needed only for coloring in the following structure.
| 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.