[Bug other/50775] Register allocator sets up frame and frame pointer with low register pressure
vmakarov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Dec 5 17:03:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50775
--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> 2011-12-05 17:02:59 UTC ---
Author: vmakarov
Date: Mon Dec 5 17:02:54 2011
New Revision: 182015
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182015
Log:
2011-12-05 Vladimir Makarov <vmakarov@redhat.com>
PR other/50775
* ira-int.h (struct ira_object): Remove add_data.
(OBJECT_ADD_DATA): Remove.
* ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
initialization.
* ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
allocno_hard_regs_t, allocno_hard_regs.
(object_hard_regs_node_t, object_hard_regs_node): Rename to
allocno_hard_regs_node_t and allocno_hard_regs_node.
(struct allocno_color_data): Add new member last_process. Move
profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
from object_color_data.
(object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
Remove.
(curr_allocno_process): New static variable.
(object_hard_regs_eq, object_hard_regs_htab): Rename to
allocno_hard_regs_eq and allocno_hard_regs_htab.
(init_object_hard_regs, finish_object_hard_regs): Rename to
init_allocno_hard_regs and finish_allocno_hard_regs.
(object_hard_regs_compare, object_hard_regs_node_t): Rename to
allocno_hard_regs_compare and allocno_hard_regs_node_t.
(create_new_object_hard_regs_node): Rename to
create_new_allocno_hard_regs_node.
(add_new_object_hard_regs_node_to_forest): Rename to
add_new_allocno_hard_regs_node_to_forest.
(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
Rename to add_allocno_hard_regs_to_forest and
collect_allocno_hard_regs_cover.
(setup_object_hard_regs_nodes_parent): Rename to
setup_allocno_hard_regs_nodes_parent.
(remove_unused_object_hard_regs_nodes): Rename to
remove_unused_allocno_hard_regs_nodes.
(enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
Rename to enumerate_allocno_hard_regs_nodes and
allocno_hard_regs_nodes_num.
(object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
(object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
(object_hard_regs_subnode_index): Rename to
allocno_hard_regs_subnode_index.
(setup_object_hard_regs_subnode_index): Rename to
setup_allocno_hard_regs_subnode_index.
(get_object_hard_regs_subnodes_num): Rename to
get_allocno_hard_regs_subnodes_num.
(form_object_hard_regs_nodes_forest): Rename to
form_allocno_hard_regs_nodes_forest.
(finish_object_hard_regs_nodes_tree): Rename to
form_allocno_hard_regs_nodes_forest
(finish_object_hard_regs_nodes_forest): Rename to
finish_allocno_hard_regs_nodes_forest.
(setup_left_conflict_sizes_p): Use allocno data instead of object
ones. Process conflict allocnos once.
(update_left_conflict_sizes_p): Use allocno data instead of object
ones. Change prototype signature.
(empty_profitable_hard_regs): Use allocno data instead of object
ones.
(setup_profitable_hard_regs): Ditto.
(get_conflict_profitable_regs): Rename to
get_conflict_and_start_profitable_regs. Use allocno data for
profitable regs calculation.
(check_hard_reg_p): Change prototype signature. Check profitable
regs for allocno not the objects.
(assign_hard_reg): Process conflict allocnos only once for
updating conflict costs.
(setup_allocno_available_regs_num): Use allocno data instead of
object ones. Modify debug output.
(color_pass): Remove initialization and finalization of object
color data.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-build.c
trunk/gcc/ira-color.c
trunk/gcc/ira-int.h
More information about the Gcc-bugs
mailing list