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.