GCC Middle and Back End API Reference
|
#include <ira-int.h>
In general case, IRA is a regional allocator. The regions are nested and form a tree. Currently regions are natural loops. The following structure describes loop tree node (representing basic block or loop). We need such tree because the loop tree from cfgloop.h is not convenient for the optimization: basic blocks are not a part of the tree from cfgloop.h. We also use the nodes for storing additional information about basic blocks/loops for the register allocation purposes.
bitmap ira_loop_tree_node::all_allocnos |
basic_block ira_loop_tree_node::bb |
bitmap ira_loop_tree_node::border_allocnos |
ira_loop_tree_node_t ira_loop_tree_node::children |
Referenced by init_loop_tree_node(), print_loop_title(), and remove_uneccesary_loop_nodes_from_loop_tree().
bool ira_loop_tree_node::entered_from_non_parent_p |
Referenced by setup_entered_from_non_parent_p(), and store_can_be_removed_p().
int ira_loop_tree_node::level |
bitmap ira_loop_tree_node::local_copies |
Referenced by create_loop_tree_nodes(), finish_loop_tree_nodes(), init_loop_tree_node(), and process_regs_for_copy().
Referenced by change_loop(), mark_all_loops_for_removal(), more_one_region_p(), and print_loop_title().
int ira_loop_tree_node::loop_num |
Referenced by add_loop_to_tree(), change_loop(), init_loop_tree_node(), print_loop_title(), and process_bb_node_lives().
bitmap ira_loop_tree_node::modified_regnos |
ira_loop_tree_node_t ira_loop_tree_node::next |
ira_loop_tree_node_t ira_loop_tree_node::parent |
Referenced by add_ranges_and_copies(), calculate_equiv_gains(), change_loop(), copy_info_to_removed_store_destinations(), create_cap_allocno(), create_loop_allocnos(), entered_from_non_parent_p(), ira_parent_allocno(), loop_is_inside_p(), print_loop_title(), process_bb_node_lives(), propagate_modified_regnos(), remove_unnecessary_allocnos(), set_allocno_reg(), and store_can_be_removed_p().
int ira_loop_tree_node::reg_pressure[N_REG_CLASSES] |
ira_allocno_t* ira_loop_tree_node::regno_allocno_map |
Referenced by add_loop_to_tree(), add_range_and_copies_from_move_list(), calculate_equiv_gains(), change_loop(), copy_info_to_removed_store_destinations(), create_loop_allocnos(), create_loop_tree_nodes(), find_costs_and_classes(), finish_loop_tree_nodes(), form_loop_tree(), init_loop_tree_node(), ira_create_allocno(), ira_flattening(), ira_parent_allocno(), ira_traverse_loop_tree(), more_one_region_p(), move_spill_restore(), propagate_allocno_info(), rebuild_regno_allocno_maps(), remove_low_level_allocnos(), remove_unnecessary_allocnos(), set_allocno_reg(), setup_min_max_allocno_live_range_point(), store_can_be_removed_p(), and update_costs().
ira_loop_tree_node_t ira_loop_tree_node::subloop_next |
ira_loop_tree_node_t ira_loop_tree_node::subloops |
Referenced by color_pass(), init_loop_tree_node(), and remove_uneccesary_loop_nodes_from_loop_tree().
bool ira_loop_tree_node::to_remove_p |