1. 03 May, 2011 2 commits
    • function.c (init_function_start): Call decide_function_section. · 2c7eebae
      	* function.c (init_function_start): Call decide_function_section.
      	* varasm.c (decide_function_section): New function.
      	(assemble_start_function): When not using
      	flag_reorder_blocks_and_partition, don't compute in_cold_section_p
      	or first_function_block_is_cold.
      	* rtl.h (decide_function_section): Declare.
      
      	* gcc.target/arm/cold-lc.c: New test.
      
      From-SVN: r173303
      Bernd Schmidt committed
    • gengenrtl.c (special_rtx): PC, CC0 and RETURN are special. · 3810076b
      	* gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
      	* genemit.c (gen_exp): Handle RETURN.
      	* emit-rtl.c (verify_rtx_sharing): Likewise.
      	(init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
      	* rtl.c (copy_rtx): RETURN is shared.
      	* rtl.h (enum global_rtl_index): Add GR_RETURN.
      	(ret_rtx): New.
      	* jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
      	* config/s390/s390.c (s390_emit_epilogue): Likewise.
      	* config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
      	* config/cris/cris.c (cris_expand_return): Likewise.
      	* config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_make_savres_rtx,
      	rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
      	* config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
      	* config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
      	Likewise.
      	* config/v850/v850.c (expand_epilogue): Likewise.
      	* config/bfin/bfin.c (bfin_expand_call): Likewise.
      	* config/arm/arm.md (epilogue): Likewise.
      	* config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
      	* config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
      	variable to ret_reg.
      
      From-SVN: r173300
      Bernd Schmidt committed
  2. 08 Apr, 2011 1 commit
  3. 29 Mar, 2011 1 commit
    • [multiple changes] · 1756cb66
      2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-color.c (update_left_conflict_sizes_p): Don't assume that
      	conflict object hard regset nodes have intersecting hard reg sets.
      	
      	* regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
      	after regstat_init_n_sets_and_refs.
      
      	* ira.c: Add more comments at the top.
      	(setup_stack_reg_pressure_class, setup_pressure_classes):
      	Add comments how we compute the register pressure classes.
      	(setup_allocno_and_important_classes): Add more comments.
      	(setup_class_translate_array, reorder_important_classes)
      	(setup_reg_class_relations): Add comments.
      
      	* ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
      	start of the file.
      
      	* ira-color.c: Add 2011 to the Copyright line.
      	(assign_hard_reg):  Add more comments.
      	(improve_allocation): Ditto.
      
      	* ira-costs.c: Add 2011 to the Copyright line.
      	(setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
      	comments.
      	(setup_regno_cost_classes_by_mode): Ditto.
      
      	Initial patches from ira-improv branch:
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c: (ira_create_object): Remove initialization of
      	OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
      	ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
      	ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
      	Initialize ALLOCNO_ADD_DATA.
      	(copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
      	and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
      	ALLOCNO_REG.
      	(ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
      
      	* ira.c (ira_reallocate): Remove.
      	(setup_pressure_classes): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
      	(ira): Call ira_initiate_emit_data and ira_finish_emit_data.
      
      	* ira-color.c: Use ALLOCNO_COLOR_DATA instead of
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
      	ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
      	instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
      	OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
      	Fix formatting.
      	(object_hard_regs_t, object_hard_regs_node_t): Move from
      	ira-int.h.
      	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
      	(struct allocno_color_data): New.
      	(allocno_color_data_t): New typedef.
      	(allocno_color_data): New definition.
      	(ALLOCNO_COLOR_DATA): New macro.
      	(struct object_color_data): New.
      	(object_color_data_t): New typedef.
      	(object_color_data): New definition.
      	(OBJECT_COLOR_DATA): New macro.
      	(update_copy_costs, calculate_allocno_spill_cost): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(move_spill_restore, update_curr_costs): Ditto.
      	(allocno_spill_priority): Make it inline.
      	(color_pass): Allocate and free allocno_color_dat and
      	object_color_data.
      	(struct coalesce_data, coalesce_data_t): New.
      	(allocno_coalesce_data): New definition.
      	(ALLOCNO_COALESCE_DATA): New macro.
      	(merge_allocnos, coalesced_allocno_conflict_p): Use
      	ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
      	ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
      	(coalesce_allocnos): Ditto.
      	(setup_coalesced_allocno_costs_and_nums): Ditto.
      	(collect_spilled_coalesced_allocnos): Ditto.
      	(slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
      	(setup_slot_coalesced_allocno_live_ranges): Ditto.
      	(coalesce_spill_slots): Ditto.
      	(ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
      	free allocno_coalesce_data.
      
      	* ira-conflicts.c: Fix formatting.
      	(process_regs_for_copy): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(build_object_conflicts): Optimize.
      
      	* ira-costs.c (record_reg_classes): Optimize.  Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost, ira_may_move_in_cost, and
      	ira_may_move_out_cost instead of ira_get_register_move_cost and
      	ira_get_may_move_cost.
      	(record_address_regs): Ditto.
      	(scan_one_insn): Optimize.
      	(find_costs_and_classes): Optimize.
      	(process_bb_node_for_hard_reg_moves): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
      	ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
      	(ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
      	definitions.
      	(ira_initiate_emit_data, ira_finish_emit_data)
      	(create_new_allocno): New functions.
      	(modify_move_list): Call create_new_alloc instead of
      	ira_create_allocno.
      	(emit_move_list): Call ira_init_register_move_cost_if_necessary.
      	Use ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-int.h: Fix some comments.
      	(object_hard_regs_t, object_hard_regs_node_t): Move
      	to ira-color.c.
      	(struct object_hard_regs, struct object_hard_regs_node):
      	Ditto.
      	(struct ira_object): Remove profitable_hard_regs, hard_regs_node,
      	hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
      	add_data.
      	(struct ira_allocno): Make mode and aclass a bitfield.  Move other
      	bitfield after mode.  Make hard_regno a short int.  Make
      	hard_regno short.  Remove first_coalesced_allocno and
      	next_coalesced_allocno.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
      	into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
      	available_regs_num, next_bucket_allocno, prev_bucket_allocno,
      	temp, colorable_p.  Add new member add_data.
      	(ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
      	(ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
      	(ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
      	(ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_ADD_DATA): New macro.
      	(ira_emit_data_t): New typedef.
      	(struct ira_emit_data): New.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
      	from struct ira_allocno.
      	(ALLOCNO_EMIT_DATA): New macro.
      	(ira_allocno_emit_data, allocno_emit_reg): New.
      	(ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
      	(OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM):
      	Remove.
      	(OBJECT_ADD_DATA): New macro.
      	(ira_reallocate): Remove.
      	(ira_initiate_emit_data, ira_finish_emit_data): New.
      	(ira_get_register_move_cost, ira_get_may_move_cost): Remove.
      	(ira_init_register_move_cost_if_necessary): New.
      	(ira_object_conflict_iter_next): Merge into
      	ira_object_conflict_iter_cond.
      	(FOR_EACH_OBJECT_CONFLICT): Don't use
      	ira_object_conflict_iter_next.
      
      	* ira-live.c: (process_single_reg_class_operands): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-int.h (struct target_ira_int): Remove x_cost_classes.
      
      	* ira-costs.c: Fix formatting.
      	(cost_classes, cost_classes_num): Remove.
      	(struct cost_classes, cost_classes_t, const_cost_classes_t): New.
      	(regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
      	(cost_classes_del, cost_classes_htab): New.
      	(cost_classes_aclass_cache, cost_classes_mode_cache): New.
      	(initiate_regno_cost_classes, setup_cost_classes): New.
      	(setup_regno_cost_classes_by_aclass): New.
      	(setup_regno_cost_classes_by_mode, finish_regno_cost_classes):
      	New.
      	(record_reg_classes): Use regno_cost_classes instead of
      	cost_classes.  Move checking opposite operand up.
      	(record_address_regs): Use regno_cost_classes
      	instead of cost_classes.
      	(scan_one_insn): Ditto.  Use always general register.
      	(print_allocno_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(print_pseudo_costs): Ditto.  Use Reg_N_REFS.
      	(find_costs_and_classes): Set up cost classes for each registers.
      	Use also their mode for this.  Use regno_cost_classes instead of
      	cost_classes.
      	(setup_allocno_class_and_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(free_ira_costs, ira_init_costs): Don't use cost_classes.
      	(ira_costs, ira_set_pseudo_classes): Call
      	initiate_regno_cost_classes and finish_regno_cost_classes.
      
      	2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
      
      	* target.def (ira_cover_classes): Remove.
      
      	* doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and
      	IRA_COVER_CLASSES.
      
      	* doc/tm.texi.in: Ditto.
      
      	* ira-conflicts.c: Remove mentioning cover classes from the file.
      	Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
      	ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix
      	formatting.
      
      	* targhooks.c (default_ira_cover_classes): Remove.
      
      	* targhooks.h (default_ira_cover_classes): Ditto.
      
      	* haifa-sched.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(object_hard_regs_t, object_hard_regs_node_t): New typedefs.
      	(struct object_hard_regs, struct object_hard_regs_node): New.
      	(struct ira_object): New members profitable_hard_regs,
      	hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
      	(struct ira_allocno): Rename cover_class to aclass.  Rename
      	cover_class_cost and updated_cover_class_cost to class_cost and
      	updated_class_cost.  Remove splay_removed_p and
      	left_conflict_size.  Add new members colorable_p.
      	(ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
      	(ALLOCNO_COLORABLE_P): New macro.
      	(ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
      	(ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
      	Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
      	(OBJECT_...): Rename parameter C to O.
      	(OBJECT_PROFITABLE_HARD_REGS): New macro.
      	(OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
      	(OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
      	(struct target_ira_int): New members x_ira_max_memory_move_cost,
      	x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
      	x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
      	x_ira_reg_pressure_class_p, x_ira_important_class_nums,
      	x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
      	x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
      	x_ira_reg_class_subunion.
      	(ira_max_memory_move_cost, ira_max_register_move_cost)
      	(ira_max_may_move_in_cost, ira_max_may_move_out_cost)
      	(ira_reg_allocno_class_p, ira_reg_pressure_class_p)
      	(ira_important_class_nums, ira_reg_class_superunion): New macros.
      	(prohibited_class_mode_regs): Rename to
      	ira_prohibited_class_mode_regs.
      	(ira_reg_class_union): Rename to ira_reg_class_subunion.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.
      	(ira_debug_hard_regs_forest): New.
      	(ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
      	(ira_object_conflict_iter_next): Fix comments.
      	(ira_hard_reg_set_intersection_p, hard_reg_set_size): New
      	functions.
      	(ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
      	cover_class to aclass.
      	(ira_allocate_and_accumulate_costs): Ditto.
      	(ira_allocate_and_set_or_copy_costs): Ditto.
      
      	* opts.c (decode_options): Remove ira_cover_class check.
      
      	* ira-color.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
      	instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(splay-tree.h): Remove include.
      	(allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
      	before copy_freq_compare_func.
      	(allocnos_for_spilling, removed_splay_allocno_vec): Remove.
      	(object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
      	New definitions.
      	(hard_regs_roots, hard_regs_node_vec): Ditto.
      	(object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
      	(insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
      	(finish_object_hard_regs, object_hard_regs_compare): Ditto.
      	(create_new_object_hard_regs_node): Ditto.
      	(add_new_object_hard_regs_node_to_forest): Ditto.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Ditto.
      	(setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
      	Ditto.
      	(print_hard_reg_set, print_hard_regs_subforest): Ditto.
      	(print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
      	(remove_unused_object_hard_regs_nodes): Ditto.
      	(enumerate_object_hard_regs_nodes): Ditto.
      	(object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
      	(object_hard_regs_subnode_t): Ditto.
      	(struct object_hard_regs_subnode): Ditto.
      	(object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
      	(setup_object_hard_regs_subnode_index): Ditto.
      	(get_object_hard_regs_subnodes_num): Ditto.
      	(form_object_hard_regs_nodes_forest): Ditto.
      	(finish_object_hard_regs_nodes_tree): Ditto.
      	(finish_object_hard_regs_nodes_forest): Ditto.
      	(allocnos_have_intersected_live_ranges_p): Rename to
      	allocnos_conflict_by_live_ranges_p.  Move before
      	copy_freq_compare_func.
      	(pseudos_have_intersected_live_ranges_p): Rename to
      	conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
      	(setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
      	(empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
      	(update_copy_costs): Remove assert.  Skip cost update if the hard
      	reg does not belong the class.
      	(assign_hard_reg): Process only profitable hard regs.
      	(uncolorable_allocnos_num): Make it scalar.
      	(allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
      	and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
      	and ira_reg_class_max_nregs.
      	(bucket_allocno_compare_func): Check frequency first.
      	(sort_bucket): Add compare function as a parameter.
      	(add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
      	(uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
      	(push_allocno_to_stack): Rewrite for checking new allocno
      	colorability.
      	(remove_allocno_from_bucket_and_push): Print cost too.  Remove
      	assert.
      	(push_only_colorable): Pass new parameter to sort_bucket.
      	(push_allocno_to_spill): Remove.
      	(allocno_spill_priority_compare): Make it inline and rewrite.
      	(splay_tree_allocate, splay_tree_free): Remove.
      	(allocno_spill_sort_compare): New function.
      	(push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
      	build and use splay tree.  Choose first allocno in uncolorable
      	allocno bucket to spill.  Remove setting spill cost.
      	(all_conflicting_hard_regs): Remove.
      	(setup_allocno_available_regs_num): Check only profitable hard
      	regs.  Print info about hard regs nodes.
      	(setup_allocno_left_conflicts_size): Remove.
      	(put_allocno_into_bucket): Don't call
      	setup_allocno_left_conflicts_size.  Use
      	setup_left_conflict_sizes_p.
      	(improve_allocation): New.
      	(color_allocnos): Call setup_profitable_hard_regs,
      	form_object_hard_regs_nodes_forest, improve_allocation,
      	finish_object_hard_regs_nodes_forest.  Setup spill cost.
      	(print_loop_title): Use pressure classes.
      	(color_allocnso): Ditto.
      	(do_coloring): Remove allocation and freeing splay_tree_node_pool
      	and allocnos_for_spilling.
      	(ira_sort_regnos_for_alter_reg): Don't setup members
      	{first,next}_coalesced_allocno.
      	(color): Remove allocating and freeing removed_splay_allocno_vec.
      	(fast_allocation): Use ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      
      	* ira-lives.c: Remove mentioning cover classes from the file.  Fix
      	formatting.
      	(update_allocno_pressure_excess_length): Use pressure classes.
      	(inc_register_pressure, dec_register_pressure): Check for pressure
      	class.
      	(mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
      	pressure class.  Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
      	(mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
      	(single_reg_class): Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(process_bb_node_lives): Use pressure classes.
      
      	* ira-emit.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(change_loop): Use pressure classes.
      	(modify_move_list): Call ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      
      	* ira-build.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
      	ALLOCNO_UPDATED_CLASS_COST instead of
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
      	ALLOCNO_COLORABLE_P.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	Update conflict regs for the objects.
      	(create_cap_allocno): Remove assert.  Don't propagate
      	ALLOCNO_AVAILABLE_REGS_NUM.
      	(ira_free_allocno_costs): New function.
      	(finish_allocno): Change a part of code into call of
      	ira_free_allocno_costs.
      	(low_pressure_loop_node_p): Use pressure classes.
      	(object_range_compare_func): Don't compare classes.
      	(setup_min_max_conflict_allocno_ids): Ditto.
      
      	* loop-invariant.c: Remove mentioning cover classes from the file.
      	Use ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
      	(get_cover_class_and_nregs): Rename to
      	get_cover_pressure_and_nregs.  Use ira_reg_class_max_nregs instead
      	of ira_reg_class_nregs.  Use reg_allocno_class instead of
      	reg_cover_class.
      	(get_inv_cost): Use instead ira_stack_reg_pressure_class of
      	STACK_REG_COVER_CLASS.
      	(get_regno_cover_class): Rename to get_regno_pressure_class.
      	(move_loop_invariants): Initialize and finalize regstat.
      
      	* ira.c: Remove mentioning cover classes from the file.  Add
      	comments about coloring without cover classes.  Use ALLOCNO_CLASS
      	instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
      	setup_class_subset_and_memory_move_costs.
      	(setup_stack_reg_pressure_class, setup_pressure_classes): New.
      	(setup_cover_and_important_classes): Rename to
      	setup_allocno_and_important_classes.
      	(setup_class_translate_array): New.
      	(setup_class_translate): Call it for allocno and pressure classes.
      	(cover_class_order): Rename to allocno_class_order.
      	(comp_reg_classes_func): Use ira_allocno_class_translate instead
      	of ira_class_translate.
      	(reorder_important_classes): Set up ira_important_class_nums.
      	(setup_reg_class_relations): Set up ira_reg_class_superunion.
      	(print_class_cover): Rename to print_classes.  Add parameter.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	Print pressure classes too.
      	(find_reg_class_closure): Rename to find_reg_classes.  Don't call
      	setup_reg_subclasses.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(setup_prohibited_class_mode_regs): Use
      	ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      	(clarify_prohibited_class_mode_regs): New function.
      	(ira_init_register_move_cost): Set up ira_max_register_move_cost,
      	ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
      	(ira_init_once): Initialize them.
      	(free_register_move_costs): Process them.
      	(ira_init): Move calls of find_reg_classes and
      	setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
      	Call clarify_prohibited_class_mode_regs.
      	(ira_no_alloc_reg): Remove.
      	(too_high_register_pressure_p): Use pressure classes.
      
      	* sched-deps.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.
      	(mark_insn_hard_regno_birth, mark_hard_regno_death): Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira.h: Add 2010 to Copyright.
      	(ira_no_alloc_reg): Remove external.
      	(struct target_ira): Rename x_ira_hard_regno_cover_class,
      	x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
      	x_ira_class_translate to x_ira_hard_regno_allocno_class,
      	x_ira_allocno_classes_num, x_ira_allocno_classes, and
      	x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
      	x_ira_pressure_classes, x_ira_pressure_class_translate, and
      	x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
      	x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
      	x_ira_no_alloc_regs.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_cover_size, ira_reg_class_cover): Rename to
      	ira_allocno_classes_num and ira_allocno_classes.
      	(ira_class_translate): Rename to ira_allocno_class_translate.
      	(ira_pressure_classes_num, ira_pressure_classes): New definitions.
      	(ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
      	(ira_no_alloc_regs): New.
      
      	* ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.  Use ALLOCNO_CLASS instead of
      	ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS_COST.
      	(regno_cover_class): Rename to regno_aclass.
      	(record_reg_classes): Use ira_reg_class_subunion instead of
      	ira_reg_class_union.
      	(record_address_regs): Check overflow.
      	(scan_one_insn): Ditto.
      	(print_allocno_costs): Print total mem cost fore regional
      	allocation.
      	(print_pseudo_costs): Use REG_N_REFS.
      	(find_costs_and_classes): Use classes intersected with them on the
      	1st pass. Check overflow.  Use ira_reg_class_subunion instead of
      	ira_reg_class_union.  Use ira_allocno_class_translate and
      	regno_aclass instead of ira_class_translate and regno_cover_class.
      	Modify code for finding regno_aclass.  Setup preferred classes for
      	the next pass.
      	(setup_allocno_cover_class_and_costs): Rename to
      	setup_allocno_class_and_costs.  Use regno_aclass instead of
      	regno_cover_class.  Use ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      	(init_costs, finish_costs): Use regno_aclass instead of
      	regno_cover_class.
      	(ira_costs): Use setup_allocno_class_and_costs instead of
      	setup_allocno_cover_class_and_costs.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
      	by processing objects.  Use ira_reg_class_max_nregs instead of
      	ira_reg_class_nregs.
      
      	* rtl.h (reg_cover_class): Rename to reg_allocno_class.
      
      	* sched-int.h: Remove mentioning cover classes from the file.
      	(sched_regno_cover_class): Rename to sched_regno_pressure_class.
      
      	* reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(struct reg_pref): Rename coverclass into allocnoclass.
      	(reg_cover_class): Rename to reg_allocno_class.
      
      	* Makefile.in (ira-color.o): Remove SPLAY_TREE_H from
      	dependencies.
      
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
      
      	* config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
      	(i386_ira_cover_classes): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
      	(mips_ira_cover_classes): Ditto.
      
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
      	(IRA_COVER_CLASSES_VSX): Ditto.
      
      	* config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
      	(rs6000_ira_cover_classes): Ditto.
      
      	* config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/score/score.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
      
      From-SVN: r171649
      Vladimir Makarov committed
  4. 28 Mar, 2011 1 commit
  5. 27 Mar, 2011 1 commit
    • [multiple changes] · fe82cdfb
      2011-03-27  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
      	after regstat_init_n_sets_and_refs.
      
      	* ira.c: Add more comments at the top.
      	(setup_stack_reg_pressure_class, setup_pressure_classes):
      	Add comments how we compute the register pressure classes.
      	(setup_allocno_and_important_classes): Add more comments.
      	(setup_class_translate_array, reorder_important_classes)
      	(setup_reg_class_relations): Add comments.
      
      	* ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
      	start of the file.
      
      	* ira-color.c: Add 2011 to the Copyright line.
      	(assign_hard_reg):  Add more comments.
      	(improve_allocation): Ditto.
      
      	* ira-costs.c: Add 2011 to the Copyright line.
      	(setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
      	comments.
      	(setup_regno_cost_classes_by_mode): Ditto.
      
      	Initial patches from ira-improv branch:
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c: (ira_create_object): Remove initialization of
      	OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
      	ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
      	ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
      	Initialize ALLOCNO_ADD_DATA.
      	(copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
      	and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
      	ALLOCNO_REG.
      	(ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
      
      	* ira.c (ira_reallocate): Remove.
      	(setup_pressure_classes): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
      	(ira): Call ira_initiate_emit_data and ira_finish_emit_data.
      
      	* ira-color.c: Use ALLOCNO_COLOR_DATA instead of
      	ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
      	ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
      	ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
      	instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
      	OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
      	Fix formatting.
      	(object_hard_regs_t, object_hard_regs_node_t): Move from
      	ira-int.h.
      	(struct object_hard_regs, struct object_hard_regs_node): Ditto.
      	(struct allocno_color_data): New.
      	(allocno_color_data_t): New typedef.
      	(allocno_color_data): New definition.
      	(ALLOCNO_COLOR_DATA): New macro.
      	(struct object_color_data): New.
      	(object_color_data_t): New typedef.
      	(object_color_data): New definition.
      	(OBJECT_COLOR_DATA): New macro.
      	(update_copy_costs, calculate_allocno_spill_cost): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(move_spill_restore, update_curr_costs): Ditto.
      	(allocno_spill_priority): Make it inline.
      	(color_pass): Allocate and free allocno_color_dat and
      	object_color_data.
      	(struct coalesce_data, coalesce_data_t): New.
      	(allocno_coalesce_data): New definition.
      	(ALLOCNO_COALESCE_DATA): New macro.
      	(merge_allocnos, coalesced_allocno_conflict_p): Use
      	ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
      	ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
      	(coalesce_allocnos): Ditto.
      	(setup_coalesced_allocno_costs_and_nums): Ditto.
      	(collect_spilled_coalesced_allocnos): Ditto.
      	(slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
      	(setup_slot_coalesced_allocno_live_ranges): Ditto.
      	(coalesce_spill_slots): Ditto.
      	(ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
      	free allocno_coalesce_data.
      
      	* ira-conflicts.c: Fix formatting.
      	(process_regs_for_copy): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      	(build_object_conflicts): Optimize.
      
      	* ira-costs.c (record_reg_classes): Optimize.  Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost, ira_may_move_in_cost, and
      	ira_may_move_out_cost instead of ira_get_register_move_cost and
      	ira_get_may_move_cost.
      	(record_address_regs): Ditto.
      	(scan_one_insn): Optimize.
      	(find_costs_and_classes): Optimize.
      	(process_bb_node_for_hard_reg_moves): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
      	ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
      	ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
      	(ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
      	definitions.
      	(ira_initiate_emit_data, ira_finish_emit_data)
      	(create_new_allocno): New functions.
      	(modify_move_list): Call create_new_alloc instead of
      	ira_create_allocno.
      	(emit_move_list): Call ira_init_register_move_cost_if_necessary.
      	Use ira_register_move_cost instead of ira_get_register_move_cost.
      
      	* ira-int.h: Fix some comments.
      	(object_hard_regs_t, object_hard_regs_node_t): Move
      	to ira-color.c.
      	(struct object_hard_regs, struct object_hard_regs_node):
      	Ditto.
      	(struct ira_object): Remove profitable_hard_regs, hard_regs_node,
      	hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
      	add_data.
      	(struct ira_allocno): Make mode and aclass a bitfield.  Move other
      	bitfield after mode.  Make hard_regno a short int.  Make
      	hard_regno short.  Remove first_coalesced_allocno and
      	next_coalesced_allocno.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
      	into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
      	available_regs_num, next_bucket_allocno, prev_bucket_allocno,
      	temp, colorable_p.  Add new member add_data.
      	(ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
      	(ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
      	(ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
      	(ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
      	(ALLOCNO_ADD_DATA): New macro.
      	(ira_emit_data_t): New typedef.
      	(struct ira_emit_data): New.  Move mem_optimized_dest_p,
      	somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
      	from struct ira_allocno.
      	(ALLOCNO_EMIT_DATA): New macro.
      	(ira_allocno_emit_data, allocno_emit_reg): New.
      	(ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
      	(OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM):
      	Remove.
      	(OBJECT_ADD_DATA): New macro.
      	(ira_reallocate): Remove.
      	(ira_initiate_emit_data, ira_finish_emit_data): New.
      	(ira_get_register_move_cost, ira_get_may_move_cost): Remove.
      	(ira_init_register_move_cost_if_necessary): New.
      	(ira_object_conflict_iter_next): Merge into
      	ira_object_conflict_iter_cond.
      	(FOR_EACH_OBJECT_CONFLICT): Don't use
      	ira_object_conflict_iter_next.
      
      	* ira-live.c: (process_single_reg_class_operands): Call
      	ira_init_register_move_cost_if_necessary.  Use
      	ira_register_move_cost instead of ira_get_register_move_cost.
      
      	2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-int.h (struct target_ira_int): Remove x_cost_classes.
      
      	* ira-costs.c: Fix formatting.
      	(cost_classes, cost_classes_num): Remove.
      	(struct cost_classes, cost_classes_t, const_cost_classes_t): New.
      	(regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
      	(cost_classes_del, cost_classes_htab): New.
      	(cost_classes_aclass_cache, cost_classes_mode_cache): New.
      	(initiate_regno_cost_classes, setup_cost_classes): New.
      	(setup_regno_cost_classes_by_aclass): New.
      	(setup_regno_cost_classes_by_mode, finish_regno_cost_classes):
      	New.
      	(record_reg_classes): Use regno_cost_classes instead of
      	cost_classes.  Move checking opposite operand up.
      	(record_address_regs): Use regno_cost_classes
      	instead of cost_classes.
      	(scan_one_insn): Ditto.  Use always general register.
      	(print_allocno_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(print_pseudo_costs): Ditto.  Use Reg_N_REFS.
      	(find_costs_and_classes): Set up cost classes for each registers.
      	Use also their mode for this.  Use regno_cost_classes instead of
      	cost_classes.
      	(setup_allocno_class_and_costs): Use regno_cost_classes instead of
      	cost_classes.
      	(free_ira_costs, ira_init_costs): Don't use cost_classes.
      	(ira_costs, ira_set_pseudo_classes): Call
      	initiate_regno_cost_classes and finish_regno_cost_classes.
      
      	2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
      
      	* target.def (ira_cover_classes): Remove.
      
      	* doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and
      	IRA_COVER_CLASSES.
      
      	* doc/tm.texi.in: Ditto.
      
      	* ira-conflicts.c: Remove mentioning cover classes from the file.
      	Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
      	ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix
      	formatting.
      
      	* targhooks.c (default_ira_cover_classes): Remove.
      
      	* targhooks.h (default_ira_cover_classes): Ditto.
      
      	* haifa-sched.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(object_hard_regs_t, object_hard_regs_node_t): New typedefs.
      	(struct object_hard_regs, struct object_hard_regs_node): New.
      	(struct ira_object): New members profitable_hard_regs,
      	hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
      	(struct ira_allocno): Rename cover_class to aclass.  Rename
      	cover_class_cost and updated_cover_class_cost to class_cost and
      	updated_class_cost.  Remove splay_removed_p and
      	left_conflict_size.  Add new members colorable_p.
      	(ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
      	(ALLOCNO_COLORABLE_P): New macro.
      	(ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
      	(ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
      	Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
      	(OBJECT_...): Rename parameter C to O.
      	(OBJECT_PROFITABLE_HARD_REGS): New macro.
      	(OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
      	(OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
      	(struct target_ira_int): New members x_ira_max_memory_move_cost,
      	x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
      	x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
      	x_ira_reg_pressure_class_p, x_ira_important_class_nums,
      	x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
      	x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
      	x_ira_reg_class_subunion.
      	(ira_max_memory_move_cost, ira_max_register_move_cost)
      	(ira_max_may_move_in_cost, ira_max_may_move_out_cost)
      	(ira_reg_allocno_class_p, ira_reg_pressure_class_p)
      	(ira_important_class_nums, ira_reg_class_superunion): New macros.
      	(prohibited_class_mode_regs): Rename to
      	ira_prohibited_class_mode_regs.
      	(ira_reg_class_union): Rename to ira_reg_class_subunion.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.
      	(ira_debug_hard_regs_forest): New.
      	(ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
      	(ira_object_conflict_iter_next): Fix comments.
      	(ira_hard_reg_set_intersection_p, hard_reg_set_size): New
      	functions.
      	(ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
      	cover_class to aclass.
      	(ira_allocate_and_accumulate_costs): Ditto.
      	(ira_allocate_and_set_or_copy_costs): Ditto.
      
      	* opts.c (decode_options): Remove ira_cover_class check.
      
      	* ira-color.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
      	instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(splay-tree.h): Remove include.
      	(allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
      	before copy_freq_compare_func.
      	(allocnos_for_spilling, removed_splay_allocno_vec): Remove.
      	(object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
      	New definitions.
      	(hard_regs_roots, hard_regs_node_vec): Ditto.
      	(object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
      	(insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
      	(finish_object_hard_regs, object_hard_regs_compare): Ditto.
      	(create_new_object_hard_regs_node): Ditto.
      	(add_new_object_hard_regs_node_to_forest): Ditto.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Ditto.
      	(setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
      	Ditto.
      	(print_hard_reg_set, print_hard_regs_subforest): Ditto.
      	(print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
      	(remove_unused_object_hard_regs_nodes): Ditto.
      	(enumerate_object_hard_regs_nodes): Ditto.
      	(object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
      	(object_hard_regs_subnode_t): Ditto.
      	(struct object_hard_regs_subnode): Ditto.
      	(object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
      	(setup_object_hard_regs_subnode_index): Ditto.
      	(get_object_hard_regs_subnodes_num): Ditto.
      	(form_object_hard_regs_nodes_forest): Ditto.
      	(finish_object_hard_regs_nodes_tree): Ditto.
      	(finish_object_hard_regs_nodes_forest): Ditto.
      	(allocnos_have_intersected_live_ranges_p): Rename to
      	allocnos_conflict_by_live_ranges_p.  Move before
      	copy_freq_compare_func.
      	(pseudos_have_intersected_live_ranges_p): Rename to
      	conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
      	(setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
      	(empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
      	(update_copy_costs): Remove assert.  Skip cost update if the hard
      	reg does not belong the class.
      	(assign_hard_reg): Process only profitable hard regs.
      	(uncolorable_allocnos_num): Make it scalar.
      	(allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
      	and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
      	and ira_reg_class_max_nregs.
      	(bucket_allocno_compare_func): Check frequency first.
      	(sort_bucket): Add compare function as a parameter.
      	(add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
      	(uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
      	(push_allocno_to_stack): Rewrite for checking new allocno
      	colorability.
      	(remove_allocno_from_bucket_and_push): Print cost too.  Remove
      	assert.
      	(push_only_colorable): Pass new parameter to sort_bucket.
      	(push_allocno_to_spill): Remove.
      	(allocno_spill_priority_compare): Make it inline and rewrite.
      	(splay_tree_allocate, splay_tree_free): Remove.
      	(allocno_spill_sort_compare): New function.
      	(push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
      	build and use splay tree.  Choose first allocno in uncolorable
      	allocno bucket to spill.  Remove setting spill cost.
      	(all_conflicting_hard_regs): Remove.
      	(setup_allocno_available_regs_num): Check only profitable hard
      	regs.  Print info about hard regs nodes.
      	(setup_allocno_left_conflicts_size): Remove.
      	(put_allocno_into_bucket): Don't call
      	setup_allocno_left_conflicts_size.  Use
      	setup_left_conflict_sizes_p.
      	(improve_allocation): New.
      	(color_allocnos): Call setup_profitable_hard_regs,
      	form_object_hard_regs_nodes_forest, improve_allocation,
      	finish_object_hard_regs_nodes_forest.  Setup spill cost.
      	(print_loop_title): Use pressure classes.
      	(color_allocnso): Ditto.
      	(do_coloring): Remove allocation and freeing splay_tree_node_pool
      	and allocnos_for_spilling.
      	(ira_sort_regnos_for_alter_reg): Don't setup members
      	{first,next}_coalesced_allocno.
      	(color): Remove allocating and freeing removed_splay_allocno_vec.
      	(fast_allocation): Use ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      
      	* ira-lives.c: Remove mentioning cover classes from the file.  Fix
      	formatting.
      	(update_allocno_pressure_excess_length): Use pressure classes.
      	(inc_register_pressure, dec_register_pressure): Check for pressure
      	class.
      	(mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
      	pressure class.  Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
      	(mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
      	(single_reg_class): Use ira_reg_class_nregs instead of
      	ira_reg_class_max_nregs.
      	(process_bb_node_lives): Use pressure classes.
      
      	* ira-emit.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(change_loop): Use pressure classes.
      	(modify_move_list): Call ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      
      	* ira-build.c: Remove mentioning cover classes from the file.  Use
      	ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
      	ALLOCNO_UPDATED_CLASS_COST instead of
      	ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
      	(ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
      	(ira_create_allocno): Remove initialization of
      	ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
      	ALLOCNO_COLORABLE_P.
      	(ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
      	Update conflict regs for the objects.
      	(create_cap_allocno): Remove assert.  Don't propagate
      	ALLOCNO_AVAILABLE_REGS_NUM.
      	(ira_free_allocno_costs): New function.
      	(finish_allocno): Change a part of code into call of
      	ira_free_allocno_costs.
      	(low_pressure_loop_node_p): Use pressure classes.
      	(object_range_compare_func): Don't compare classes.
      	(setup_min_max_conflict_allocno_ids): Ditto.
      
      	* loop-invariant.c: Remove mentioning cover classes from the file.
      	Use ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
      	(get_cover_class_and_nregs): Rename to
      	get_cover_pressure_and_nregs.  Use ira_reg_class_max_nregs instead
      	of ira_reg_class_nregs.  Use reg_allocno_class instead of
      	reg_cover_class.
      	(get_inv_cost): Use instead ira_stack_reg_pressure_class of
      	STACK_REG_COVER_CLASS.
      	(get_regno_cover_class): Rename to get_regno_pressure_class.
      	(move_loop_invariants): Initialize and finalize regstat.
      
      	* ira.c: Remove mentioning cover classes from the file.  Add
      	comments about coloring without cover classes.  Use ALLOCNO_CLASS
      	instead of ALLOCNO_COVER_CLASS.  Fix formatting.
      	(alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
      	setup_class_subset_and_memory_move_costs.
      	(setup_stack_reg_pressure_class, setup_pressure_classes): New.
      	(setup_cover_and_important_classes): Rename to
      	setup_allocno_and_important_classes.
      	(setup_class_translate_array): New.
      	(setup_class_translate): Call it for allocno and pressure classes.
      	(cover_class_order): Rename to allocno_class_order.
      	(comp_reg_classes_func): Use ira_allocno_class_translate instead
      	of ira_class_translate.
      	(reorder_important_classes): Set up ira_important_class_nums.
      	(setup_reg_class_relations): Set up ira_reg_class_superunion.
      	(print_class_cover): Rename to print_classes.  Add parameter.
      	(ira_debug_class_cover): Rename to ira_debug_allocno_classes.
      	Print pressure classes too.
      	(find_reg_class_closure): Rename to find_reg_classes.  Don't call
      	setup_reg_subclasses.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(setup_prohibited_class_mode_regs): Use
      	ira_prohibited_class_mode_regs instead of
      	prohibited_class_mode_regs.
      	(clarify_prohibited_class_mode_regs): New function.
      	(ira_init_register_move_cost): Set up ira_max_register_move_cost,
      	ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
      	(ira_init_once): Initialize them.
      	(free_register_move_costs): Process them.
      	(ira_init): Move calls of find_reg_classes and
      	setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
      	Call clarify_prohibited_class_mode_regs.
      	(ira_no_alloc_reg): Remove.
      	(too_high_register_pressure_p): Use pressure classes.
      
      	* sched-deps.c: Remove mentioning cover classes from the file.
      	Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
      	ira_pressure_classes and ira_pressure_classes_num instead of
      	ira_reg_class_cover_size and ira_reg_class_cover.
      	(mark_insn_hard_regno_birth, mark_hard_regno_death): Use
      	sched_regno_pressure_class instead of sched_regno_cover_class.
      	(mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
      	ira_reg_class_max_nregs instead of ira_reg_class_nregs.
      
      	* ira.h: Add 2010 to Copyright.
      	(ira_no_alloc_reg): Remove external.
      	(struct target_ira): Rename x_ira_hard_regno_cover_class,
      	x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
      	x_ira_class_translate to x_ira_hard_regno_allocno_class,
      	x_ira_allocno_classes_num, x_ira_allocno_classes, and
      	x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
      	x_ira_pressure_classes, x_ira_pressure_class_translate, and
      	x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
      	x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
      	x_ira_no_alloc_regs.
      	(ira_hard_regno_cover_class): Rename to
      	ira_hard_regno_allocno_class.
      	(ira_reg_class_cover_size, ira_reg_class_cover): Rename to
      	ira_allocno_classes_num and ira_allocno_classes.
      	(ira_class_translate): Rename to ira_allocno_class_translate.
      	(ira_pressure_classes_num, ira_pressure_classes): New definitions.
      	(ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
      	(ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
      	(ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
      	(ira_no_alloc_regs): New.
      
      	* ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.  Use ALLOCNO_CLASS instead of
      	ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
      	ALLOCNO_COVER_CLASS_COST.
      	(regno_cover_class): Rename to regno_aclass.
      	(record_reg_classes): Use ira_reg_class_subunion instead of
      	ira_reg_class_union.
      	(record_address_regs): Check overflow.
      	(scan_one_insn): Ditto.
      	(print_allocno_costs): Print total mem cost fore regional
      	allocation.
      	(print_pseudo_costs): Use REG_N_REFS.
      	(find_costs_and_classes): Use classes intersected with them on the
      	1st pass. Check overflow.  Use ira_reg_class_subunion instead of
      	ira_reg_class_union.  Use ira_allocno_class_translate and
      	regno_aclass instead of ira_class_translate and regno_cover_class.
      	Modify code for finding regno_aclass.  Setup preferred classes for
      	the next pass.
      	(setup_allocno_cover_class_and_costs): Rename to
      	setup_allocno_class_and_costs.  Use regno_aclass instead of
      	regno_cover_class.  Use ira_set_allocno_class instead of
      	ira_set_allocno_cover_class.
      	(init_costs, finish_costs): Use regno_aclass instead of
      	regno_cover_class.
      	(ira_costs): Use setup_allocno_class_and_costs instead of
      	setup_allocno_cover_class_and_costs.
      	(ira_tune_allocno_costs_and_cover_classes): Rename to
      	ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
      	by processing objects.  Use ira_reg_class_max_nregs instead of
      	ira_reg_class_nregs.
      
      	* rtl.h (reg_cover_class): Rename to reg_allocno_class.
      
      	* sched-int.h: Remove mentioning cover classes from the file.
      	(sched_regno_cover_class): Rename to sched_regno_pressure_class.
      
      	* reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
      	classes from the file.
      	(struct reg_pref): Rename coverclass into allocnoclass.
      	(reg_cover_class): Rename to reg_allocno_class.
      
      	* Makefile.in (ira-color.o): Remove SPLAY_TREE_H from
      	dependencies.
      
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
      
      	* config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
      	(i386_ira_cover_classes): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
      	(mips_ira_cover_classes): Ditto.
      
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
      	(IRA_COVER_CLASSES_VSX): Ditto.
      
      	* config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
      	(rs6000_ira_cover_classes): Ditto.
      
      	* config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/score/score.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
      
      From-SVN: r171583
      Vladimir Makarov committed
  6. 16 Mar, 2011 1 commit
    • re PR debug/45882 (No debug info for vars depending on unused parameter) · a58a8e4b
      	PR debug/45882
      	* rtl.def (ENTRY_VALUE): Change format from "e" to "0".
      	* rtl.h (ENTRY_VALUE_EXP): Define.
      	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
      	* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* gengtype.c (adjust_field_rtx_def): Likewise.
      	* var-tracking.c (vt_add_function_parameter): Adjust
      	gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
      	* dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
      	* cfgexpand.c (expand_debug_expr): If a SSA_NAME without
      	partition is a default definition of a PARM_DECL, use ENTRY_VALUE
      	of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
      
      	* gcc.dg/guality/pr45882.c: New test.
      
      From-SVN: r171035
      Jakub Jelinek committed
  7. 09 Mar, 2011 1 commit
    • re PR rtl-optimization/47866 (gcc.dg/torture/vector-2.c fails on IA64) · db7ec035
      	PR rtl-optimization/47866
      	* expr.c (store_field): If MEM_SCALAR_P (target), don't use
      	MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
      	if target wasn't scalar.
      	* function.c (assign_stack_temp_for_type): Assert that neither
      	MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
      	MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
      	macro.
      	* rtl.h (MEM_SET_IN_STRUCT_P): Removed.
      
      From-SVN: r170834
      Jakub Jelinek committed
  8. 28 Feb, 2011 1 commit
    • re PR middle-end/47893 (4.6 miscompiles mesa on i686) · 80a832cd
      	PR middle-end/47893
      	* rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
      	(assign_stack_local_1): Change last argument type to int.
      	* function.c (assign_stack_local_1): Replace reduce_alignment_ok
      	argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
      	don't record padding space into frame_space_list nor
      	use those areas.
      	(assign_stack_local): Adjust caller.
      	(assign_stack_temp_for_type): Call assign_stack_local_1 instead
      	of assign_stack_local, pass 0 as last argument.
      	* caller-save.c (setup_save_areas): Adjust assign_stack_local_1
      	callers.
      
      	* gcc.dg/pr47893.c: New test.
      
      From-SVN: r170568
      Jakub Jelinek committed
  9. 11 Feb, 2011 1 commit
  10. 03 Feb, 2011 1 commit
    • re PR debug/43092 (Wrong debuginfo with VTA and -fomit-frame-pointer/-mno-accumulate-outgoing-args) · 4deef538
      PR debug/43092
      PR rtl-optimization/43494
      * rtl.h (for_each_inc_dec_fn): New type.
      (for_each_inc_dec): Declare.
      * rtlanal.c (struct for_each_inc_dec_ops): New type.
      (for_each_inc_dec_find_inc_dec): New fn.
      (for_each_inc_dec_find_mem): New fn.
      (for_each_inc_dec): New fn.
      * dse.c (struct insn_size): Remove.
      (replace_inc_dec, replace_inc_dec_mem): Remove.
      (emit_inc_dec_insn_before): New fn.
      (check_for_inc_dec): Use it, along with for_each_inc_dec.
      (canon_address): Pass mem modes to cselib_lookup.
      * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
      (cselib_lookup_from_insn): Likewise.
      (cselib_subst_to_values): Likewise.
      * cselib.c (find_slot_memmode): New var.
      (cselib_find_slot): New fn.  Use it instead of
      htab_find_slot_with_hash everywhere.
      (entry_and_rtx_equal_p): Use find_slot_memmode.
      (autoinc_split): New fn.
      (rtx_equal_for_cselib_p): Rename and implement in terms of...
      (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
      Deal with autoinc.  Special-case recursion into MEMs.
      (cselib_hash_rtx): Likewise.
      (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
      address and MEM modes.
      (cselib_subst_to_values): Add memmode, pass it on.
      Deal with autoinc.
      (cselib_lookup): Add memmode argument, pass it on.
      (cselib_lookup_from_insn): Add memmode.
      (cselib_invalidate_rtx): Discard obsolete push_operand handling.
      (struct cselib_record_autoinc_data): New.
      (cselib_record_autoinc_cb): New fn.
      (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
      mode to cselib_lookup.  Reset autoinced REGs here instead of...
      (cselib_process_insn): ... here.
      * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
      to cselib_lookup.
      (add_uses): Likewise, also to cselib_subst_to_values.
      (add_stores): Likewise.
      * sched-deps.c 	(add_insn_mem_dependence): Pass mode to
      cselib_subst_to_values.
      (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
      * gcse.c (do_local_cprop): Adjusted.
      * postreload.c (reload_cse_simplify_set): Adjusted.
      (reload_cse_simplify_operands): Adjusted.
      * sel-sched-dump (debug_mem_addr_value): Pass mode.
      
      From-SVN: r169782
      Alexandre Oliva committed
  11. 09 Dec, 2010 1 commit
    • rtl.h (invalid_mode_change_p): Adjust prototype. · fa1fabcb
      2010-12-09  Richard Guenther  <rguenther@suse.de>
      
      	* rtl.h (invalid_mode_change_p): Adjust prototype.
      	* reginfo.c (invalid_mode_change_p): Remove from argument.
      	* ira-costs.c (print_allocno_costs): Adjust callers.
      	(find_costs_and_classes): Likewise.
      
      2010-12-09  Richard Guenther  <rguenther@suse.de>
      
      	* ira.c (ira): Do not call finish_subregs_of_mode.
      	* ira-costs.c (finish_costs): Call finish_subregs_of_mode.
      
      From-SVN: r167631
      Richard Guenther committed
  12. 24 Nov, 2010 1 commit
    • common.opt (initial_max_fld_align, [...]): New Variable entries. · 299404a1
      	* common.opt (initial_max_fld_align, flag_debug_asm,
      	flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
      	flag_print_asm_name, graph_dump_format, help_printed,
      	help_columns, flag_opts_finished): New Variable entries.
      	(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
      	frandom-seed=): Mark deferred.
      	(fsched-verbose=): Use UInteger and Var.
      	* flags.h (set_struct_debug_option, flag_print_asm_name,
      	rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
      	graph_dump_format): Don't declare here.
      	* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
      	* opts-global.c: Include dbgcnt.h and debug.h.
      	(decode_options): Pass location to finish_options.
      	(handle_common_deferred_options): Check flag_dump_all_passed.
      	Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
      	OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
      	OPT_fstack_limit.
      	* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
      	(set_struct_debug_option): Add location_t parameter.  Update
      	recursive call.  Use error_at.
      	(default_options_optimization): Use error_at.
      	(finish_options): Add location_t parameter.  Use
      	opts->x_flag_opts_finished instead of first_time_p.  Use
      	opts->x_optimize instead of optimize.  Use error_at.  Pass
      	location to inform.
      	(print_filtered_help): Use opts->x_help_printed to track what
      	options have been printed.
      	(print_specific_help): Use opts->x_help_columns to track number of
      	columns.
      	(common_handle_option): Pass locations and gcc_options pointers to
      	more functions.  Use warning_at instead of fnotice and warning.
      	Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
      	OPT_fdebug_prefix_map_.  Use error_at.  Set
      	opts->x_initial_max_fld_align; don't set maximum_field_alignment.
      	Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
      	OPT_fsched_verbose_.
      	(handle_param): Add location_r parameter.  Use error_at.
      	(set_debug_level): Add location_r parameter.  Use error_at and
      	warning_at.
      	(setup_core_dumping): Add diagnostic_context parameter.
      	(decode_d_option): Add gcc_options, location_t and
      	diagnostic_context parameters and use them instead of global
      	state.  Use warning_at.
      	(enable_warning_as_error): Use error_at.
      	* opts.h (finish_options): Update prototype.
      	(set_struct_debug_option): Declare here.
      	* rtl.h (fix_sched_param): Remove.
      	* stor-layout.c (initial_max_fld_align): Remove.
      	* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
      	graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
      	(process_options): Set maximum_field_alignment.
      	* tree.h (initial_max_fld_align) Don't declare here.
      	* Makefile.in (opts.o, opts-global.o): Update dependencies.
      
      c-family:
      	* c-opts.c (c_common_handle_option): Pass location to
      	set_struct_debug_option.
      
      testsuite:
      	* gcc.dg/opts-5.c: New test.
      
      From-SVN: r167106
      Joseph Myers committed
  13. 22 Nov, 2010 1 commit
  14. 18 Nov, 2010 1 commit
    • re PR middle-end/46515 (Many libjava failures) · cd400280
      PR middle-end/46515
              * function.c (maybe_copy_prologue_epilogue_insn): Rename from
              maybe_copy_epilogue_insn; handle prologue insns as well.
              * rtl.h, cfglayout.c: Update for rename.
              * recog.c (peep2_attempt): Copy prologue/epilogue data for
              RTX_FRAME_RELATED_P insns.
      
      From-SVN: r166920
      Richard Henderson committed
  15. 16 Nov, 2010 1 commit
    • re PR rtl-optimization/46315 (-O2 -fno-strict-overflow causes wrong code generation) · 885c9b5d
      	PR rtl-optimization/46315
      	* rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
      	* rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
      	extracted from...
      	* dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
      	(remove_reg_equal_equiv_notes_for_defs): ...this.
      	(delete_unmarked_insns): Adjust to above renaming.
      	* ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
      	referring to registers set in the insns being moved, if any.
      
      	* df-core.c (df_ref_dump): New function extracted from...
      	(df_refs_chain_dump): ...here.  Call it.
      	(df_regs_chain_dump): Likewise.
      	* df-problems.c (df_chain_dump): Print 'e' for uses in notes.
      	* df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
      
      From-SVN: r166827
      Eric Botcazou committed
  16. 15 Nov, 2010 1 commit
  17. 12 Oct, 2010 1 commit
    • rtl.h: Include hashtab.h. · d95828db
      	* rtl.h: Include hashtab.h.
      	(iterative_hash_rtx): New prototype.
      	* rtl.c (iterative_hash_rtx): New function.
      	* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
      	(output_loc_list): Return immediately if emitted is set,
      	set it.
      	(hash_loc_operands, hash_locs, hash_loc_list,
      	compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
      	optimize_location_lists_1, optimize_location_lists): New function.
      	(dwarf2out_finish): Call optimize_location_lists.
      	* Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
      
      From-SVN: r165351
      Jakub Jelinek committed
  18. 29 Sep, 2010 2 commits
    • re PR target/40457 (use stm and ldm to access consecutive memory words) · 22939744
      	PR target/40457
      	* postreload.c (move2add_use_add2_insn): Use full_costs for
      	comparison.
      	(move2add_use_add3_insn): Likewise.
      	(reload_cse_move2add): Likewise.
      	* rtlanal.c (get_full_rtx_cost): New function.
      	* rtl.h (struct full_rtx_costs): New.
      	(init_costs_to_max, init_costs_to_zero, costs_lt_p,
      	costs_add_n_insns): New inline functions.
      	(get_full_rtx_cost): Declare.
      
      testsuite/
      	PR target/40457
      	* gcc.target/arm/pr40457-3.c: New test.
      
      From-SVN: r164732
      Bernd Schmidt committed
    • optc-gen.awk: Generate global_options initializer instead of individual variables. · e3339d0f
      gcc:
      	* optc-gen.awk: Generate global_options initializer instead of
      	individual variables.  Add x_ prefix to names of structure
      	members.
      	* opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
      	names of structure members.
      	* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
      	* doc/tm.texi: Regenerate.
      	* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* c-parser.c (disable_extension_diagnostics,
      	restore_extension_diagnostics): Update names of cpp_options
      	members.
      	* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* common.opt (fcompare-debug-second): Don't use Var.
      	* config/alpha/alpha.h (target_flags): Remove.
      	* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/bfin/bfin.h (target_flags): Remove.
      	* config/cris/cris.h (target_flags): Remove.
      	* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
      	cl_target_option members.
      	* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
      	(ix86_function_specific_print, ix86_valid_target_attribute_tree,
      	ix86_can_inline_p): Update names of cl_target_option members.
      	* config/i386/i386.h (ix86_isa_flags): Remove.
      	* config/lm32/lm32.h (target_flags): Remove.
      	* config/mcore/mcore.h (mcore_stack_increment): Remove.
      	* config/mcore/mcore.md (addsi3): Remove extern declaration of
      	flag_omit_frame_pointer.
      	* config/mep/mep.h (target_flags): Remove.
      	* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
      	* config/mmix/mmix.h (target_flags): Remove.
      	* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
      	flag_expensive_optimizations): Remove.
      	* config/s390/s390.h (flag_pic): Remove.
      	* config/score/score-conv.h (target_flags): Remove.
      	* config/sh/sh.h (sh_fixed_range_str): Remove.
      	* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
      	* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* diagnostic.c (diagnostic_initialize): Update names of
      	diagnostic_context members.
      	* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
      	warn_system_headers.
      	(diagnostic_report_warnings_p): Update for new names.
      	* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
      	* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
      	HARD_FRAME_POINTER_IS_ARG_POINTER.
      	* flags.h (flag_compare_debug): Declare.
      	* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* opts.c (flag_compare_debug): Define.
      	(common_handle_option): Update names of diagnostic_context
      	members.  Handle -fcompare-debug-second.
      	(fast_math_flags_struct_set_p): Update names of cl_optimization
      	members.
      	* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
      	* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
      	HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
      	* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
      	* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
      
      gcc/c-family:
      	* c-common.c (c_cpp_error): Update names of diagnostic_context
      	members.
      	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Update names of
      	cl_optimization members.
      	* c-opts.c (warning_as_error_callback, c_common_handle_option,
      	sanitize_cpp_opts, finish_options): Update names of cpp_options
      	members.
      
      gcc/fortran:
      	* cpp.c (cpp_define_builtins): Update names of gfc_option_t
      	members.
      	(gfc_cpp_post_options): Update names of cpp_options members.
      	(cb_cpp_error): Update names of diagnostic_context members.
      	* f95-lang.c (gfc_init_builtin_functions): Update names of
      	gfc_option_t members.
      	* gfortran.h (gfc_option_t): Rename warn_conversion and
      	flag_openmp.
      	* intrinsic.c (gfc_convert_type_warn): Update names of
      	gfc_option_t members.
      	* options.c (gfc_init_options, gfc_post_options, set_Wall,
      	gfc_handle_option): Update names of gfc_option_t members.
      	* parse.c (next_free, next_fixed): Update names of gfc_option_t
      	members.
      	* scanner.c (pedantic): Remove extern declaration.
      	(skip_free_comments, skip_fixed_comments, include_line): Update
      	names of gfc_option_t members.
      	* trans-decl.c (gfc_generate_function_code): Update names of
      	gfc_option_t members.
      
      gcc/java:
      	* java-tree.h (flag_filelist_file, flag_assert, flag_jni,
      	flag_force_classes_archive_check, flag_redundant, flag_newer,
      	flag_use_divide_subroutine, flag_use_atomic_builtins,
      	flag_use_boehm_gc, flag_hash_synchronization,
      	flag_check_references, flag_optimize_sci, flag_indirect_classes,
      	flag_indirect_dispatch, flag_store_check,
      	flag_reduced_reflection): Remove.
      	* jcf-dump.c (flag_newer): Remove.
      	* jcf.h (quiet_flag): Remove.
      	* parse.h (quiet_flag): Remove.
      
      libcpp:
      	* include/cpplib.h (cpp_options): Rename warn_deprecated,
      	warn_traditional, warn_long_long and pedantic.
      	* directives.c (directive_diagnostics, _cpp_handle_directive):
      	Update names of cpp_options members.
      	* expr.c (cpp_classify_number, eval_token): Update names of
      	cpp_options members.
      	* init.c (cpp_create_reader, post_options): Update names of
      	cpp_options members.
      	* internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
      	cpp_options members.
      	* macro.c (parse_params): Update names of cpp_options members.
      
      From-SVN: r164723
      Joseph Myers committed
  19. 24 Sep, 2010 1 commit
    • re PR middle-end/45234 (ICE in expand_call, at calls.c:2845 when passing aligned… · 32990d5b
      re PR middle-end/45234 (ICE in expand_call, at calls.c:2845 when passing aligned function argument from unaligned stack after alloca)
      
      	PR middle-end/45234
      	* rtl.h (enum global_rtl_index): Add
      	GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
      	(LAST_VIRTUAL_POINTER_REGISTER): Define.
      	(virtual_preferred_stack_boundary_rtx,
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
      	(LAST_VIRTUAL_REGISTER): Increase by one.
      	(REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
      	instead of LAST_VIRTUAL_REGISTER.
      	* function.c (instantiate_new_reg): Handle
      	virtual_preferred_stack_boundary_rtx.
      	* emit-rtl.c (init_virtual_regs): Handle
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
      	(init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
      	* explow.c (round_push): If crtl->preferred_stack_boundary
      	is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
      	virtual_preferred_stack_boundary_rtx alignment instead of
      	crtl->preferred_stack_boundary alignment.
      	(allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
      	macros.  Never decrease crtl->preferred_stack_boundary,
      	use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
      	instead of PREFERRED_STACK_BOUNDARY.  Don't modify
      	stack_pointer_delta in dynamic allocation, even when size
      	is constant.
      	(probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
      	macro.
      	* print-rtl.c (print_rtx): Handle
      	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
      	* config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
      	LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
      	* config/frv/frv.c (frv_emit_movsi): Likewise.
      	* config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
      	* config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
      	Likewise.
      
      	* gcc.dg/torture/stackalign/alloca-6.c: New test.
      	* gcc.target/i386/pr45234.c: New test.
      
      	Revert:
      	2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/45234
      	* calls.c (expand_call): Make sure that all variable sized
      	adjustments are multiple of preferred stack boundary after
      	stack alignment.
      
      From-SVN: r164593
      Jakub Jelinek committed
  20. 09 Sep, 2010 1 commit
    • rtl.def (DEBUG_IMPLICIT_PTR): New rtl code. · c8a27c40
      	* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
      	* rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
      	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
      	* print-rtl.c (print_rtx): Likewise.
      	* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
      	* cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
      	for ADDR_EXPR with non-addressable object.
      	* dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
      	(struct dw_val_struct): Add v.val_decl_ref.
      	(dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
      	Handle DW_OP_GNU_implicit_pointer.
      	(size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
      	(get_ref_die_offset_label): New function.
      	(implicit_ptr_descriptor): New function.
      	(mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
      	(loc_descriptor): Likewise.
      	(gen_variable_die): Put even definitions into decl_die_table.
      	(resolve_addr_in_expr): Resolve still unresolved
      	DW_OP_GNU_implicit_pointer operands, if it can't be resolved
      	return false.
      	(dwarf2out_finish): Call output_location_lists after outputting
      	.debug_info and .debug_abbrev instead of before.
      
      	* dwarf2.h (DW_OP_GNU_implicit_pointer): New.
      
      2010-09-09  Roland McGrath  <roland@redhat.com>
      
      	* dwarf2out.c (DWARF_REF_SIZE): Define.
      	(size_of_loc_descr): Use it for DW_OP_call_ref.
      
      From-SVN: r164050
      Jakub Jelinek committed
  21. 14 Aug, 2010 1 commit
    • reload.h (register_move_cost, [...]): Adjust prototype. · faa832a7
      	* reload.h (register_move_cost, memory_move_secondary_cost,
      	secondary_reload_class): Adjust prototype.
      	* rtl.h (reg_class_subset_p): Adjust prototype.
      	* reload.c (secondary_reload_class): Change arguments type from
      	enum reg_class to reg_class_t. Change result type to reg_class_t.
      	* reginfo.c (register_move_cost, reg_class_subset_p): Change
      	arguments type from enum reg_class to reg_class_t.
      	(memory_move_secondary_cost): Change arguments type from
      	enum reg_class to reg_class_t. Change type of saved_flags to
      	reg_class_t.
      
      	* config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): 
      	Remove macros.
      	(mips_cost): Remove.
      	(struct mips_rtx_cost_data): Moved to mips.c.
      	* config/mips/mips-protos.h (mips_register_move_cost): Remove.
      	* config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
      	(mips_cost): Make static.
      	(mips_canonicalize_move_class): Change argument type to reg_class_t.
      	Change result type to reg_class_t.
      	(mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
      	type from enum reg_class to reg_class_t.
      	(mips_register_move_cost): Make static. Change arguments
      	type from enum reg_class to reg_class_t.
      	(mips_memory_move_cost): New function.
      	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
      
      From-SVN: r163252
      Anatoly Sokolov committed
  22. 09 Aug, 2010 1 commit
    • ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of alias_sets_conflict_p. · c6ea834c
      2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
      
      	* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
      	alias_sets_conflict_p.
      	(walk_mems_1): Moved from alias.c.
      	(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
      	in alias.c. 
              (add_inter_loop_mem_dep): Use insns_may_alias_p now.
              * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
              * alias.c (walk_mems_2): Moved to ddg.c.
      	(walk_mems_1): Ditto.
      	(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
      	to ddg.c.
      	(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
      	disambiguation.
      	*(may_alias_p): New function to check whether two memory expression
      	may alias or not. Currently used in buidling inter-iteration memory
      	dependence.
      	*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
      	(insn_alias_sets_conflict_p): Removed
      	*rtl.h (may_alias_p): New function prototype.
      
      From-SVN: r163037
      Bingfeng Mei committed
  23. 05 Aug, 2010 1 commit
    • From Martin Thuresson <martint@google.com> · 5444da31
      	* postreload.c (reload_cse_simplify_operands): Use
      	SET_REGNO_RAW instead of SET_REGNO.
      	* caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
      	SET_REGNO.
      	* ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
      	instead of SET_REGNO.
      	* rtl.h (SET_REGNO_RAW): New macro.
      
      From-SVN: r162924
      Bernd Schmidt committed
  24. 30 Jul, 2010 1 commit
    • re PR debug/45055 (another -fcompare-debug failure with uninitialised read in walk_gimple_stmt) · f0fc0803
      	PR debug/45055
      	PR rtl-optimization/45137
      	* rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
      	prototypes.
      	* emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
      	New functions.
      	* combine.c (next_nonnote_nondebug_insn): Removed.
      	* ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
      	* haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
      	* sched-deps.c (sched_analyze_insn): Likewise.
      	(fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
      	* rtlanal.c (canonicalize_condition): Likewise.
      	* postreload.c (reload_combine_recognize_pattern): Likewise.
      	(reload_cse_move2add): Use next_nonnote_nondebug_insn.
      
      	* gcc.dg/pr45055.c: New test.
      
      From-SVN: r162714
      Jakub Jelinek committed
  25. 29 Jul, 2010 1 commit
    • revert: rtl.def (NOTE): Swap operands 4 and 5. · 0f953f83
      	Revert:
      	* rtl.def (NOTE): Swap operands 4 and 5.
              * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
      	NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
      	Adjust accordingly.
              * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
      
      From-SVN: r162692
      Jakub Jelinek committed
  26. 27 Jul, 2010 1 commit
    • rtl.def (DEBUG_INSN, [...]): Swap operands 4 and 5. · 418e920f
      	* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
      	4 and 5.
      	* rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
      	NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
      	NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
      	* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
      	CODE_LABELs and NOTEs.
      	* caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
      	* combine.c (try_combine): Likewise.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise.
      	* print-rtl.c (print_rtx): Start REG_NOTES on a new line.
      
      From-SVN: r162602
      Bernd Schmidt committed
  27. 12 Jul, 2010 3 commits
    • rtl.h (target_rtl): Add x_static_reg_base_value. · 7bf84454
      gcc/
      	* rtl.h (target_rtl): Add x_static_reg_base_value.
      	* alias.c (static_reg_base_value): Redefine as a macro.
      
      From-SVN: r162092
      Richard Sandiford committed
    • Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h. · 360d045b
      gcc/
      	* Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
      	(GTFILES): Remove reginfo.c.
      	* rtl.h (target_rtl): Add x_top_of_stack.
      	(top_of_stack): New macro.
      	* reginfo.c: Don't include ggc.h or gt-reginfo.h.
      	(top_of_stack): Delete.
      
      From-SVN: r162091
      Richard Sandiford committed
    • Makefile.in (target-globals.o): Depend on $(RTL_H). · 5fb0e246
      gcc/
      	* Makefile.in (target-globals.o): Depend on $(RTL_H).
      	* rtl.h: (target_rtl): New structure.
      	(default_target_rtl): Declare.
      	(this_target_rtl): Declare as a variable or define as a macro.
      	(global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
      	Redefine as macros.
      	* emit-rtl.c (default_target_rtl): New variable.
      	(this_target_rtl): New conditional variable.
      	(global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
      	(return_address_pointer_rtx): Delete.
      	(initial_regno_reg_rtx): New macro.
      	(init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
      	(init_emit_regs): Likewise.
      	* target-globals.h (this_target_rtl): Declare.
      	(target_globals): Add a rtl field.
      	(restore_target_globals): Copy the rtl field to this_target_rtl.
      	* target-globals.c: Include rtl.h.
      	(default_target_globals): Initialize the rtl field.
      	(save_target_globals): Likewise.
      
      From-SVN: r162088
      Richard Sandiford committed
  28. 10 Jul, 2010 1 commit
    • reginfo.h (reg_classes_intersect_p): Change arguments type to reg_class_t. · a56b31ca
      	* reginfo.h (reg_classes_intersect_p): Change arguments type to
      	reg_class_t.
      	* rtl.h (reg_classes_intersect_p): Adjust prototype.
      
      	* config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
      	Remove macros.
      	* config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
      	rs6000_memory_move_cost): Remove
      	* config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
      	TARGET_MEMORY_MOVE_COST): Define.
      	(rs6000_register_move_cost): Make static. Change arguments type from
      	enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
      	(rs6000_memory_move_cost): Make static. Change arguments type from
      	'enum reg_class' to reg_class_t.
      
      From-SVN: r162045
      Anatoly Sokolov committed
  29. 30 Jun, 2010 1 commit
    • toplev.h (_fatal_insn_not_found, [...]): Move declarations to rtl.h. · 0cbd9993
      2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
      	to rtl.h.
      	(error_for_asm,	warning_for_asm): Move declarations to rtl-error.h.
      	* rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
      	here.
      	* rtl-error.h: New.
      	* regrename.c: Do not include toplev.h. Include rtl-error.h.
      	* rtl-error.c: Likewise.
      	* reload.c: Likewise.
      	* recog.c:  Likewise.
      	* sel-sched.c: Likewise.
      	* function.c: Likewise.
      	* reg-stack.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* reload1.c: Likewise.
      	* final.c: Include rtl-error.
      	* Makefile.in: Adjust dependencies.
      
      From-SVN: r161617
      Manuel López-Ibáñez committed
  30. 10 Jun, 2010 4 commits
    • Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H). · 600ab3fc
      gcc/
      	* Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
      	* genmddeps.c: Include read-md.h.
      	(main): Call init_rtx_reader_args instead of init_md_reader_args.
      	* genattr.c (main): Likewise.
      	* genattrtab.c (main): Likewise.
      	* genautomata.c (main): Likewise.
      	* gencodes.c (main): Likewise.
      	* genconditions.c (main): Likewise.
      	* genconfig.c (main): Likewise.
      	* genconstants.c (main): Likewise.
      	* genemit.c (main): Likewise.
      	* genextract.c (main): Likewise.
      	* genflags.c (main): Likewise.
      	* genopinit.c (main): Likewise.
      	* genoutput.c (main): Likewise.
      	* genpeep.c (main): Likewise.
      	* genrecog.c (main): Likewise.
      	* genpreds.c (main): Likewise.
      	* gensupport.h (in_fname): Move to read-md.h.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a bool.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a bool.
      	(include_callback): Move to read-md.h.
      	* gensupport.c (in_fname, include_callback, base_dir, max_include_len)
      	(file_name_list, first_dir_md_include): Move to read-md.c
      	(first_bracket_include): Delete unused variable.
      	(last_dir_md_include): Move to read-md.c.
      	(process_include): Delete, moving code to read-md.c:handle_include.
      	(process_rtx): Don't handle INCLUDE.
      	(save_string): Delete.
      	(rtx_handle_directive): New function.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a boolean success value.
      	Use read_md_args.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a boolean success value.
      	* rtl.def (INCLUDE): Delete.
      	* rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
      	argument.
      	* read-rtl.c (read_conditions): Don't gobble ')' here.
      	(read_mapping): Likewise.
      	(read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
      	Handle top-level non-rtx constructs here rather than in read_rtx_1.
      	Store the whole queue in *X.  Remove call to init_md_reader.
      	(read_rtx_1): Rename to...
      	(read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
      	Don't handle top-level non-rtx constructs here.  Don't handle (nil)
      	here.
      	(read_nested_rtx): New function.  Handle (nil) here rather than
      	in read_rtx_code.
      	(read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
      	gobble ')' here.
      	* read-md.h (directive_handler_t): New type.
      	(in_fname, include_callback): Moved from read-md.h.
      	(read_constants, init_md_reader): Delete.
      	(read_md_files): Declare.
      	* read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
      	(last_dir_md_include_ptr, include_callback, max_include_len): Moved
      	from gensupport.c.
      	(read_constants): Rename to...
      	(handle_constants): ...this.  Don't gobble ')' here.
      	(handle_include, handle_file, handle_toplevel_file)
      	(parse_include): New functions, mostly taken from gensupport.c.
      	(init_md_reader): Subsume into...
      	(read_md_files): ...this new function.
      
      From-SVN: r160577
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): Add $(HASHTAB_H). · 9f418533
      gcc/
      	* Makefile.in (READ_MD_H): Add $(HASHTAB_H).
      	(build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
      	* genconstants.c: Include read-md.h.
      	* read-rtl.c (md_constants): Move to read-md.c.
      	(md_name): Move to read-md.h.
      	(initialize_iterators): Use leading_string_hash instead of def_hash
      	and leading_string_eq_p instead of def_name_eq_p.
      	(read_name): Move to read-md.c.
      	(def_hash, def_name_eq_p): Delete.
      	(read_constants, traverse_md_constants): Move to read-md.c.
      	* rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
      	* read-md.h: Include hashtab.h.
      	(md_name): Moved from read-rtl.c.
      	(md_constant): Moved from read-md.h.
      	(leading_string_hash, leading_string_eq_p, read_name)
      	(read_constants, traverse_md_constants): Declare.
      	* read-md.c (md_constants): Moved from read-rtl.c.
      	(leading_string_hash, leading_string_eq_p): New functions.
      	(read_name, read_constants, traverse_md_constants): Moved from
      	read-rtl.c.
      
      From-SVN: r160575
      Richard Sandiford committed
    • read-md.h (read_md_file): Declare. · c5e88b39
      gcc/
      	* read-md.h (read_md_file): Declare.
      	(read_char, unread_char): New functions.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_quoted_string, read_string): Remove FILE * argument.
      	* read-md.c (read_md_file): New variable.
      	(read_md_filename, read_md_lineno): Update comments and remove
      	unnecessary initialization.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_escape, read_quoted_string, read_braced_string, read_string):
      	Remove FILE * argument.  Update calls accordingly, using read_char
      	and unread_char instead of getc and ungetc.
      	* rtl.h (read_rtx): Remove FILE * argument.
      	* read-rtl.c (iterator_group): Remove FILE * argument from
      	"find_builtin".
      	(iterator_traverse_data): Remove "infile" field.
      	(find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
      	(add_mapping, read_name, read_constants, read_conditions)
      	(validate_const_int, find_iterator, read_mapping, check_code_iterator)
      	(read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
      	Remove file arguments from all calls, using read_char and unread_char
      	instead of getc and ungetc.
      	* gensupport.c (process_include): Preserve read_md_file around
      	the include.  Set read_md_file to the handle of the included file.
      	Update call to read_rtx.
      	(init_md_reader_args_cb): Set read_md_file to the handle of the file
      	and remove local FILE *.  Update calls to read_rtx.
      
      From-SVN: r160572
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): New variable. · 10692477
      gcc/
      	* Makefile.in (READ_MD_H): New variable.
      	(BUILD_RTL): Add build/read-md.o.
      	(lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
      	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
      	(build/genattrtab.o, build/genconditions.o build/genemit.o)
      	(build/genextract.o, build/genflags.o, build/genoutput.o)
      	(build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
      	(build/read-md.o): New rule.
      	* defaults.h (obstack_chunk_alloc, obstack_chunk_free)
      	(OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
      	* coretypes.h: ...here.
      	* lto-wrapper.c: Include coretypes.h instead of defaults.h.
      	* pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
      	* genattr.c: Include read-md.h.
      	* genattrtab.c: Likewise.
      	* genconditions.c: Likewise.
      	* genemit.c: Likewise.
      	* genextract.c: Likewise.
      	* genflags.c: Likewise.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* genrecog.c: Likewise.
      	* rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
      	(join_c_conditions, print_c_condition, read_rtx_filename)
      	(read_rtx_lineno): Move to read-md.h.
      	* read-rtl.c: Include read-md.h.
      	(ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
      	(joined_conditions, joined_conditions_obstack, read_rtx_lineno)
      	(read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
      	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
      	(copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
      	(print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
      	(read_braced_string, read_string): Move to read-md.c.
      	(read_rtx): Move some initialization to init_md_reader and call
      	init_md_reader here.
      	* gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
      	Move to read-md.h.
      	* gensupport.c: Include read-md.h.
      	(message_with_line, n_comma_elts, scan_comma_elt): Move to
      	read-md.c.
      	* read-md.h, read-md.c: New files.
      
      From-SVN: r160570
      Richard Sandiford committed
  31. 08 Jun, 2010 1 commit
    • utils.c (init_gnat_to_gnu): Use typed GC allocation. · a9429e29
      gcc/ada:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
      	allocation.
      	(init_dummy_type): Likewise.
      	(gnat_pushlevel): Likewise.
      
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	(extract_encoding): Likewise.
      	(decode_name): Likewise.
      
      	* gcc-interface/misc.c (gnat_printable_name): Likewise.
      
      	* gcc-interface/decl.c (annotate_value): Likewise.
      
      	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
      	GTY option.
      	(struct lang_decl): Likewise.
      	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
      	(SET_DECL_LANG_SPECIFIC): Likewise.
      
      gcc/c-family:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* c-pragma.c (push_alignment): Use typed GC allocation.
      	(handle_pragma_push_options): Likewise.
      
      	* c-common.c (parse_optimize_options): Likewise.
      
      	* c-common.h (struct sorted_fields_type): Add variable_size GTY
      	option.
      
      gcc/cp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* typeck2.c (abstract_virtuals_error): Likewise.
      
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class): Likewise.
      	(push_tinst_level): Likewise.
      
      	* parser.c (cp_lexer_new_main): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      
      	* decl.c (make_label_decl): Likewise.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      
      	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
      
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      
      	* class.c (finish_struct_1): Likewise.
      
      	* cp-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* parser.c (cp_parser_new): Update comment to not reference
      	ggc_alloc.
      
      gcc/fortran:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
      	allocation.
      	(gfc_get_array_type_bounds): Likewise.
      
      	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
      	(gfc_find_module): Likewise.
      
      	* f95-lang.c (pushlevel): Likewise.
      
      	* trans.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      gcc/java:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
      
      	* jcf-parse.c (java_parse_file): Likewise.
      	(process_zip_dir): Likewise.
      
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
      
      	* expr.c (add_type_assertion): Likewise.
      
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      
      	* class.c (add_method_1): Likewise.
      	(java_treetreehash_new): Likewise.
      
      	* java-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* jch.h (struct cpool_entry): Likewise.
      
      	* java-tree.h (java_treetreehash_create): Remove parameter ggc.
      
      	* except.c (prepare_eh_table_type): Update
      	java_treetreehash_create call.
      
      	* class.c (add_method_1): Update java_treetreehash_create call.
      	(java_treetreehash_create): Remove parameter gc.  Use
      	htab_create_ggc.
      
      gcc/lto:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
      	(lto_file_read): Likewise.
      	(new_partition): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      gcc/objc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      	* objc-act.c (objc_volatilize_decl): Likewise.
      	(objc_build_string_object): Likewise.
      	(hash_init): Likewise.
      	(hash_enter): Likewise.
      	(hash_add_attr): Likewise.
      	(add_class): Likewise.
      	(start_class): Likewise.
      
      gcc/objcp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      gcc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
      
      	* doc/gty.texi (GTY Options): Document typed GC allocation and
      	variable_size GTY option.
      
      	* ggc-internal.h: New.
      
      	* ggc.h: Update copyright year.
      	(digit_string): Move to stringpool.c.
      	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
      	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
      	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
      	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
      	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
      	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
      	(ggc_force_collect, ggc_get_size, ggc_statistics)
      	(ggc_print_common_statistics): Move to ggc-internal.h.
      	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
      	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
      	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
      	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
      	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
      	(ggc_alloc_zone_pass_stat): Remove.
      	(ggc_internal_alloc_stat, ggc_internal_alloc)
      	(ggc_internal_cleared_alloc_stat): New.
      	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
      	(ggc_internal_vec_alloc_stat)
      	(ggc_internal_cleared_vec_alloc_stat)
      	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
      	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
      	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(htab_create_ggc, splay_tree_new_ggc): Redefine.
      	(ggc_splay_alloc): Change the type of the first argument to
      	enum gt_types_enum.
      	(ggc_alloc_string): Make macro.
      	(ggc_alloc_string_stat): New.
      	(ggc_strdup): Redefine.
      	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
      	(ggc_alloc_rtvec_sized): New.
      	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
      	(ggc_internal_cleared_alloc_zone_stat)
      	(ggc_internal_zone_alloc_stat)
      	(ggc_internal_zone_cleared_alloc_stat)
      	(ggc_internal_zone_vec_alloc_stat)
      	(ggc_alloc_zone_rtx_def_stat)
      	(ggc_alloc_zone_tree_node_stat)
      	(ggc_alloc_zone_cleared_tree_node_stat)
      	(ggc_alloc_cleared_gimple_statement_d_stat): New.
      
      	* ggc-common.c: Include ggc-internal.h.
      	(ggc_internal_cleared_alloc_stat): Rename from
      	ggc_alloc_cleared_stat.
      	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
      	(ggc_calloc): Remove.
      	(ggc_cleared_alloc_htab_ignore_args): New.
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(ggc_splay_alloc): Add obj_type parameter.
      	(init_ggc_heuristics): Formatting fixes.
      
      	* ggc-none.c: Update copyright year.
      	(ggc_alloc_stat): Rename to ggc_alloc_stat.
      	(ggc_alloc_cleared_stat): Rename to
      	ggc_internal_cleared_alloc_stat.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
      	Remove references to ggc_alloc in comments.
      	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
      	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-zone.c: Include ggc-internal.h.  Remove references to
      	ggc_alloc in comments.
      	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat): New.
      	(ggc_internal_cleared_alloc_zone_stat): New.
      	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
      	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      
      	* stringpool.c: Update copyright year.  Include ggc-internal.h
      	(digit_vector): Make static.
      	(digit_string): Moved from ggc.h.
      	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
      	(ggc_alloc_string): Rename to ggc_alloc_string_stat.
      
      	* Makefile.in (GGC_INTERNAL_H): New.
      	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
      	$(GGC_INTERNAL_H) to dependencies.
      
      	* gentype.c: Update copyright year.
      	(walk_type): Accept variable_size GTY option.
      	(USED_BY_TYPED_GC_P): New macro.
      	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
      	whitespace at the end of strings.
      	(get_type_specifier, variable_size_p): New functions.
      	(alloc_quantity, alloc_zone): New enums.
      	(write_typed_alloc_def): New function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(output_typename, write_splay_tree_allocator_def): Likewise.
      	(write_splay_tree_allocators): Likewise.
      	(main): Call write_typed_alloc_defns and
      	write_splay_tree_allocators.
      
      	* lto-streamer.h (lto_file_decl_data_ptr): New.
      
      	* passes.c (order): Define using cgraph_node_ptr.
      
      	* strinpool.c (struct string_pool_data): Declare nested_ptr using
      	ht_identifier_ptr.
      
      	* gimple.h (union gimple_statement_d): Likewise.
      
      	* rtl.h (struct rtx_def): Likewise.
      	(struct rtvec_def): Likewise.
      
      	* tree.h (union tree_node): Likewise.
      
      	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
      
      	* cfgloop.c (record_loop_exits): Use htab_create_ggc.
      
      	* tree-scalar-evolution.c (scev_initialize): Likewise.
      
      	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.
      
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      	* omp-low.c (lower_omp_critical): Likewise.
      
      	* bitmap.h (struct bitmap_head_def): Update comment to not
      	reference ggc_alloc.
      
      	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
      
      	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
      
      	* ipa-prop.c (duplicate_ggc_array): Rename to
      	duplicate_ipa_jump_func_array.  Use typed GC allocation.
      	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
      
      	* gimple.c (gimple_alloc_stat): Use
      	ggc_alloc_cleared_gimple_statement_d_stat.
      
      	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
      
      	* tree.c (make_node_stat): Use
      	ggc_alloc_zone_cleared_tree_node_stat.
      	(make_tree_vec_stat): Likewise.
      	(build_vl_exp_stat): Likewise.
      	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
      	(make_tree_binfo_stat): Likewise.
      	(tree_cons_stat): Likewise.
      
      	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
      	(shallow_copy_rtx_stat): Likewise.
      	(make_node_stat): Likewise.
      
      	* lto-symtab.c: Fix comment.
      
      	* tree-cfg.c (create_bb): Update comment to not reference
      	ggc_alloc_cleared.
      	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
      	value.
      
      	* varpool.c (varpool_node): Use typed GC allocation.
      	(varpool_extra_name_alias): Likewise.
      
      	* varasm.c (emutls_decl): Likewise.
      	(get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      
      	* tree.c (build_vl_exp_stat): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      
      	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
      
      	* tree-ssa.c (init_tree_ssa): Likewise.
      
      	* tree-ssa-structalias.c (heapvar_insert): Likewise.
      
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      
      	* tree-ssa-alias.c (get_ptr_info): Likewise.
      
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      
      	* tree-dfa.c (create_var_ann): Likewise.
      
      	* tree-cfg.c (create_bb): Likewise.
      
      	* toplev.c (alloc_for_identifier_to_locale): Likewise.
      	(general_init): Likewise.
      
      	* stringpool.c (stringpool_ggc_alloc): Likewise.
      	(gt_pch_save_stringpool): Likewise.
      
      	* sese.c (if_region_set_false_region): Likewise.
      
      	* passes.c (do_per_function_toporder): Likewise.
      
      	* optabs.c (set_optab_libfunc): Likewise.
      	(set_conv_libfunc): Likewise.
      
      	* lto-symtab.c (lto_symtab_register_decl): Likewise.
      
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(make_new_block): Likewise.
      	(unpack_ts_real_cst_value_fields): Likewise.
      
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      
      	* loop-init.c (loop_optimizer_init): Likewise.
      
      	* lambda.h (lambda_vector_new): Likewise.
      
      	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
      
      	* ira.c (update_equiv_regs): Likewise.
      
      	* ipa.c (cgraph_node_set_new): Likewise.
      	(cgraph_node_set_add): Likewise.
      	(varpool_node_set_new): Likewise.
      	(varpool_node_set_add): Likewise.
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
      	(duplicate_ipa_jump_func_array): Likewise.
      	(ipa_read_node_info): Likewise.
      
      	* ipa-cp.c (ipcp_create_replace_map): Likewise.
      
      	* integrate.c (get_hard_reg_initial_val): Likewise.
      
      	* gimple.c (gimple_alloc_stat): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_seq_alloc): Likewise.
      	(gimple_copy): Likewise.
      
      	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
      	(gsi_insert_after_without_update): Likewise.
      
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(allocate_struct_function): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      
      	* dwarf2out.c (new_cfi): Likewise.
      	(queue_reg_save): Likewise.
      	(dwarf2out_frame_init): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(loc_descriptor): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(add_comp_dir_attribute): Likewise.
      	(add_name_and_src_coords_attributes): Likewise.
      	(lookup_filename): Likewise.
      	(store_vcall_insn): Likewise.
      	(dwarf2out_init): Likewise.
      
      	* dbxout.c (dbxout_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      
      	* config/score/score7.c (score7_output_external): Likewise.
      
      	* config/score/score3.c (score3_output_external): Likewise.
      
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(get_deferred_plabel): Likewise.
      
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      
      	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      
      	* config/darwin.c (machopic_indirection_name): Likewise.
      
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_need_linkage): Likewise.
      	(alpha_use_linkage): Likewise.
      
      	* cgraph.c (cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_create_indirect_edge): Likewise.
      	(cgraph_add_asm_node): Likewise.
      
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      
      	* cfgloop.c (alloc_loop): Likewise.
      	(rescan_loop_exit): Likewise.
      
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      
      	* c-parser.c (c_parse_init): Likewise.
      	(c_parse_file): Likewise.
      
      	* c-decl.c (bind): Likewise.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(c_push_function_context): Likewise.
      
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      
      	* alias.c (record_alias_subset): Likewise.
      	(init_alias_analysis): Likewise.
      
      include:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.h: Update copyright years.
      	(splay_tree_s): Document fields.
      	(splay_tree_new_typed_alloc): New.
      
      	* hashtab.h: Update copyright years.
      	(htab_create_typed_alloc): New.
      
      libcpp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/symtab.h (ht_identifier_ptr): New.
      
      libiberty:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.c: Update copyright years.
      	(splay_tree_new_typed_alloc): New.
      	(splay_tree_new_with_allocator): Use it.
      
      	* hashtab.c: Update copyright years.
      	(htab_create_typed_alloc): New.
      	(htab_create_alloc): Use it.
      
      	* functions.texi: Regenerate.
      
      From-SVN: r160425
      Laurynas Biveinis committed
  32. 01 Jun, 2010 1 commit
    • fwprop.c: Make emit-rtl.h include last. · 5936d944
      	* fwprop.c: Make emit-rtl.h include last.
      	* rtlanal.c: Include emit-rtl.h.
      	* genautomata.c: Output emit-rtl include into insn-automata.c
      	* df-scan.c: Include emit-rtl.h.
      	* haifa-sched.c: Indlude emit-rtl.h.
      	* mode-switching.c: Indlude emit-rtl.h.
      	* graph.c: Indlude emit-rtl.h.
      	* sel-sched.c: Include emit-rtl.h.
      	* sel-sched-ir.c: Include emit-rtl.h.
      	* ira-build.c: Include emit-rtl.h.
      	* emit-rtl.c: (first_insn, last_insn): Remove defines.
      	(get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
      	Move to emit-rtl.h.
      	(set_new_first_and_last_insn, get_last_insn_anywhere, get_first_nonnote_insn,
      	get_last_nonnote_insn, try_split, make_call_insn_raw, add_insn_after,
      	add_insn_before, remove_insn, delete_insns_since, reorder_insns_nobb,
      	emit_insn_after_1, emit_debug_insn_before, emit_insn, start_sequence,
      	push_to_sequence, push_to_sequence2, push_topmost_sequence, end_sequence,
      	copy_insn): Use accessor functions.
      	* emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
      	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
      	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
      	mem_expr_equal_p): Move here from rtl.h
      	(get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
      	Move here from emit-rtl.c; make inline.
      	* cfglayout.h: Include emit-rtl.h
      	* rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
      	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
      	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
      	mem_expr_equal_p, get_insns, set_first-insn, get_last_insn, set_last_insn,
      	get_max_uid): Move to emit-rtl.h.
      	* reg-stack.c: Include emit-rtl.h
      	* dce.c: Likewise.
      
      From-SVN: r160111
      Jan Hubicka committed
  33. 26 May, 2010 1 commit