r134857 - in /branches/ira/gcc: ChangeLog Makef...
vmakarov@gcc.gnu.org
vmakarov@gcc.gnu.org
Thu May 1 16:01:00 GMT 2008
Author: vmakarov
Date: Thu May 1 16:01:56 2008
New Revision: 134857
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=134857
Log:
2008-05-01 Vladimir Makarov <vmakarov@redhat.com>
* ira-int.h (IRA_BB_NODE_BY_INDEX, IRA_LOOP_NODE_BY_INDEX): Use
gcc_unreachable instead of exit.
(struct allocno): New members min, max, and conflict_id.
(ALLOCNO_MIN, ALLOCNO_MAX, ALLOCNO_CONFLICT_ID): New macros.
(conflict_id_allocno_map):
(SET_ALLOCNO_SET_BIT, CLEAR_ALLOCNO_SET_BIT,
TEST_ALLOCNO_SET_BIT): Add two new parameters. Add versions for
checking.
(allocno_set_iterator): Add new member start_val.
(allocno_set_iter_init): Add two new parameters. Set up
start_val.
(allocno_set_iter_cond): Use start_val.
(FOR_EACH_ALLOCNO_IN_SET): Add two new parameters.
(allocno_set_words): Remove.
(allocno_conflict_iterator): Add new member base_conflict_id.
(allocno_conflict_iter_init): Set up base_conflict_id. Use
ALLOCNO_MIN and ALLOCNO_MAX.
(allocno_conflict_iter_cond): Use conflict_id_allocno_map and
base_conflict_id.
* ira-lives.c: Include sparseset.h.
(allocno_set_words, SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE,
TEST_ALLOCNO_LIVE, allocnos_live_bitmap): Remove.
(allocnos_live): Define as sparseset.
(make_regno_born, clear_allocno_live, mark_reg_store,
mark_reg_death, process_single_reg_class_operands,
process_bb_node_lives, create_allocno_live_ranges): Don't use
allocnos_live_bitmap. Use allocnos_live as sparseset.
* Makefile.in (ira-conflicts.o, ira-lives.o): Add sparseset.h
* ira-conflicts.c: Add sparseset.h header.
(mirror_conflicts): Remove.
(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, TEST_ALLOCNO_LIVE): Remove.
(allocnos_live): Remove.
(CONFLICT_P): Remove
(CONFLICT_ALLOCNO_P): New.
(build_conflict_bit_table): Use sparseset. Use FOR_EACH_ALLOCNO.
Allocate bits for [min..max] range. Report conflict bit table
sizes. Setup conflicts for both allocnos.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Definitions for copy vectors.
(remove_conflict_allocno_copies): Use CONFLICT_ALLOCNO_P. Rename
conflict_allocno_copy_varray to conflict_allocno_copy_vec and make
it VEC.
(build_allocno_conflicts): Use two new arguments for
FOR_EACH_ALLOCNO_IN_SET. Use conflict_id_allocno_map. Modify
calculation of ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE. Use two new
arguments for SET_ALLOCNO_SET_BIT.
(ira_build_conflicts): Don't call mirror_conflicts.
* ira-color.c (varray.h): Remove.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Definitions for
allocno vectors.
(allocno_stack_varray): Rename to allocno_stack_vec. Make it a
VEC.
(assign_hard_reg, push_allocno_to_stack, pop_allocnos_from_stack,
ira_color): Use allocno_stack_vec as VEC.
* ira-build.c (setup_min_max_allocno_live_range_point,
allocno_range_compare_func, sort_conflict_id_allocno_map,
setup_min_max_conflict_allocno_ids): New function.
(conflict_id_allocno_map, conflict_id_allocno_map_vec): New global
variable.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Definitions for allocno vectors.
(allocno_varray): Rename to allocno_vec and make it a VEC.
(initiate_allocnos): Initiate conflict_id_allocno_map_vec. Use
allocno_vec as a VEC.
(create_allocno): Initiate min, max, and conflict_id_allocno.
Update conflict_id_allocno_map. Use allocno_vec as a VEC.
(allocate_allocno_conflict_bit_vec): Use ALLOCNO_MIN and
ALLOCNO_MAX.
(add_to_allocno_conflicts): Ditto.
(remove_wrong_conflicts): Ditto. Use conflict_id_allocno_map.
(change_allocno_conflicts): Ditto. Use add_to_allocno_conflicts
instead of SET_ALLOCNO_SET_BIT.
(finish_allocnos): Free conflict_id_allocno_map_vec. Use
allocno_vec as a VEC.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Definitions for copy vectors.
(copy_varray): Rename to copy_vec and make it a VEC.
(initiate_copies, create_copy, finish_copies): Use copy_vec as
a VEC.
(ira_build): Call setup_min_max_allocno_live_range_point,
sort_conflict_id_allocno_map, and
setup_min_max_conflict_allocno_ids.
* ira-emit.c (move_t): New typedef.
(DEF_VEC_P, DEF_VEC_ALLOC_P): Definitions for move vectors.
(move_varray): Rename it to move_vec and make it a VEC.
(emit_move_list, add_range_and_copies_from_move_list): Use move_t.
(traverse_moves, ira_emit): Ditto. Use move_vec as a VEC.
(modify_move_list): Ditto. Set up conflict_id, min, and max for
the new allocno.
Modified:
branches/ira/gcc/ChangeLog
branches/ira/gcc/Makefile.in
branches/ira/gcc/ira-build.c
branches/ira/gcc/ira-color.c
branches/ira/gcc/ira-conflicts.c
branches/ira/gcc/ira-emit.c
branches/ira/gcc/ira-int.h
branches/ira/gcc/ira-lives.c
More information about the Gcc-cvs
mailing list