Commit Graph

107538 Commits

Author SHA1 Message Date
Joseph Myers aa53e58b92 sparc-opts.h: New.
* config/sparc/sparc-opts.h: New.
	* config/sparc/sparc.c (sparc_handle_option, sparc_select,
	sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
	(sparc_option_override): Store processor_type enumeration rather
	than string in cpu_default.  Remove name and enumeration from
	cpu_table.  Directly default -mcpu then default -mtune from -mcpu
	without using sparc_select.  Use target_flags_explicit instead of
	fpu_option_set.
	* config/sparc/sparc.h (enum processor_type): Move to
	sparc-opts.h.
	(sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
	* config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
	HeaderInclude entry.
	(mcpu=, mtune=): Use Var and Enum.
	(sparc_processor_type): New Enum and EnumValue entries.

From-SVN: r171601
2011-03-28 12:25:53 +01:00
John Marino 8c6d158ae2 configure.ac: Add support for *-*-dragonfly*
* configure.ac: Add support for *-*-dragonfly*
	* configure: Regenerate.

From-SVN: r171600
2011-03-28 11:21:17 +00:00
Kai Tietz 333d8affda Makefile.in (SO_LIB): Handle multilib build for native windows targets.
2011-03-28  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
        windows targets.
        (EH_MECHANISM): Make sure we use gcc's exception mechanism for all
        native windows target.
        * system-mingw.ads (System): Change ZCX_By_Default default to
        True.

From-SVN: r171599
2011-03-28 13:07:00 +02:00
Rainer Orth dd350eba53 re PR testsuite/48245 (FAIL: gcc.dg/lto/pr46940 c_lto_pr46940_0.o assemble on *-apple-darwin*)
PR target/48245
	* config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.

Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org>

From-SVN: r171598
2011-03-28 11:06:58 +00:00
Kai Tietz 2438d7a61f raise-gcc.c (PERSONALITY_FUNCTION): Add prototype to prevent warning.
2011-03-28  Kai Tietz  <ktietz@redhat.com>

	* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype to
	prevent warning.

From-SVN: r171594
2011-03-28 12:00:42 +02:00
Tristan Gingold 8ad150f6cc re PR ada/44431 ([boot with C++] Conflicting exit declaration in ada/b_gnatb.c)
2011-03-28  Tristan Gingold  <gingold@adacore.com>

	PR ada/44431
	* gcc-interface/Make-lang.in (ada/b_gnat1.adb):  Replaces
	ada/b_gnat1.c. Use ada output of gnatbind.
	(ada/b_gnatb.adb): Ditto.
	(ada/b_gnat1.o, ada/b_gnatb.o): New rules.
	(ada.mostlyclean, ada.stage1)
	(ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
	(ada.stagefeedback): Adjust.

	* gcc-interface/Makefile.in (b_gnatl.adb): Replaces b_gnatl.c
	Use ada output of gnatbind.
	(b_gnatm.adb): Ditto.
	(b_gnatl.o, b_gnatm.o): New rules.

From-SVN: r171593
2011-03-28 09:49:10 +00:00
Eric Botcazou 1b29f05e56 tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
* tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
	Insert new statements at it in lieu of STMT.
	(vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
	* tree-vect-stmts.c (vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

From-SVN: r171592
2011-03-28 08:40:49 +00:00
Uros Bizjak 506e68087a alpha.md (addtf3): Change mode of operands to TFmode.
* config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
	(divtf3): Ditto.
	(multf3): Ditto.
	(subtf3): Ditto.

From-SVN: r171591
2011-03-28 09:22:56 +02:00
H.J. Lu 2e939ee970 Don't assert unaligned 256bit load/store.
2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
	unaligned 256bit load/store.
	(*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
	(*avx_movdqu<avxmodesuffix>): Likewise.

From-SVN: r171590
2011-03-27 19:49:34 -07:00
Vladimir Makarov 99710245be re PR bootstrap/48307 (Bootstrap failure)
2011-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/48307
	Revert the previous patch.

From-SVN: r171589
2011-03-28 01:53:24 +00:00
GCC Administrator 0854e22029 Daily bump.
From-SVN: r171588
2011-03-28 00:19:14 +00:00
Vladimir Makarov fe82cdfb59 [multiple changes]
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
2011-03-27 23:16:35 +00:00
John David Anglin 5e85ab88f1 re PR target/48288 (ld: Unsatisfied symbol "__iordi3" in file /test/gnu/gcc/objdir/./gcc/libgcc_eh.a)
PR target/48288
	* config/pa/predicates.md (reg_or_ior_operand): New predicate.
	* config/pa/pa.md (iordi3): Use new predicate in expander.
	(iorsi3): Likewise.

From-SVN: r171582
2011-03-27 22:09:36 +00:00
Anatoly Sokolov 47be3d6d5c mips.h (LIBCALL_VALUE, [...]): Remove macros.
* config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove macros.
        * config/mips/mips-protos.h (mips_function_value): Remove.
        * config/mips/mips.c (mips_function_value): Rename to...
	(mips_function_value_1): ... this. Make static.  Handle receiving
	the function type in 'fn_decl_or_type' argument.
	(mips_function_value, mips_libcall_value,
	mips_function_value_regno_p): New function.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.

From-SVN: r171580
2011-03-27 23:43:13 +04:00
Ian Lance Taylor c29301d6b1 Add runtime profiling infrastructure, not yet working.
From-SVN: r171579
2011-03-27 19:14:55 +00:00
H.J. Lu d253656a7b Split 32-byte AVX unaligned load/store.
gcc/

2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
	and -mavx256-split-unaligned-store.
	(ix86_option_override_internal): Split 32-byte AVX unaligned
	load/store by default.
	(ix86_avx256_split_vector_move_misalign): New.
	(ix86_expand_vector_move_misalign): Use it.

	* config/i386/i386.opt: Add -mavx256-split-unaligned-load and
	-mavx256-split-unaligned-store.

	* config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
	256bit load/store.  Generate unaligned store on misaligned memory
	operand.
	(*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
	256bit load/store.
	(*avx_movdqu<avxmodesuffix>): Likewise.

	* doc/invoke.texi: Document -mavx256-split-unaligned-load and
	-mavx256-split-unaligned-store.

gcc/testsuite/

2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/avx256-unaligned-load-1.c: New.
	* gcc.target/i386/avx256-unaligned-load-2.c: Likewise.
	* gcc.target/i386/avx256-unaligned-load-3.c: Likewise.
	* gcc.target/i386/avx256-unaligned-load-4.c: Likewise.
	* gcc.target/i386/avx256-unaligned-load-5.c: Likewise.
	* gcc.target/i386/avx256-unaligned-load-6.c: Likewise.
	* gcc.target/i386/avx256-unaligned-load-7.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-1.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-2.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-3.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-4.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-5.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-6.c: Likewise.
	* gcc.target/i386/avx256-unaligned-store-7.c: Likewise.

From-SVN: r171578
2011-03-27 11:56:00 -07:00
Ian Lance Taylor c570af00f6 Remove closedchan function.
From-SVN: r171577
2011-03-27 18:06:50 +00:00
Ian Lance Taylor 4e90195a62 Error for return with no values when result parameters are not named.
From-SVN: r171576
2011-03-27 17:52:34 +00:00
Thomas Koenig 7e3b6543e0 re PR fortran/47065 (Replace trim(a) by a(1:len_trim(a)))
2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47065
	* frontend-passes (optimize_trim): Also follow references, except
	when they are substring references or array references.

2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/47065
	* gfortran.dg/trim_optimize_5.f90:  New test.
	* gfortran.dg/trim_optimize_6.f90:  New test.

From-SVN: r171575
2011-03-27 17:40:26 +00:00
Ian Lance Taylor 15ea09a082 Improve error about indirecting an unsafe.Pointer type.
From-SVN: r171574
2011-03-27 16:40:24 +00:00
Eric Botcazou fbe185d3de Fix typo
From-SVN: r171573
2011-03-27 09:43:06 +00:00
Richard Sandiford 1ea9206ac5 re PR target/38598 (MIPS extendsidi2 does not have a LO alternative)
gcc/
	PR target/38598
	* config/mips/mips.md (extendsidi2): Add an "l" alternative.
	Update commentary.

gcc/testsuite/
	PR target/38598
	* gcc.target/mips/madd-7.c: Remove -mlong32.
	* gcc.target/mips/msub-7.c: Likewise.

From-SVN: r171572
2011-03-27 09:33:20 +00:00
Richard Sandiford b99ce2a8b9 mips.c (mips_prepare_builtin_arg): Replace icode and opno arguments with an expand_operand.
gcc/
	* config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
	opno arguments with an expand_operand.  Use create_input_operand.
	(mips_prepare_builtin_target): Delete.
	(mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
	functions.
	(mips_expand_builtin_direct): Use create_output_operand and
	mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
	(mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
	(mips_expand_builtin_compare): Use mips_expand_fp_comparison.

From-SVN: r171571
2011-03-27 09:11:15 +00:00
Tobias Burnus 5092eb960c re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * caf/libcaf.h: New - coarray communication library.
        * caf/mpi.c: New.
        * caf/single.c: New.

From-SVN: r171570
2011-03-27 11:01:34 +02:00
Ira Rosen 69d523395b arm.c (arm_autovectorize_vector_sizes): New function.
* config/arm/arm.c (arm_autovectorize_vector_sizes): New
        function.
        (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.

From-SVN: r171569
2011-03-27 08:59:10 +00:00
Tobias Burnus 60386f50ce re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
        GFC_ISYM_NUM_IMAGES.
        (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
        * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
        rename.
        * invoke.texi (-fcoarray=): Document "lib" argument.
        * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
        * libgfortran.h (libgfortran_stat_codes): Add comments.
        * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
        * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
        Handle GFC_FCOARRAY_LIB.
        * trans.h (gfc_init_coarray_decl): New prototype.
        (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
        gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
        gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
        gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
        gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
        New global variables.
        * trans-decl.c: Declare several CAF functions (cf. above).
        (gfc_build_builtin_function_decls): Initialize those.
        (gfc_init_coarray_decl): New function.
        (create_main_function): Call CAF init/finalize functions.
        * trans-intrinsic.c (trans_this_image, trans_num_images): New.
        (gfc_conv_intrinsic_function): Call those.
        * trans-stmt.c (gfc_trans_stop, gfc_trans_sync,
        * gfc_trans_critical):
        Add code for GFC_FCOARRAY_LIB.

From-SVN: r171568
2011-03-27 10:30:28 +02:00
GCC Administrator 46ae608f26 Daily bump.
From-SVN: r171567
2011-03-27 00:18:09 +00:00
Ian Lance Taylor 08b4fa8a7b Don't look up methods for pointer to interface.
From-SVN: r171562
2011-03-26 19:04:54 +00:00
Janus Weil cb83a137db re PR fortran/48291 ([OOP] internal compiler error, new_symbol(): Symbol name too long)
2011-03-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48291
	* class.c (get_unique_hashed_string): Adjust maximum allowable length
	for unique type string.

2011-03-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48291
	* gfortran.dg/class_42.f03: New.

From-SVN: r171559
2011-03-26 19:39:14 +01:00
Ian Lance Taylor f7b8b261e7 Don't permit embedded field to be pointer to interface.
From-SVN: r171558
2011-03-26 18:31:36 +00:00
Ira Rosen 84b4e06188 vect-cselim-1.c: Fail on targets that don't support strided accesses.
* gcc.dg/vect/vect-cselim-1.c: Fail on targets that don't
        support strided accesses.

From-SVN: r171557
2011-03-26 17:25:26 +00:00
Eric Botcazou ba5e9aca86 basic-block.h (fixup_abnormal_edges): Adjust prototype.
* basic-block.h (fixup_abnormal_edges): Adjust prototype.
	* reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
	basic blocks and call commit_edge_insertions directly.
	(fixup_abnormal_edges): Move from here to...
	* cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
	on the edges and return whether some have actually been inserted.
	* reg-stack.c (convert_regs): Fix up abnormal edges before inserting
	compensation code.

From-SVN: r171556
2011-03-26 13:03:46 +00:00
Andrey Belevantsev 5d369d5836 re PR rtl-optimization/48144 (ICE: in code_motion_path_driver, at sel-sched.c:6575 with -fselective-scheduling2 and custom flags)
PR rtl-optimization/48144
    * sel-sched-ir.c (merge_history_vect): Factor out from ...
    (merge_expr_data): ... here.
    (av_set_intersect): Rename to av_set_code_motion_filter.
    Update all callers.  Call merge_history_vect when an expression
    is found in both sets.
    * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.

    gcc/testsuite
    PR rtl-optimization/48144
    * gcc.dg/pr48144.c: New test.

From-SVN: r171555
2011-03-26 14:40:51 +03:00
Eric Botcazou 51c7954daf decl.c (gnat_to_gnu_entity): Create TYPE_DECL for the padded type built to support a specified size or alignment.
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
	for the padded type built to support a specified size or alignment.

From-SVN: r171554
2011-03-26 10:18:54 +00:00
Eric Botcazou 6ddf984362 gigi.h (finalize_from_with_types): Adjust comment.
* gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
	unconditionally to the end of the unit when the designated type is
	limited_with'ed.
	<all>: Rename local variable.  Attempt to un-defer types only and do it
	for limited_with'ed types as well.
	(finalize_from_with_types): Adjust comment.  Rename variable and tidy.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
	consistently and remove redundant call to finalize_from_with_types.

From-SVN: r171552
2011-03-26 09:55:04 +00:00
Eric Botcazou 5daed84a54 inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to subprograms without a previous spec declared in...
* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
	subprograms without a previous spec declared in the same unit.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
	subprograms at the end of the unit instead of at the beginning.
	* gcc-interface/utils.c (create_subprog_decl): Check that the entity
	isn't public for the special handling of non-inline functions nested
	inside inline external functions.

From-SVN: r171551
2011-03-26 09:34:40 +00:00
Ian Lance Taylor 530f4f437a Check for invalid uses of ... in builtin function calls.
From-SVN: r171544
2011-03-26 06:06:36 +00:00
Alan Modra f082c00037 predicates.md (word_offset_memref_op): Handle cmodel medium addresses.
* config/rs6000/predicates.md (word_offset_memref_op): Handle
	cmodel medium addresses.
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
	64-bit gpr loads and stores.
	(rs6000_secondary_reload_ppc64): New function.
	* config/rs6000/rs6000-protos.h: Declare it.
	* config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.

From-SVN: r171542
2011-03-26 16:16:00 +10:30
Ian Lance Taylor 2fbb4d751b Better error when setting const to nil.
From-SVN: r171541
2011-03-26 05:45:31 +00:00
Ian Lance Taylor e2e5c70f5c Correctly parse select case <-c <- v.
From-SVN: r171540
2011-03-26 05:32:46 +00:00
Alan Modra 8ac5e12e5f re PR target/47487 (ICE in rs6000_output_function_epilogue, at config/rs6000/rs6000.c:21782 building 64bit libgo)
PR target/47487
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
	GNU Go in traceback table.

From-SVN: r171538
2011-03-26 12:04:14 +10:30
GCC Administrator a8ecf8dd20 Daily bump.
From-SVN: r171537
2011-03-26 00:19:05 +00:00
Richard Henderson c2654dede7 expr.c (emit_block_move_via_movmem): Only use 6 operand variant if there are exactly 6 operands.
* expr.c (emit_block_move_via_movmem): Only use 6 operand variant
        if there are exactly 6 operands.
        (set_storage_via_setmem): Similarly.

From-SVN: r171532
2011-03-25 16:17:26 -07:00
Jonathan Wakely e3e08a1db5 future (future::share): Add.
2011-03-25  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/future (future::share): Add.
	(packaged_task::result_type): Remove as per LWG 2030.
	(packaged_task::packaged_task): Remove redundant constructors, as per
	LWG 1514.
	* testsuite/30_threads/future/members/share.cc: New.
	* testsuite/30_threads/packaged_task/requirements/typedefs.cc: Remove.

From-SVN: r171531
2011-03-25 23:16:09 +00:00
Jonathan Wakely 4be2a08168 default.cc: Do not call members which require a fully established result state.
2011-03-25  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* testsuite/28_regex/match_results/ctors/char/default.cc: Do not call
	members which require a fully established result state.
	* testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.

From-SVN: r171530
2011-03-25 22:50:47 +00:00
Ian Lance Taylor 02ed921acb Clean up handling of undefined types.
From-SVN: r171528
2011-03-25 20:42:20 +00:00
Jakub Jelinek cf3b308055 printf_fp.c (__quadmath_printf_fp): Use memcpy instead of mempcpy.
* printf/printf_fp.c (__quadmath_printf_fp): Use memcpy instead of
	mempcpy.

From-SVN: r171525
2011-03-25 21:12:37 +01:00
Ian Lance Taylor 7657ab90b4 Avoid overflow error after negative shift count error.
From-SVN: r171523
2011-03-25 19:23:10 +00:00
Kai Tietz ba78087b6c Changelog c-family/
2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* c-ada-spec.c (compare_comment): Use filename_cmp
	instead of strcmp for filename.


Changelog fortran/

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* scanner.c (preprocessor_line): Use filename_cmp
	instead of strcmp.

Changelog gcc/

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* collect2.c (write_c_file_stat): Handle backslash
	as right-hand directory separator.
	(resolve_lib_name): Use IS_DIR_SEPARATOR instead of
	checking just for slash.
	* coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
	instead of checking for trailing slash.
	* gcc.c (record_temp_file): Use filename_cmp instead
	of strcmp.
	(do_spec_1): Likewise.
	(replace_outfile_spec_function): Likewise.
	(is_directory): Use filename_ncmp instead of strncmp.
	(print_multilib_info): Likewise.
	* gcov.c (find_source): Use filename_cmp instead
	instead of strcmp.
	(make_gcov_file_name): Fix order of slash/backslash
	checks.
	* incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
	(add_standard_paths): Likewise.
	* mips-tfile.c (saber_stop): Handle backslash.
	* prefix.c (update_path): Use filename_ncmp instead of
	strncmp.
	* profile.c (output_location): Use filename_cmp instead
	of strcmp.
	* read-md.c (handle_toplevel_file): Handle backslash.
	* tlink.c (frob_extension):  Likewise.
	* tree-cfg.c (same_line_p): Use filename_cmp instead of
	strcmp.
	* tree-dump.c (dequeue_and_dump): Handle backslash.
	* tree.c (get_file_function_name): Likewise.
	* gengtype.c (read_input_list): Likewise.
	(get_file_realbasename): Likewise.
	(get_output_file_with_visibility): Use filename_cmp
	instead of strcmp.

ChangeLog java/

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* jcf-parse.c (java_read_sourcefilenames): Use filename_cmp
	instead of strcmp.
	(set_source_filename): Likewise.
	* win32-host.c (jcf_open_exact_case): Likewise.

ChangeLog lto/

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* lto.c (lto_resolution_read): Use filename_cmp instead
	of strcmp.
	(lto_read_section_data): Likewise.


ChangeLog cp/

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* lex.c (interface_strcmp): Handle dos-paths.
	(handle_pragma_implementation): Use filename_cmp instead of
	strcmp.
	(in_main_input_context): Likewise.

From-SVN: r171522
2011-03-25 20:20:52 +01:00
Kai Tietz 4489800d00 files.c (file_hash_eq): Use filename_cmp instead of strcmp.
2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* files.c (file_hash_eq): Use filename_cmp
	instead of strcmp.
	(nonexistent_file_hash_eq): Likewise.
	(remap_filename): Likewise.
	Handle absolute DOS-path,
	(append_file_to_dir): Check for IS_DIR_SEPARATOR
	instead of slash.
	(read_name_map): Likewise.
	* linemap.c (linemap_add): Use filename_cmp
	instead of strcmp.
	* mkdeps.c (apply_vpath): Use filename_ncmp
	instead of strncmp.
	(deps_restore): Use filename_cmp instead of
	strcmp.
	* init.c (read_original_directory): Use
	IS_DIR_SEPARATOR instead of checking for slash.

From-SVN: r171521
2011-03-25 20:11:26 +01:00