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: