gcc/gcc
Vladimir Makarov 1756cb6614 [multiple changes]
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
2011-03-29 01:02:05 +00:00
..
ada Makefile.in (SO_LIB): Handle multilib build for native windows targets. 2011-03-28 13:07:00 +02:00
c-family Changelog c-family/ 2011-03-25 20:20:52 +01:00
config [multiple changes] 2011-03-29 01:02:05 +00:00
cp re PR c++/48313 ([C++0x] std::bind with template function) 2011-03-28 20:04:54 -04:00
doc [multiple changes] 2011-03-29 01:02:05 +00:00
fortran re PR fortran/47065 (Replace trim(a) by a(1:len_trim(a))) 2011-03-27 17:40:26 +00:00
ginclude re PR bootstrap/47147 (gcc 4.6 fails to compile on NetBSD) 2011-01-29 22:15:52 +00:00
go Permit copying hidden fields when passing method receiver. 2011-03-28 23:54:33 +00:00
java Changelog c-family/ 2011-03-25 20:20:52 +01:00
lto Changelog c-family/ 2011-03-25 20:20:52 +01:00
objc lang-specs.h: Match -save-temps* instead of -save-temps. 2011-03-06 16:27:57 +00:00
objcp In gcc/: 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com> 2011-03-21 10:25:38 +00:00
po * gcc.pot: Regenerate. 2011-03-24 16:43:55 +00:00
testsuite re PR c++/48313 ([C++0x] std::bind with template function) 2011-03-28 20:04:54 -04:00
ABOUT-GCC-NLS
BASE-VER * BASE-VER: Change to 4.7.0. 2011-03-14 14:07:26 +01:00
COPYING
COPYING.LIB
COPYING3
COPYING3.LIB
ChangeLog [multiple changes] 2011-03-29 01:02:05 +00:00
ChangeLog-1997
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010 transpose_optimization_2.f90: Cleanup original dump. 2011-02-07 08:34:57 +01:00
ChangeLog.dataflow
ChangeLog.graphite Add testcase for PR43567. 2011-01-25 21:24:35 +00:00
ChangeLog.lib
ChangeLog.ptr
ChangeLog.tree-ssa
ChangeLog.tuples
DATESTAMP Daily bump. 2011-03-29 00:18:00 +00:00
DEV-PHASE
FSFChangeLog
FSFChangeLog.10
FSFChangeLog.11
LANGUAGES
Makefile.in [multiple changes] 2011-03-29 01:02:05 +00:00
ONEWS
README.Portability
acinclude.m4 acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin assembler. 2011-02-22 08:35:45 +00:00
aclocal.m4 configure: Regenerate. 2010-09-03 13:16:24 +00:00
addresses.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
alias.c Makefile.in (IPA_TYPE_ESCAPE_H): Remove. 2011-03-23 14:49:20 +00:00
alias.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
alloc-pool.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
alloc-pool.h
attribs.c ChangeLog gcc/ 2011-03-21 09:29:36 +01:00
auto-inc-dec.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
basic-block.h basic-block.h (fixup_abnormal_edges): Adjust prototype. 2011-03-26 13:03:46 +00:00
bb-reorder.c re PR middle-end/45458 (ICE: in add_labels_and_missing_jumps, at bb-reorder.c:1306 with-fnon-call-exceptions -freorder-blocks-and-partition -fprofile-use) 2010-09-01 21:46:21 +02:00
bb-reorder.h Makefile.in (bb-reorder.o, [...]): Depend on bb-reorder.h 2010-07-12 19:04:11 +00:00
bitmap.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
bitmap.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
bt-load.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
builtin-attrs.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
builtin-types.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
builtins.c builtins.c (expand_builtin_memset_args): Use gen_int_mode instead of GEN_INT. 2011-03-28 21:22:58 +00:00
builtins.def tree.c (build_common_builtin_nodes): Do not initialize BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT. 2010-12-01 16:45:36 +00:00
builtins.h Makefile.in (target-globals.o): Depend on builtins.h. 2010-07-12 19:03:35 +00:00
c-aux-info.c c-aux-info.c (gen_formal_list_for_type): Use prototype_p. 2010-12-22 19:45:58 +00:00
c-config-lang.in Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
c-convert.c re PR c/47150 (ICE in gimplify_expr at gimplify.c) 2011-01-06 11:37:02 +01:00
c-decl.c re PR c/47939 (Missing DW_TAG_typedef for qualified types) 2011-03-21 15:32:21 +00:00
c-errors.c
c-lang.c In gcc/: 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com> 2010-10-20 09:08:57 +00:00
c-lang.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
c-objc-common.c langhooks-def.h (lhd_init_options, [...]): New. 2010-07-27 10:59:51 +01:00
c-objc-common.h Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h. 2010-10-08 16:17:32 +01:00
c-parser.c c-parser.c (c_parser_asm_string_literal): Clear warn_overlength_strings. 2011-03-14 18:01:10 +00:00
c-tree.h c-aux-info.c (gen_formal_list_for_type): Use prototype_p. 2010-12-22 19:45:58 +00:00
c-typeck.c ChangeLog gcc/ 2011-03-25 11:28:12 +01:00
caller-save.c cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range instead of loop. 2011-03-19 20:33:45 +03:00
calls.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
cfg.c cfg.c (redirect_edge_succ_nodup): Duplicate the varm map before removing the edge. 2011-03-23 11:35:59 -06:00
cfganal.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
cfgbuild.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
cfgcleanup.c cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range instead of loop. 2011-03-19 20:33:45 +03:00
cfgexpand.c re PR debug/48203 (ICE in dwarf2out.c while building eglibc.) 2011-03-29 01:53:46 +02:00
cfghooks.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
cfghooks.h
cfglayout.c cfgexpand.c (expand_gimple_cond): Always set the source location and block before expanding the statement. 2011-03-28 21:19:23 +00:00
cfglayout.h final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. 2011-03-16 09:32:13 +01:00
cfgloop.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
cfgloop.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
cfgloopanal.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
cfgloopmanip.c re PR bootstrap/48000 (LTO bootstrap failed with bootstrap-profiled) 2011-03-07 17:41:53 +01:00
cfgrtl.c basic-block.h (fixup_abnormal_edges): Adjust prototype. 2011-03-26 13:03:46 +00:00
cgraph.c tree-inline.c (expand_call_inline): Do not check that destination node is analyzed. 2011-03-28 14:15:44 +02:00
cgraph.h tree-inline.c (expand_call_inline): Do not check that destination node is analyzed. 2011-03-28 14:15:44 +02:00
cgraphbuild.c re PR lto/47423 (Many testsuite failures caused by missing gxx_visibility_sj0) 2011-01-26 11:29:42 +00:00
cgraphunit.c tree-inline.c (expand_call_inline): Do not check that destination node is analyzed. 2011-03-28 14:15:44 +02:00
cif-code.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
collect2-aix.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
collect2-aix.h
collect2.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
collect2.h
combine-stack-adj.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
combine.c combine.c (simplify_set): Try harder to find the best CC mode when simplifying a nested COMPARE on the RHS. 2011-03-22 20:04:58 +00:00
common.opt Makefile.in (IPA_TYPE_ESCAPE_H): Remove. 2011-03-23 14:49:20 +00:00
compare-elim.c compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. 2011-01-23 14:27:33 +00:00
conditions.h
config.build MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.gcc MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.host MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.in re PR driver/46944 (gcc should accept -fuse-linker-plugin only if linker handles -plugin) 2011-03-16 09:41:16 +00:00
configure MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
configure.ac MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
convert.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
convert.h
coretypes.h tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro. 2010-11-23 16:06:37 +00:00
coverage.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
coverage.h
cppbuiltin.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
cppbuiltin.h cppbuiltin.c: New file. 2010-10-03 19:00:55 +00:00
cppdefault.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
cppdefault.h
cppspec.c Makefile.in (gccspec.o, cppspec.o): Update dependencies. 2010-08-22 13:19:01 +01:00
cprop.c Makefile.in: New rule for cprop.o. 2011-03-28 20:58:52 +00:00
crtstuff.c configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for --eh-frame-hdr. 2010-12-23 12:08:21 +00:00
cse.c re PR rtl-optimization/47925 (delete_trivially_dead_insns mishandles volatile mems) 2011-03-02 13:25:10 +00:00
cselib.c re PR debug/48203 (ICE in dwarf2out.c while building eglibc.) 2011-03-29 01:53:46 +02:00
cselib.h re PR debug/43092 (Wrong debuginfo with VTA and -fomit-frame-pointer/-mno-accumulate-outgoing-args) 2011-02-03 06:04:04 +00:00
cstamp-h.in
dbgcnt.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
dbgcnt.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
dbgcnt.h
dbxout.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
dbxout.h
dce.c re PR rtl-optimization/47337 (Wrong RTL dce of calls) 2011-01-19 16:13:01 +01:00
dce.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
ddg.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
ddg.h
debug.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
debug.h emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
defaults.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
df-core.c re PR rtl-optimization/48156 (wrong code with -fcrossjumping) 2011-03-20 16:25:55 +01:00
df-problems.c cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range instead of loop. 2011-03-19 20:33:45 +03:00
df-scan.c re PR rtl-optimization/47525 (DCE fails to eliminate a dead call to a pure function when compiled with -maltivec) 2011-02-02 14:08:06 -06:00
df.h re PR rtl-optimization/44374 (Hoist same instructions in different branches) 2010-12-14 00:23:40 +00:00
dfp.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
dfp.h
diagnostic-core.h diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
diagnostic.c re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
diagnostic.def
diagnostic.h re PR c/44782 (implement -ferror-limit=) 2010-11-12 03:38:15 +00:00
dojump.c * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases. 2011-03-24 21:56:38 +00:00
dominance.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
domwalk.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
domwalk.h
double-int.c hwint.c: New. 2010-11-30 16:36:19 +00:00
double-int.h Fix PR/46316 2010-11-09 02:01:06 +00:00
dse.c cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range instead of loop. 2011-03-19 20:33:45 +03:00
dse.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
dwarf2asm.c dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing va_end. 2011-03-25 10:39:10 -06:00
dwarf2asm.h This patch adds the end prologue and begin epilogue markers in Dwarf2 2010-06-16 19:40:46 +00:00
dwarf2out.c re PR debug/48253 (Further .debug_aranges issues) 2011-03-29 01:55:47 +02:00
dwarf2out.h re PR middle-end/45484 (Invalid memory access in gcc.c-torture/execute/builtins/sprintf-chk.c) 2010-09-03 16:46:39 +02:00
ebitmap.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
ebitmap.h
emit-rtl.c dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing va_end. 2011-03-25 10:39:10 -06:00
emit-rtl.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
emutls.c
errors.c
errors.h
et-forest.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
et-forest.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
except.c re PR middle-end/47401 (Support for must-not-throw regions with SJLJ exceptions broken) 2011-01-22 21:24:54 +00:00
except.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
exec-tool.in Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
explow.c optabs.h (emit_unop_insn, [...]): Change insn code parameter from "int" to "enum insn_code". 2011-03-23 09:30:58 +00:00
expmed.c optabs.h (emit_unop_insn, [...]): Change insn code parameter from "int" to "enum insn_code". 2011-03-23 09:30:58 +00:00
expmed.h expmed.h (MAX_BITS_PER_WORD): Move to... 2010-07-13 19:48:58 +00:00
expr.c expr.c (emit_block_move_via_movmem): Only use 6 operand variant if there are exactly 6 operands. 2011-03-25 16:17:26 -07:00
expr.h expr.h (prepare_operand): Move to... 2011-03-21 21:38:56 +00:00
final.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
fixed-value.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
fixed-value.h
flag-types.h common.opt (user_vect_verbosity_level): New Variable entry. 2010-11-24 13:28:38 +00:00
flags.h common.opt (flag_stack_check): New Variable entry. 2010-12-01 13:58:52 +00:00
fold-const.c fold-const.c (expr_location_or): New function. 2011-03-25 16:53:14 +00:00
fp-test.c
function.c re PR target/4828 (can't install gcc for h8300-hms target) 2011-03-25 11:47:13 +00:00
function.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
fwprop.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
gbl-ctors.h
gcc-plugin.h Include coretypes.h in gcc-plugin.h & Add hard-reg-set.h in FUNCTION_H. 2010-11-30 07:13:29 +00:00
gcc.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
gcc.h Makefile.in (gccspec.o, cppspec.o): Update dependencies. 2010-08-22 13:19:01 +01:00
gccspec.c Makefile.in (gccspec.o, cppspec.o): Update dependencies. 2010-08-22 13:19:01 +01:00
gcov-dump.c gcc.c (process_command): Update copyright notice dates. 2011-01-03 17:14:57 +01:00
gcov-io.c
gcov-io.h
gcov-iov.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gcov.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
gcse.c Makefile.in: New rule for cprop.o. 2011-03-28 20:58:52 +00:00
gcse.h Makefile.in (gcse.o, [...]): Depend on gcse.h.. 2010-07-12 19:04:03 +00:00
gdbinit.in Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genattr.c vec.h (FOR_EACH_VEC_ELT): Define. 2010-08-20 12:48:59 +00:00
genattrtab.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genautomata.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gencheck.c
genchecksum.c Build compiler checksum from object files v2 2010-10-11 13:06:50 +00:00
gencodes.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genconditions.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genconfig.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genconstants.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genemit.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genenums.c re PR bootstrap/44512 (--enable-build-with-cxx bootstrap fails in revision 160669) 2010-07-05 21:18:07 +01:00
genextract.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genflags.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gengenrtl.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gengtype-lex.l Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gengtype-parse.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gengtype-state.c gengtype-state.c (read_state_structures): Initialize "previous". 2010-11-25 22:50:53 +01:00
gengtype.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
gengtype.h gentype-state.c: Add new file. 2010-11-25 19:03:27 +00:00
genhooks.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
genmddeps.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genmodes.c tm.texi.in (OVERRIDE_OPTIONS): Remove documentation. 2010-09-16 12:59:39 +01:00
genmultilib
genopinit.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
genoutput.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genpeep.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genpreds.c hwint.c: New. 2010-11-30 16:36:19 +00:00
genrecog.c hwint.c: New. 2010-11-30 16:36:19 +00:00
gensupport.c gensupport.c (MNEMONIC_ATTR_NAME, [...]): New macros. 2010-11-16 15:33:53 +00:00
gensupport.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
ggc-common.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
ggc-internal.h utils.c (init_gnat_to_gnu): Use typed GC allocation. 2010-06-08 07:25:24 +00:00
ggc-none.c ggc-zone.c (ggc_pch_read): Fix conditional compilation. 2010-11-30 04:12:56 +00:00
ggc-page.c hwint.c: New. 2010-11-30 16:36:19 +00:00
ggc-zone.c hwint.c: New. 2010-11-30 16:36:19 +00:00
ggc.h utils.c (init_gnat_to_gnu): Use typed GC allocation. 2010-06-08 07:25:24 +00:00
gimple-fold.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
gimple-fold.h re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
gimple-iterator.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
gimple-low.c gimple-low.c (lower_function_body): Don't remove the location of the return statement here. 2011-02-08 11:15:53 +00:00
gimple-pretty-print.c gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not a valid RHS. 2011-03-22 11:12:57 +00:00
gimple-pretty-print.h gimplify.c: Do not include except.h and optabs.h. 2010-06-01 22:00:56 +00:00
gimple.c ChangeLog gcc/ 2011-03-25 11:28:12 +01:00
gimple.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gimple.h re PR tree-optimization/45934 (g++.old-deja/g++.other/dtor5.C FAILs with -finline-small-functions) 2010-12-22 13:56:54 +01:00
gimplify.c tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. 2011-03-25 15:05:00 +00:00
glimits.h
godump.c godump.c (go_define): Ignore macros whose definitions include two adjacent operands. 2011-01-29 02:32:28 +00:00
graph.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
graph.h
graphds.c
graphds.h
graphite-blocking.c Do not include unnecessary .h files. 2010-12-28 17:09:16 +00:00
graphite-clast-to-gimple.c Fix PR47127: call cloog_state_malloc and cloog_state_free only once. 2011-03-12 22:05:38 +00:00
graphite-clast-to-gimple.h Fix PR47127: call cloog_state_malloc and cloog_state_free only once. 2011-03-12 22:05:38 +00:00
graphite-cloog-compat.h re PR bootstrap/48102 (Bootstrap failure: error: macro "build_cloog_prog" requires 4 arguments, but only 3 given) 2011-03-14 09:18:52 +01:00
graphite-cloog-util.c Do not include unnecessary .h files. 2010-12-28 17:09:16 +00:00
graphite-cloog-util.h Enable graphite to read an OpenScop file. 2010-09-30 21:17:12 +00:00
graphite-dependences.c Allow several reductions in a reduction PBB. 2011-01-25 06:47:21 +00:00
graphite-dependences.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
graphite-flattening.c Do not include unnecessary .h files. 2010-12-28 17:09:16 +00:00
graphite-interchange.c Test the profitability of interchange on the perfect nest. 2011-01-25 06:45:04 +00:00
graphite-poly.c Fix pbb_remove_duplicate_pdrs. 2011-01-25 06:45:16 +00:00
graphite-poly.h Relax the definition of same_pdr_p. 2011-01-25 06:46:56 +00:00
graphite-ppl.c Pass 0 as the number of parameters to PIP when testing for integer feasibility. 2011-01-25 06:46:43 +00:00
graphite-ppl.h Pass 0 as the number of parameters to PIP when testing for integer feasibility. 2011-01-25 06:46:43 +00:00
graphite-scop-detection.c Pass to dr_analyze_indices the analysis loop for subscripts. 2011-01-25 06:48:32 +00:00
graphite-scop-detection.h
graphite-sese-to-poly.c Fix PRs 46834, 46994, and 46995: only rewrite reductions not containing other computations. 2011-02-08 16:53:57 +00:00
graphite-sese-to-poly.h Postpone the rewrite out of SSA to the end of the translation to polyhedral representation. 2010-12-01 17:25:10 +00:00
graphite.c Fix PR47127: call cloog_state_malloc and cloog_state_free only once. 2011-03-12 22:05:38 +00:00
gsstruct.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gstab.h
gsyms.h
gsyslimits.h
gthr-aix.h
gthr-dce.h re PR target/47792 (concurrence.h:292:9: error: '__gthread_mutex_destroy' was not declared in this scope) 2011-02-18 19:02:31 +00:00
gthr-gnat.c
gthr-gnat.h
gthr-lynx.h
gthr-mipssde.h
gthr-nks.h
gthr-posix.c
gthr-posix.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gthr-posix95.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
gthr-rtems.h
gthr-single.h
gthr-tpf.h
gthr-vxworks.h
gthr-win32.h
gthr.h gthr-solaris.h: Remove. 2011-03-21 12:33:34 +00:00
haifa-sched.c [multiple changes] 2011-03-29 01:02:05 +00:00
hard-reg-set.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
highlev-plugin-common.h
hooks.c target.def (handle_option): Take gcc_options and cl_decoded_option pointers and location_t. 2011-03-22 22:23:02 +00:00
hooks.h target.def (handle_option): Take gcc_options and cl_decoded_option pointers and location_t. 2011-03-22 22:23:02 +00:00
host-default.c
hosthooks-def.h
hosthooks.h
hwint.c hwint.c: New. 2010-11-30 16:36:19 +00:00
hwint.h Remove the lambda framework and make -ftree-loop-linear an alias of -floop-interchange. 2011-01-25 21:24:23 +00:00
ifcvt.c re PR rtl-optimization/44374 (Hoist same instructions in different branches) 2010-12-14 00:23:40 +00:00
implicit-zee.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
incpath.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
incpath.h
init-regs.c
input.c
input.h tree.h (struct call_expr_arg_iterator_d): Remove GTY tag. 2010-12-03 04:11:10 +00:00
insn-addr.h
insn-notes.def final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. 2011-03-16 09:32:13 +01:00
integrate.c final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. 2011-03-16 09:32:13 +01:00
integrate.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
intl.c intl.c: Don't include tm.h. 2010-12-01 17:29:12 +00:00
intl.h
ipa-cp.c re PR tree-optimization/47967 (ICE: verify_stmts failed: conversion of register to a different size with -fipa-cp on undefined code) 2011-03-05 00:07:20 +01:00
ipa-inline.c re PR tree-optimization/48063 (ICE: verify_stmts failed: conversion of register to a different size with -fno-early-inlining) 2011-03-11 11:04:30 +01:00
ipa-prop.c cgraph.c: Fix comment typos. 2011-02-11 15:16:46 +00:00
ipa-prop.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
ipa-pure-const.c cgraph.c: Fix comment typos. 2011-02-11 15:16:46 +00:00
ipa-ref-inline.h
ipa-ref.c cgraph.c: Fix comment typos. 2011-02-11 15:16:46 +00:00
ipa-ref.h cgraph.c (cgraph_edge_cannot_lead_to_return): Also check if caller is noreturn. 2010-06-07 15:33:34 +00:00
ipa-reference.c cgraph.c: Fix comment typos. 2011-02-11 15:16:46 +00:00
ipa-reference.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
ipa-split.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
ipa-utils.c
ipa-utils.h
ipa.c re PR middle-end/48044 (ICE in function_and_variable_visibility, at ipa.c:875) 2011-03-11 15:47:26 +01:00
ira-build.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira-color.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira-conflicts.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira-costs.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira-emit.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira-int.h [multiple changes] 2011-03-29 01:02:05 +00:00
ira-lives.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira.c [multiple changes] 2011-03-29 01:02:05 +00:00
ira.h [multiple changes] 2011-03-29 01:02:05 +00:00
jump.c re PR debug/46756 (-fcompare-debug failure (length) with ASSIGN) 2010-12-13 03:08:24 +00:00
langhooks-def.h invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
langhooks.c invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
langhooks.h invoke.texi (-dy): Remove. 2010-11-17 14:31:07 +00:00
lcm.c re PR rtl-optimization/39077 (GCSE-optimization causes enormous binary size increase (~20 times !)) 2011-01-13 06:41:03 -07:00
libfuncs.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
libgcc-libsystem.ver
libgcc-std.ver common.opt (fsplit-stack): New option. 2010-09-27 19:48:20 +00:00
libgcc2.c libgcc2.c (__lshrdi3, [...]): Use W_TYPE_SIZE. 2011-03-23 01:34:55 +00:00
libgcc2.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
libgcov.c re PR bootstrap/47055 ("make profiledbootstrap" fails on MSYS/mingw-w64) 2011-01-04 19:05:06 +01:00
limitx.h
limity.h
lists.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
longlong.h mn10300: Add support in longlong.h. 2011-01-19 11:36:42 -08:00
loop-doloop.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
loop-init.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
loop-invariant.c [multiple changes] 2011-03-29 01:02:05 +00:00
loop-iv.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
loop-unroll.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
loop-unswitch.c loop-unswitch.c (compare_and_jump_seq): Assert that the last insn in the sequence is a jump insn before setting its label. 2010-06-24 10:01:57 +00:00
lower-subreg.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
lto-cgraph.c re PR bootstrap/48148 (LTO bootstrap failed with bootstrap-profiled) 2011-03-17 13:25:23 +00:00
lto-compress.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
lto-compress.h
lto-opts.c lto-opts.c (input_data_block): Move to lto-streamer-in.c. 2011-03-24 08:39:59 -04:00
lto-section-in.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
lto-section-out.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
lto-streamer-in.c lto-opts.c (input_data_block): Move to lto-streamer-in.c. 2011-03-24 08:39:59 -04:00
lto-streamer-out.c lto-opts.c (input_data_block): Move to lto-streamer-in.c. 2011-03-24 08:39:59 -04:00
lto-streamer.c re PR lto/47924 (Missed optimization with LTO) 2011-03-01 09:46:19 +00:00
lto-streamer.h lto-opts.c (input_data_block): Move to lto-streamer-in.c. 2011-03-24 08:39:59 -04:00
lto-symtab.c re PR lto/47497 (SPEC CPU 2006 failed to link with LTO -fuse-linker-plugin -fwhole-program) 2011-03-04 18:49:23 +00:00
lto-wrapper.c Check HOST_BIT_BUCKET when settting dump base/dir. 2011-02-01 06:42:08 -08:00
machmode.def machmode.def: Fixed comments. 2011-01-24 20:08:06 +00:00
machmode.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
main.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
matrix-reorg.c hwint.c: New. 2010-11-30 16:36:19 +00:00
mcf.c
mips-tdump.c gcc.c (process_command): Update copyright notice dates. 2011-01-03 17:14:57 +01:00
mips-tfile.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
mkconfig.sh Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
mkmap-flat.awk
mkmap-symver.awk
mode-classes.def
mode-switching.c mode-switching.c (optimize_mode_switching): Use FOR_BB_INSNS instead of open-coded for loop. 2010-11-19 19:56:01 +01:00
modulo-sched.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
omega.c Remove the lambda framework and make -ftree-loop-linear an alias of -floop-interchange. 2011-01-25 21:24:23 +00:00
omega.h
omp-builtins.def re PR middle-end/45838 (FAIL: libgomp.c/pr34513.c execution test) 2010-10-06 09:47:28 +02:00
omp-low.c hwint.c: New. 2010-11-30 16:36:19 +00:00
opt-functions.awk options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
opt-gather.awk
opt-include.awk Add PowerPC target attribute/pragma support 2010-11-19 17:27:18 +00:00
optabs.c re PR rtl-optimization/48263 (build fails for cris-elf in libgfortran) 2011-03-24 17:23:18 +00:00
optabs.h optabs.h (emit_unop_insn, [...]): Change insn code parameter from "int" to "enum insn_code". 2011-03-23 09:30:58 +00:00
optc-gen.awk common.opt (fcx-limited-range): Add SetByCombined flag. 2011-02-08 17:41:00 +00:00
opth-gen.awk common.opt (fcx-limited-range): Add SetByCombined flag. 2011-02-08 17:41:00 +00:00
opts-common.c opts-common.c (decode_cmdline_option): Print empty string argument as "" in decoded->orig_option_with_args_text. 2011-02-23 02:04:43 +00:00
opts-diagnostic.h
opts-global.c common.opt (main_input_filename, [...]): New Variable entries. 2010-12-01 13:46:36 +00:00
opts.c [multiple changes] 2011-03-29 01:02:05 +00:00
opts.h options.texi (Enum, EnumValue): Document new record types. 2010-11-26 23:18:28 +00:00
output.h re PR middle-end/31490 (Compile error section type conflict) 2011-02-03 20:12:07 +01:00
params.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
params.def invoke.texi (max-stores-to-sink): Document. 2011-03-24 08:23:39 +00:00
params.h invoke.texi (max-stores-to-sink): Document. 2011-03-24 08:23:39 +00:00
passes.c tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. 2011-03-25 15:05:00 +00:00
plugin.c re PR c/46902 (gcc.dg/plugin/plugindir*.c gives ICEs on powerpc-apple-darwin9) 2011-01-09 12:41:33 +00:00
plugin.def
plugin.h opts-common.c (handle_option, [...]): Add diagnostic_context parameter. 2010-10-05 15:28:39 +01:00
pointer-set.c
pointer-set.h
postreload-gcse.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
postreload.c re PR rtl-optimization/47614 (cpu2000 benchmark 301.apsi fails with revision 169782) 2011-02-11 20:52:55 +00:00
predict.c re PR target/43884 (Performance degradation for simple fibonacci numbers calculation) 2011-01-22 21:47:40 +00:00
predict.def
predict.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
prefix.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
prefix.h
pretty-print.c Makefile.in (READ_MD_H): New variable. 2010-06-10 20:21:23 +00:00
pretty-print.h toplev.h: Do not include diagnostic-core.h. 2010-07-08 04:22:54 +00:00
print-rtl.c re PR debug/45882 (No debug info for vars depending on unused parameter) 2011-03-16 09:35:31 +01:00
print-tree.c * print-tree.c (print_node): Print in-constant-pool. 2010-09-27 10:16:44 +00:00
profile.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
profile.h
read-md.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
read-md.h md.texi (define_enum_attr): Document. 2010-06-10 20:24:17 +00:00
read-rtl.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
real.c re PR middle-end/47903 (var-tracking.c: valgrind error) 2011-02-27 20:37:35 +01:00
real.h
realmpfr.c
realmpfr.h
recog.c recog.c (canonicalize_change_group): Use validate_unshare_change. 2011-03-22 11:19:11 +00:00
recog.h New -fcompare-elim pass. 2011-01-22 11:35:10 -08:00
reg-notes.def invoke.texi: Remove reference to compiler internals from user documentation. 2011-02-06 12:35:10 +00:00
reg-stack.c basic-block.h (fixup_abnormal_edges): Adjust prototype. 2011-03-26 13:03:46 +00:00
regcprop.c Continue searching in find_oldest_value_reg on class match failure. 2010-12-17 14:51:25 -08:00
reginfo.c [multiple changes] 2011-03-29 01:02:05 +00:00
regmove.c [multiple changes] 2011-03-29 01:02:05 +00:00
regrename.c regrename.c: Add general comment describing the pass. 2011-01-02 17:28:24 +00:00
regs.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
regset.h
regstat.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
reload.c reload.c (find_reloads_subreg_address): Add address_reloaded parameter and return true there if... 2011-03-24 16:50:31 +00:00
reload.h reload.h (register_move_cost, [...]): Adjust prototype. 2010-08-15 01:46:11 +04:00
reload1.c basic-block.h (fixup_abnormal_edges): Adjust prototype. 2011-03-26 13:03:46 +00:00
reorg.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
resource.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
resource.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
rtl-error.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
rtl-error.h toplev.h (_fatal_insn_not_found, [...]): Move declarations to rtl.h. 2010-06-30 17:12:36 +00:00
rtl.c re PR debug/45882 (No debug info for vars depending on unused parameter) 2011-03-16 09:35:31 +01:00
rtl.def re PR debug/45882 (No debug info for vars depending on unused parameter) 2011-03-16 09:35:31 +01:00
rtl.h [multiple changes] 2011-03-29 01:02:05 +00:00
rtlanal.c re PR debug/43092 (Wrong debuginfo with VTA and -fomit-frame-pointer/-mno-accumulate-outgoing-args) 2011-02-03 06:04:04 +00:00
rtlhooks-def.h
rtlhooks.c
sbitmap.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
sbitmap.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
sched-deps.c [multiple changes] 2011-03-29 01:02:05 +00:00
sched-ebb.c re PR debug/47498 (-fcompare-debug failure with -fsched2-use-superblocks) 2011-02-02 04:31:35 +00:00
sched-int.h [multiple changes] 2011-03-29 01:02:05 +00:00
sched-rgn.c cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range instead of loop. 2011-03-19 20:33:45 +03:00
sched-vis.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
sdbout.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
sdbout.h
sel-sched-dump.c re PR debug/43092 (Wrong debuginfo with VTA and -fomit-frame-pointer/-mno-accumulate-outgoing-args) 2011-02-03 06:04:04 +00:00
sel-sched-dump.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
sel-sched-ir.c re PR rtl-optimization/48144 (ICE: in code_motion_path_driver, at sel-sched.c:6575 with -fselective-scheduling2 and custom flags) 2011-03-26 14:40:51 +03:00
sel-sched-ir.h re PR rtl-optimization/48144 (ICE: in code_motion_path_driver, at sel-sched.c:6575 with -fselective-scheduling2 and custom flags) 2011-03-26 14:40:51 +03:00
sel-sched.c re PR rtl-optimization/48144 (ICE: in code_motion_path_driver, at sel-sched.c:6575 with -fselective-scheduling2 and custom flags) 2011-03-26 14:40:51 +03:00
sel-sched.h
sese.c Do not include unnecessary .h files. 2010-12-28 17:09:16 +00:00
sese.h Fix PR47019: parameters of a SCoP are SCEV analyzable. 2010-12-22 21:19:34 +00:00
simplify-rtx.c re PR debug/48204 (ICE: in decimal_to_decnumber, at dfp.c:115 with -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-fre -g) 2011-03-24 19:58:58 +01:00
sparseset.c
sparseset.h system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
sreal.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
sreal.h
ssaexpand.h
stab.def
stack-ptr-mod.c
statistics.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
statistics.h
stmt.c explow.c (emit_stack_save): Remove 'after' parameter. 2011-03-03 13:56:58 -08:00
stor-layout.c re PR c++/48029 (ICE in finish_member_declaration() with --param ggc-min-expand=0 --param ggc-min-heapsize=0) 2011-03-10 17:37:22 -05:00
store-motion.c toplev.h: Do not include diagnostic-core.h. 2010-07-08 04:22:54 +00:00
stringpool.c bitmap.c: Delete unnecessary includes. 2010-11-16 13:57:21 +00:00
sync-builtins.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
system.h [multiple changes] 2011-03-29 01:02:05 +00:00
target-def.h [multiple changes] 2011-03-29 01:02:05 +00:00
target-globals.c reginfo.c (init_reg_sets): Don't zero globals here. 2010-07-12 19:04:21 +00:00
target-globals.h Makefile.in (bb-reorder.o, [...]): Depend on bb-reorder.h 2010-07-12 19:04:11 +00:00
target.def [multiple changes] 2011-03-29 01:02:05 +00:00
target.h re PR tree-optimization/47179 (SPU: errno misoptimization around malloc call) 2011-01-14 15:02:20 +00:00
targhooks.c [multiple changes] 2011-03-29 01:02:05 +00:00
targhooks.h [multiple changes] 2011-03-29 01:02:05 +00:00
timevar.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
timevar.def Makefile.in (IPA_TYPE_ESCAPE_H): Remove. 2011-03-23 14:49:20 +00:00
timevar.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tlink.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
toplev.c re PR target/47564 (internal compiler error in memory_address_addr_space, at explow.c:504) 2011-02-03 09:29:03 +01:00
toplev.h common.opt (main_input_filename, [...]): New Variable entries. 2010-12-01 13:46:36 +00:00
tracer.c
tree-affine.c re PR lto/46664 (Failed to build 481.wrf in SPEC CPU 2006 with LTO) 2010-11-26 12:42:41 +00:00
tree-affine.h
tree-browser.c Do not include unnecessary .h files. 2010-12-28 17:09:16 +00:00
tree-browser.def
tree-call-cdce.c basic-block.h (single_succ_edge): Use gcc_checking_assert. 2010-10-21 13:08:28 +00:00
tree-cfg.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
tree-cfgcleanup.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-chrec.c Fix PR47707 2011-02-12 00:12:52 +00:00
tree-chrec.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-complex.c basic-block.h (find_fallthru_edge): Define. 2010-10-21 02:33:33 +00:00
tree-data-ref.c invoke.texi (max-stores-to-sink): Document. 2011-03-24 08:23:39 +00:00
tree-data-ref.h invoke.texi (max-stores-to-sink): Document. 2011-03-24 08:23:39 +00:00
tree-dfa.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree-diagnostic.c
tree-diagnostic.h
tree-dump.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
tree-dump.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-eh.c re PR tree-optimization/47355 (ICE: verify_ssa failed with -O2 -fipa-cp-clone) 2011-01-21 16:15:40 +01:00
tree-emutls.c re PR middle-end/46510 (r166812 breaks bootstrap on x86_64-apple-darwin10) 2010-11-21 23:02:15 +00:00
tree-flow-inline.h re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree-flow.h tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. 2011-03-25 15:05:00 +00:00
tree-if-conv.c re PR tree-optimization/47849 (ICE: SIGSEGV in find_edge (cfganal.c:491) with -ftree-loop-if-convert -fno-tree-reassoc) 2011-02-23 16:49:52 +00:00
tree-inline.c tree-inline.c (expand_call_inline): Do not check that destination node is analyzed. 2011-03-28 14:15:44 +02:00
tree-inline.h re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack) 2011-02-15 18:36:44 +00:00
tree-into-ssa.c re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack) 2011-02-15 18:36:31 +00:00
tree-iterator.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-iterator.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-loop-distribution.c tree-loop-distribution.c (tree_loop_distribution): Do not use freed memory. 2011-01-01 13:25:17 +00:00
tree-mudflap.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-mudflap.h
tree-nested.c bootstrap-lto.mk (BOOT_ADAFLAGS): Delete. 2010-11-27 15:53:23 +00:00
tree-nomudflap.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-nrv.c re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack) 2011-02-02 06:18:01 +00:00
tree-object-size.c re PR middle-end/48269 (Incorrect fortify warning for a packed struct member) 2011-03-24 12:44:58 +00:00
tree-optimize.c timevar.def (TV_IPA_OPT, [...]): New. 2010-11-17 15:18:08 +00:00
tree-outof-ssa.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-parloops.c Remove the lambda framework and make -ftree-loop-linear an alias of -floop-interchange. 2011-01-25 21:24:23 +00:00
tree-pass.h Makefile.in (IPA_TYPE_ESCAPE_H): Remove. 2011-03-23 14:49:20 +00:00
tree-phinodes.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-predcom.c re PR target/47665 (ICE in trunc_int_for_mode) 2011-02-11 15:19:44 +01:00
tree-pretty-print.c re PR middle-end/47650 (wrong output of print_generic_decl() called from a plugin) 2011-03-15 13:39:28 +00:00
tree-pretty-print.h gimplify.c: Do not include except.h and optabs.h. 2010-06-01 22:00:56 +00:00
tree-profile.c value-prof.c (value_prof_hooks): Remove. 2010-12-21 22:58:57 +00:00
tree-scalar-evolution.c Fix PR47576 and PR47555: add PARAM_SCEV_MAX_EXPR_COMPLEXITY. 2011-02-02 15:52:08 +00:00
tree-scalar-evolution.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-sra.c tree-sra.c (build_ref_for_offset): Strip useless type conversions from the address built for a reference with... 2011-03-24 14:21:27 +00:00
tree-ssa-address.c re PR middle-end/45534 (ICE in refs_may_alias_p_1, at tree-ssa-alias.c:1031) 2010-09-06 12:14:02 +00:00
tree-ssa-alias.c Makefile.in (IPA_TYPE_ESCAPE_H): Remove. 2011-03-23 14:49:20 +00:00
tree-ssa-alias.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-ssa-ccp.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree-ssa-coalesce.c diagnostic-core.h: Include bversion.h. 2010-11-30 11:41:24 +00:00
tree-ssa-copy.c tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants also generate copies. 2011-03-25 16:28:15 +00:00
tree-ssa-copyrename.c re PR tree-optimization/47427 (ICE in process_constraint, at tree-ssa-structalias.c:2901) 2011-01-25 13:01:54 +01:00
tree-ssa-dce.c re PR tree-optimization/41490 (tree-ssa-sink does not really work) 2011-03-15 11:09:09 +00:00
tree-ssa-dom.c re PR tree-optimization/48271 (ICE: SIGSEGV in tree_ssa_dominator_optimize (tree-ssa-dom.c:2964) with -O -ftree-vrp -fno-guess-branch-probability -fnon-call-exceptions) 2011-03-24 14:43:16 +00:00
tree-ssa-dse.c re PR tree-optimization/47053 (ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -O -fnon-call-exceptions) 2011-01-21 21:09:44 -07:00
tree-ssa-forwprop.c re PR tree-optimization/47632 (ICE: verify_flow_info failed: BB 4 can not throw but has an EH edge with -fnon-call-exceptions -ftrapv and operator new[]) 2011-02-08 10:44:06 +00:00
tree-ssa-ifcombine.c re PR tree-optimization/39874 (missing VRP (submission)) 2010-06-08 14:15:53 -04:00
tree-ssa-live.c tree-ssa-live.c (remove_unused_scope_block_p): Remove set but unused variable "ann". 2011-03-24 10:44:17 -06:00
tree-ssa-live.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tree-ssa-loop-ch.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
tree-ssa-loop-im.c re PR tree-optimization/47737 (wrong code with -funswitch-loops -fno-tree-dominator-opts -fgraphite-identity) 2011-02-18 13:22:17 +00:00
tree-ssa-loop-ivcanon.c re PR tree-optimization/45605 (Missed devirtualization) 2010-09-20 15:48:42 +00:00
tree-ssa-loop-ivopts.c re PR tree-optimization/47086 (ICE: verify_flow_info failed: BB 3 can not throw but has an EH edge with -O -fexceptions -fnon-call-exceptions -ftrapv) 2011-01-11 07:10:54 -07:00
tree-ssa-loop-manip.c re PR middle-end/46885 (ICE: in gsi_insert_seq_nodes_after, at gimple-iterator.c:251 with -ftree-parallelize-loops -g) 2010-12-14 15:11:16 +01:00
tree-ssa-loop-niter.c re PR tree-optimization/45122 (-funsafe-loop-optimizations causes FAIL: gcc.c-torture/execute/pr27285.c execution) 2011-02-03 06:01:40 +00:00
tree-ssa-loop-prefetch.c Pass to dr_analyze_indices the analysis loop for subscripts. 2011-01-25 06:48:32 +00:00
tree-ssa-loop-unswitch.c re PR middle-end/43866 (wrong code with -fbounds-check -funswitch-loops) 2010-06-25 14:10:42 +02:00
tree-ssa-loop.c re PR tree-optimization/47738 (ICE: verify_ssa failed: no immediate_use list with -O3 -fno-tree-vectorize) 2011-02-16 14:26:43 +00:00
tree-ssa-math-opts.c re PR tree-optimization/48067 (FMA with no add operand produced by convert_mul_to_fma) 2011-03-11 16:36:16 +00:00
tree-ssa-operands.c re PR tree-optimization/41490 (tree-ssa-sink does not really work) 2011-03-15 11:09:09 +00:00
tree-ssa-operands.h utils.c (init_gnat_to_gnu): Use typed GC allocation. 2010-06-08 07:25:24 +00:00
tree-ssa-phiopt.c re PR middle-end/48270 (New test failures) 2011-03-24 14:39:36 +00:00
tree-ssa-phiprop.c re PR middle-end/45310 (ICE: verify_stmts failed: Dead STMT in EH table with -O1 -fnon-call-exceptions) 2010-12-21 15:02:02 +00:00
tree-ssa-pre.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree-ssa-propagate.c re PR middle-end/46360 (ICE in release_defs, at tree-ssanames.c:313) 2010-11-09 12:54:32 +01:00
tree-ssa-propagate.h tree-ssa-propagate.h (struct prop_value_d, [...]): Move ... 2010-08-04 12:29:48 +00:00
tree-ssa-reassoc.c re PR tree-optimization/46494 (ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-fre -ftree-vrp) 2011-02-14 17:59:10 +00:00
tree-ssa-sccvn.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree-ssa-sccvn.h re PR tree-optimization/47615 (ICE: too deep recursion in phi_translate/phi_translate_1 with -ftree-pre -fno-tree-fre -fno-tree-sra) 2011-02-07 16:58:17 +00:00
tree-ssa-sink.c re PR c/48146 (ICE tree check: expected ssa_name, have var_decl in has_zero_uses, at tree-flow-inline.h:342) 2011-03-16 12:41:08 +00:00
tree-ssa-structalias.c tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8. 2011-02-10 15:29:52 +00:00
tree-ssa-ter.c re PR inline-asm/23200 (rejects "i"(&var + 1)) 2011-02-04 16:50:51 +01:00
tree-ssa-threadedge.c tree-ssa-threadupdate.c (redirect_edges): Call create_edge_and_update_destination_phis as needed. 2011-03-28 12:33:42 -06:00
tree-ssa-threadupdate.c tree-ssa-threadupdate.c (redirect_edges): Call create_edge_and_update_destination_phis as needed. 2011-03-28 12:33:42 -06:00
tree-ssa-uncprop.c gimplify.c: Do not include except.h and optabs.h. 2010-06-01 22:00:56 +00:00
tree-ssa-uninit.c Fix pr47837 2011-03-15 18:15:01 +00:00
tree-ssa.c tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. 2011-03-25 15:05:00 +00:00
tree-ssanames.c re PR debug/47106 (-fcompare-debug failure (length) with -fpartial-inlining -flto -fconserve-stack) 2011-02-15 18:36:31 +00:00
tree-stdarg.c tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF. 2011-03-23 16:02:30 +00:00
tree-stdarg.h
tree-switch-conversion.c system.h: Include "safe-ctype.h" instead of <safe-ctype.h>. 2010-11-29 14:09:41 +00:00
tree-tailcall.c re PR tree-optimization/41490 (tree-ssa-sink does not really work) 2011-03-15 11:09:09 +00:00
tree-vect-data-refs.c tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. 2011-03-28 08:40:49 +00:00
tree-vect-generic.c re PR tree-optimization/47639 (ICE: verify_stmts failed: statement marked for throw, but doesn't with -fstack-check=generic -fexceptions -fnon-call-exceptions) 2011-02-08 14:16:50 +00:00
tree-vect-loop-manip.c re PR debug/46931 (Subversion id 167184 breaks building perlbench on power7 with debug) 2010-12-28 20:20:29 +00:00
tree-vect-loop.c gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not a valid RHS. 2011-03-22 11:12:57 +00:00
tree-vect-patterns.c gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not a valid RHS. 2011-03-22 11:12:57 +00:00
tree-vect-slp.c Fix PR47002: memory leaks. 2010-12-23 16:25:52 +00:00
tree-vect-stmts.c tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. 2011-03-28 08:40:49 +00:00
tree-vectorizer.c common.opt (user_vect_verbosity_level): New Variable entry. 2010-11-24 13:28:38 +00:00
tree-vectorizer.h tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. 2011-03-28 08:40:49 +00:00
tree-vrp.c re PR tree-optimization/46562 (CCP currently needs iteration for &a[i]) 2011-03-24 11:23:29 +00:00
tree.c Changelog c-family/ 2011-03-25 20:20:52 +01:00
tree.def re PR other/47395 (the tree code WIDEN_MULT_MINUS_EXPR has a mismatching name) 2011-01-21 14:14:12 +00:00
tree.h ChangeLog gcc/ 2011-03-25 11:28:12 +01:00
treestruct.def Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
tsystem.h
typeclass.h
unwind-c.c
unwind-compat.c
unwind-compat.h
unwind-dw2-fde-compat.c
unwind-dw2-fde-darwin.c only use _darwin10_Unwind_FindEnclosingFunction on darwin >= 10 2010-08-17 14:54:10 +00:00
unwind-dw2-fde-glibc.c configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for --eh-frame-hdr. 2010-12-23 12:08:21 +00:00
unwind-dw2-fde.c
unwind-dw2-fde.h
unwind-dw2.c unwind-dw2.c: Include sys/sdt.h if it exists. 2011-03-14 19:47:58 +00:00
unwind-dw2.h
unwind-generic.h
unwind-pe.h
unwind-sjlj.c
unwind.inc
value-prof.c * value-prof.c (check_counter): Corrected error message. 2011-01-29 03:54:56 +00:00
value-prof.h Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
var-tracking.c re PR debug/48203 (ICE in dwarf2out.c while building eglibc.) 2011-03-29 01:53:46 +02:00
varasm.c re PR middle-end/46790 (EH failures in libstdc++ testsuite with --gc-sections and GNU ld 2.18) 2011-02-28 16:36:37 +01:00
varpool.c re PR middle-end/31490 (Compile error section type conflict) 2011-02-03 20:12:07 +01:00
vec.c Update Copyright years for files modified in 2010. 2011-01-03 21:52:22 +01:00
vec.h vec.h (VEC_qsort): Define. 2010-10-11 15:08:28 +00:00
vecir.h
vecprim.h
version.c
version.h
vmsdbg.h Committed as obvious. 2010-06-29 19:04:12 +00:00
vmsdbgout.c emit-rtl.c (try_split): Don't call copy_call_info debug hook. 2011-03-16 09:40:07 +01:00
web.c re PR rtl-optimization/47763 (Useless initialization of register) 2011-02-23 00:25:34 +00:00
xcoff.h
xcoffout.c re PR target/46655 (invalid '.line 0' directive emitted with -g) 2011-01-17 12:35:21 +00:00
xcoffout.h

README.Portability

Copyright (C) 2000, 2003 Free Software Foundation, Inc.

This file is intended to contain a few notes about writing C code
within GCC so that it compiles without error on the full range of
compilers GCC needs to be able to compile on.

The problem is that many ISO-standard constructs are not accepted by
either old or buggy compilers, and we keep getting bitten by them.
This knowledge until know has been sparsely spread around, so I
thought I'd collect it in one useful place.  Please add and correct
any problems as you come across them.

I'm going to start from a base of the ISO C90 standard, since that is
probably what most people code to naturally.  Obviously using
constructs introduced after that is not a good idea.

For the complete coding style conventions used in GCC, please read
http://gcc.gnu.org/codingconventions.html


String literals
---------------

Irix6 "cc -n32" and OSF4 "cc" have problems with constant string
initializers with parens around it, e.g.

const char string[] = ("A string");

This is unfortunate since this is what the GNU gettext macro N_
produces.  You need to find a different way to code it.

Some compilers like MSVC++ have fairly low limits on the maximum
length of a string literal; 509 is the lowest we've come across.  You
may need to break up a long printf statement into many smaller ones.


Empty macro arguments
---------------------

ISO C (6.8.3 in the 1990 standard) specifies the following:

If (before argument substitution) any argument consists of no
preprocessing tokens, the behavior is undefined.

This was relaxed by ISO C99, but some older compilers emit an error,
so code like

#define foo(x, y) x y
foo (bar, )

needs to be coded in some other way.


free and realloc
----------------

Some implementations crash upon attempts to free or realloc the null
pointer.  Thus if mem might be null, you need to write

  if (mem)
    free (mem);


Trigraphs
---------

You weren't going to use them anyway, but some otherwise ISO C
compliant compilers do not accept trigraphs.


Suffixes on Integer Constants
-----------------------------

You should never use a 'l' suffix on integer constants ('L' is fine),
since it can easily be confused with the number '1'.


			Common Coding Pitfalls
			======================

errno
-----

errno might be declared as a macro.


Implicit int
------------

In C, the 'int' keyword can often be omitted from type declarations.
For instance, you can write

  unsigned variable;

as shorthand for

  unsigned int variable;

There are several places where this can cause trouble.  First, suppose
'variable' is a long; then you might think

  (unsigned) variable

would convert it to unsigned long.  It does not.  It converts to
unsigned int.  This mostly causes problems on 64-bit platforms, where
long and int are not the same size.

Second, if you write a function definition with no return type at
all:

  operate (int a, int b)
  {
    ...
  }

that function is expected to return int, *not* void.  GCC will warn
about this.

Implicit function declarations always have return type int.  So if you
correct the above definition to

  void
  operate (int a, int b)
  ...

but operate() is called above its definition, you will get an error
about a "type mismatch with previous implicit declaration".  The cure
is to prototype all functions at the top of the file, or in an
appropriate header.

Char vs unsigned char vs int
----------------------------

In C, unqualified 'char' may be either signed or unsigned; it is the
implementation's choice.  When you are processing 7-bit ASCII, it does
not matter.  But when your program must handle arbitrary binary data,
or fully 8-bit character sets, you have a problem.  The most obvious
issue is if you have a look-up table indexed by characters.

For instance, the character '\341' in ISO Latin 1 is SMALL LETTER A
WITH ACUTE ACCENT.  In the proper locale, isalpha('\341') will be
true.  But if you read '\341' from a file and store it in a plain
char, isalpha(c) may look up character 225, or it may look up
character -31.  And the ctype table has no entry at offset -31, so
your program will crash.  (If you're lucky.)

It is wise to use unsigned char everywhere you possibly can.  This
avoids all these problems.  Unfortunately, the routines in <string.h>
take plain char arguments, so you have to remember to cast them back
and forth - or avoid the use of strxxx() functions, which is probably
a good idea anyway.

Another common mistake is to use either char or unsigned char to
receive the result of getc() or related stdio functions.  They may
return EOF, which is outside the range of values representable by
char.  If you use char, some legal character value may be confused
with EOF, such as '\377' (SMALL LETTER Y WITH UMLAUT, in Latin-1).
The correct choice is int.

A more subtle version of the same mistake might look like this:

  unsigned char pushback[NPUSHBACK];
  int pbidx;
  #define unget(c) (assert(pbidx < NPUSHBACK), pushback[pbidx++] = (c))
  #define get(c) (pbidx ? pushback[--pbidx] : getchar())
  ...
  unget(EOF);

which will mysteriously turn a pushed-back EOF into a SMALL LETTER Y
WITH UMLAUT.


Other common pitfalls
---------------------

o Expecting 'plain' char to be either sign or unsigned extending.

o Shifting an item by a negative amount or by greater than or equal to
  the number of bits in a type (expecting shifts by 32 to be sensible
  has caused quite a number of bugs at least in the early days).

o Expecting ints shifted right to be sign extended.

o Modifying the same value twice within one sequence point.

o Host vs. target floating point representation, including emitting NaNs
  and Infinities in a form that the assembler handles.

o qsort being an unstable sort function (unstable in the sense that
  multiple items that sort the same may be sorted in different orders
  by different qsort functions).

o Passing incorrect types to fprintf and friends.

o Adding a function declaration for a module declared in another file to
  a .c file instead of to a .h file.