Commit Graph

102169 Commits

Author SHA1 Message Date
Sebastian Pop
9773d730e9 Run rewrite_cross_bb_phi_deps before rewrite_cross_bb_scalar_deps.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
	(rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
	before rewrite_cross_bb_scalar_deps.

From-SVN: r163126
2010-08-11 20:25:34 +00:00
Sebastian Pop
cc58897078 Early return in rewrite_commutative_reductions_out_of_ssa when flag_associative_math is not set.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
	Early return in when flag_associative_math is not set.

From-SVN: r163125
2010-08-11 20:25:27 +00:00
Sebastian Pop
3d1254793b Fix testcase: call abort.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/run-id-2.c: Call abort.

From-SVN: r163124
2010-08-11 20:25:18 +00:00
Sebastian Pop
4aa9a16727 Always insert out of SSA copies on edges except for loop->latch.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
	of SSA copies on edges except for loop->latch.

From-SVN: r163123
2010-08-11 20:25:11 +00:00
Sebastian Pop
ee646fc62b Split rewrite_cross_bb_scalar_deps_out_of_ssa out from rewrite_reductions_out_of_ssa.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Split out of rewrite_reductions_out_of_ssa.
	* graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Declared.
	* graphite.c (graphite_transform_loops): Call it.

From-SVN: r163122
2010-08-11 20:25:02 +00:00
Sebastian Pop
6a7441f5be Add more debug counter guards.
2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.

From-SVN: r163121
2010-08-11 20:24:55 +00:00
Sebastian Pop
d4332d0017 Schedule a copy_prop pass before graphite.
2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Add pass_graphite.
	Schedule a pass_copy_prop before pass_graphite_transforms.
	* timevar.def (TV_GRAPHITE): Declared.
	* tree-pass.h (pass_graphite): Declared.
	* tree-ssa-loop.c (pass_graphite): New.

	* gcc.dg/graphite/id-20.c: New.

From-SVN: r163120
2010-08-11 20:24:47 +00:00
Sebastian Pop
14d0e129cc Remove rename_nb_iterations and rename_sese_parameters
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
	Remove calls to rename_nb_iterations and rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite.c (graphite_transform_loops): Update call to gloog.
	* sese.c (rename_variables_in_expr): Removed.
	(rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.
	* sese.h (rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.

From-SVN: r163119
2010-08-11 20:24:38 +00:00
Sebastian Pop
d1ba0721a1 Also rewrite out of SSA scalar dependences going outside the SCoP region.
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Remove call to
	sese_adjust_liveout_phis.
	* graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
	SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
	rewrite_phi_out_of_ssa.
	* sese.c (get_vdef_before_sese): Removed.
	(sese_adjust_vphi): Removed.
	(sese_adjust_liveout_phis): Removed.
	* sese.h (sese_adjust_liveout_phis): Removed.

From-SVN: r163118
2010-08-11 20:24:30 +00:00
Sebastian Pop
5fed5769e4 Remove insert_copyout and insert_copyin.
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
	argument for the place after which to insert the out of SSA copy.
	(rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps): Same.
	(insert_copyout): Removed.
	(insert_copyin): Removed.
	(translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
	insert_out_of_ssa_copy_on_edge instead of insert_copyout and
	insert_copyin.

From-SVN: r163117
2010-08-11 20:24:23 +00:00
Sebastian Pop
3a7086cc51 Detect commutative reductions in all the scops before rewriting out of SSA all the other scalar dependences.
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Do not call these functions.
	* graphite-sese-to-poly.h (build_poly_scop): Declared.
	(rewrite_reductions_out_of_ssa): Declared.
	(rewrite_commutative_reductions_out_of_ssa): Declared.
	* graphite.c (graphite_transform_loops): Call on every scop
	rewrite_commutative_reductions_out_of_ssa before calling
	rewrite_reductions_out_of_ssa and build_scop_bbs.

From-SVN: r163116
2010-08-11 20:24:16 +00:00
Sebastian Pop
61ca46ce9b Launch dotty in background.
2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Make system call to dotty run
	in background.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.

From-SVN: r163115
2010-08-11 20:24:08 +00:00
Sebastian Pop
f5f504800f Don't call pbb_to_depth_to_oldiv from compute_type_for_level.
2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
	old_type in parameter.
	(gcc_type_for_value): Update call to gcc_type_for_interval.
	(compute_type_for_level_1): Renamed compute_type_for_level.
	Update call to gcc_type_for_interval.

From-SVN: r163114
2010-08-11 20:24:00 +00:00
Sebastian Pop
081970eb71 Call compute_overall_effect_of_inner_loop from instantiate_scev_name.
2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): Do not fail
	the scev analysis when the variable is not used outside the loop
	in a close phi node: call compute_overall_effect_of_inner_loop.

From-SVN: r163113
2010-08-11 20:23:53 +00:00
Sebastian Pop
bb17c851c2 Do not gather loop exit conditions on the basic blocks outside the loop.
2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (single_pred_cond): Renamed
	single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
	(build_sese_conditions_before): Renamed call to single_pred_cond.
	(build_sese_conditions_after): Same.

From-SVN: r163112
2010-08-11 20:23:46 +00:00
Sebastian Pop
86e40af75b Fix comments and indentation.
2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h: Fix comments and indentation.
	* graphite-sese-to-poly.c: Same.
	(build_sese_conditions_before): Compute stmt and gbb only when needed.
	* tree-chrec.c: Fix comments and indentation.
	(tree-ssa-loop-niter.c): Same.

From-SVN: r163111
2010-08-11 20:23:39 +00:00
Tobias Grosser
5599dea7db Fix refined region tree nesting.
2010-06-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* refined-regions.c (create_region): Only initialize the region.
	(find_regions_with_entry): Initialize parent relation and bbmap
	correctly.
	(build_regions_tree): Set outermost_region to region instead of
	topmost_region.
	(calculate_region_tree): Remove unneeded parameters.

From-SVN: r163110
2010-08-11 20:23:33 +00:00
Tobias Grosser
2a6909ecb3 Skeleton for the new SCoP detection.
2010-06-02  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (is_scop_p): New.
	(build_scops_new): New. A skeleton for the new scop detection.
	(build_scops_old): Renamed from build_scops.
	(build_scops): New version. Call the new and the old scop
	detection.

From-SVN: r163109
2010-08-11 20:23:26 +00:00
Tobias Grosser
25c57e8357 Add analysis pass to build the refined program structure tree.
The hash table utility functions are copied and adapted from code
Antoniu contributed.

2010-05-27  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Antoniu Pop  <antoniu.pop@gmail.com>

	* Makefile.in (OBJS-common): Add refined-regions.o.
	(refined-regions.o): New.
	(graphite-scop-detection.o): Use refined-regions.h.
	* graphite-scop-detection.c: Include refined-regions.h
	(build_scops): Also build the refined region tree.
	* refined-regions.c: New. Adds an algorithm to detect refined
	regions.
	(print_refined_region): New.
	(debug_refined_region): New.
	(refined_region_contains_bb_p): New.
	(refined_region_contains_region_p): New.
	(is_common_df): New.
	(struct find_regions_global_data): New.
	(is_region): New.
	(typedef struct bb_bb_def): New.
	(new_bb_bb_def): New.
	(bb_bb_map_hash): New.
	(eq_bb_bb_map): New.
	(find_new_bb): New.
	(bb_reg_def): New.
	(new_bb_reg_def): New.
	(bb_reg_map_hash): New.
	(eq_bb_reg_map): New.
	(find_new_region): New.
	(insert_new_reg): New.
	(insert_new_bb): New.
	(insert_shortcut): New.
	(get_next_postdom): New.
	(create_region): New.
	(find_regions_with_entry): New.
	(find_regions_adc): New.
	(find_regions): New.
	(get_topmost_parent): New.
	(build_regions_tree): New.
	(calculate_region_tree): New.
	(free_region_tree): New.
	* refined-regions.h: New.
	(struct refined_region): New.
	(calculate_region_tree): New.
	(free_region_tree): New.
	(refined_region_contains_bb_p): New.
	(refined_region_contains_region_p): New.
	(print_refined_region): New.
	(debug_refined_region): New.

From-SVN: r163108
2010-08-11 20:23:19 +00:00
Sebastian Pop
8c131b3b21 Use size_one_node.
2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	size_one_node.

From-SVN: r163107
2010-08-11 20:23:11 +00:00
Sebastian Pop
d91949fa34 Fix type of integer_one_node for fold_build of POINTER_PLUS_EXPR.
2010-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Fix
	type of integer_one_node for fold_build of POINTER_PLUS_EXPR.

From-SVN: r163106
2010-08-11 20:23:04 +00:00
Sebastian Pop
159e461678 Fix invariant phi node removal.
2010-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
	phi_arg_in_outermost_loop.
	(remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
	(remove_invariant_phi): Same.

From-SVN: r163105
2010-08-11 20:22:57 +00:00
Anatoly Sokolov
6cbd887583 target.def (output_addr_const_extra): New hook.
* target.def (output_addr_const_extra): New hook.
	* doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_asm_output_addr_const_extra): New function.
	* targhooks.h (default_asm_output_addr_const_extra): Declare.
	* final.c: (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
	target hook.

	* config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/i386/i386-protos.h (output_addr_const_extra): Remove.
	* config/i386/i386.h (output_addr_const_extra): Rename to...
	(i386_asm_output_addr_const_extra): ...this. Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

From-SVN: r163104
2010-08-11 23:52:46 +04:00
Richard Henderson
51ba747afc * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
From-SVN: r163103
2010-08-11 11:40:45 -07:00
Paolo Carlini
633e8e192b stl_algo.h (shuffle): Change signature consistently with random_shuffle (US 121).
2010-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_algo.h (shuffle): Change signature consistently
	with random_shuffle (US 121).
	* include/bits/algorithmfwd.h: Adjust.
	* testsuite/25_algorithms/shuffle/requirements/
	explicit_instantiation/2.cc: Likewise.
	* testsuite/25_algorithms/shuffle/requirements/
	explicit_instantiation/pod.cc: Likewise.

From-SVN: r163102
2010-08-11 17:10:04 +00:00
Paolo Carlini
4c7aaebf4d move.h (forward): Reinstate the N2835 version.
2010-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/move.h (forward): Reinstate the N2835 version.

From-SVN: r163101
2010-08-11 16:55:33 +00:00
Jakub Jelinek
be94d007e6 Fix up a wrong ChangeLog entry:
* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r163099
2010-08-11 15:59:35 +02:00
Nick Clifton
bfd71bc196 stormy16-lib2.c (__cmpsi2): New function.
* config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
        * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
        * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
        stormy16-lib2-cmpsi.c.

        * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
        -O2.

From-SVN: r163097
2010-08-11 11:56:15 +00:00
Janus Weil
c4aa95f885 re PR fortran/44595 (INTENT of arguments to intrinsic procedures not checked)
2010-08-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44595
	* intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
	'gfc_intrinsic_arg'.
	(check_arglist,check_specific): Add reference to 'name' field.
	(init_arglist): Remove reference to 'name' field.
	* intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
	* check.c (variable_check): Reverse order of checks. Respect intent of
	formal arg.
	(int_or_proc_check): New function.
	(coarray_check): New function.
	(allocatable_check): New function.
	(gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
	(gfc_check_complex): Use 'int_or_real_check'.
	(gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
	gfc_check_ucobound): Use 'coarray_check'.
	(gfc_check_pack): Use 'real_or_complex_check'.
	(gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
	'int_or_proc_check'.
	(scalar_check,type_check,numeric_check,int_or_real_check,
	real_or_complex_check,kind_check,double_check,logical_array_check,
	array_check,same_type_check,rank_check,nonoptional_check,
	kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
	gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
	gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
	gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
	gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
	gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
	gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
	to 'name' field.

2010-08-11  Janus Weil  <janus@gcc.gnu.org>
	    Steve Kargl <kargl@gcc.gnu.org>

	PR fortran/44595
	* gfortran.dg/move_alloc_3.f90: New.
	* gfortran.dg/random_seed_2.f90: New.

Co-Authored-By: Steve Kargl <kargl@gcc.gnu.org>

From-SVN: r163096
2010-08-11 12:49:56 +02:00
Joseph Myers
481e1176d7 opts.h (struct cl_option_handler_func): Make handler take cl_decoded_option structure as parameter, not individual elements.
* opts.h (struct cl_option_handler_func): Make handler take
	cl_decoded_option structure as parameter, not individual elements.
	(struct cl_option_handlers): Make callbacks take cl_decoded_option
	structure as parameter, not individual elements.
	(handle_option): Take cl_decoded_option structure as parameter,
	not individual elements.
	(handle_generated_option): Declare.
	* opts-common.c (handle_option): Take cl_decoded_option structure
	as parameter, not individual elements.  Update calls to callback
	and handler functions.
	(handle_generated_option): New.
	(read_cmdline_option): Update calls to callback functions and
	handle_option.
	* opts.c (common_handle_option, complain_wrong_lang,
	unknown_option_callback, post_handling_callback,
	lang_handle_option, target_handle_option): Take cl_decoded_option
	structure as parameter, not individual elements.
	(lang_handle_option, target_handle_option, common_handle_option):
	Assert option has at most one argument.
	(enable_warning_as_error): Call handle_generated_option instead of
	handle_option.  Do not pass -Werror argument as argument of
	generated option.

c-family:
	* c-opts.c (c_common_handle_option): Call handle_generated_option
	instead of handle_option.

From-SVN: r163095
2010-08-11 11:04:43 +01:00
Paolo Carlini
3abeaf8f89 re PR libstdc++/42925 ([GB 99] Not possible to compare unique_ptr with 0)
2010-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/42925
	* include/bits/unique_ptr.h (operator==(const unique_ptr<>&,
	nullptr_t), operator==(nullptr_t, const unique_ptr<>&),
	operator!=(const unique_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const unique_ptr<>&)): Add.
	* include/bits/shared_ptr_base.h (operator==(const __shared_ptr<>&,
	nullptr_t), operator==(nullptr_t, const __shared_ptr<>&),
	operator!=(const __shared_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const __shared_ptr<>&)): Likewise.
	* include/bits/shared_ptr.h (operator==(const shared_ptr<>&,
	nullptr_t), operator==(nullptr_t, const shared_ptr<>&),
	operator!=(const shared_ptr<>&, nullptr_t),
	operator!=(nullptr_t, const shared_ptr<>&)): Likewise.
	* testsuite/20_util/unique_ptr/comparison/42925.cc: New.
	* testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust
	dg-error line numbers.

From-SVN: r163094
2010-08-11 08:49:47 +00:00
Paolo Carlini
8fe286ea6d unique_ptr.h: Replace _Tp_Deleter -> _Dp, and _Up_Deleter -> _Ep.
2010-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/unique_ptr.h: Replace _Tp_Deleter -> _Dp, and
	_Up_Deleter -> _Ep.

From-SVN: r163092
2010-08-11 07:42:02 +00:00
John David Anglin
4d053ac1a9 target-supports.exp (check_effective_target_sync_int_long): Add hppa*-*-linux*.
* lib/target-supports.exp (check_effective_target_sync_int_long):
	Add hppa*-*-linux*.
	(check_effective_target_sync_char_short): Likewise.

From-SVN: r163090
2010-08-11 02:23:31 +00:00
John David Anglin
e5fbc9bf5f linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
* config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
	'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
	(SUBWORD_BOOL_CAS): Likewise.
	(SUBWORD_SYNC_OP): Likewise.
	(SUBWORD_TEST_AND_SET): Likewise.
	(FETCH_AND_OP_WORD): Parenthesise INF_OP
	(SUBWORD_SYNC_OP): Likewise.
	(OP_AND_FETCH_WORD): Likewise.

From-SVN: r163089
2010-08-11 02:18:07 +00:00
Yao Qi
1ae0fa1c16 builtin-stringop-chk-1.c: Change ARM triplet to a more general form.
2010-08-10  Yao Qi  <yao@codesourcery.com>

        * gcc.dg/builtin-stringop-chk-1.c: Change ARM triplet to a more 
        general form.
        * gcc.dg/tree-ssa/loop-31.c: Likewise.
        * g++.dg/other/packed1.C: Likewise.
        * g++.dg/other/crash-4.C: Likewise.
        * g++.dg/ext/packed8.C: Likewise.
        * g++.dg/init/array16.C: Likewise.

From-SVN: r163088
2010-08-11 02:00:15 +00:00
Yao Qi
2cb4a047b2 MAINTAINERS (Write After Approval): Add myself.
2010-08-11  Yao Qi  <yao@codesourcery.com>

        * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r163087
2010-08-11 01:09:21 +00:00
GCC Administrator
a30bcebbf5 Daily bump.
From-SVN: r163085
2010-08-11 00:17:14 +00:00
Xinliang David Li
d6fa2d17d4 Improve address offset range computation
From-SVN: r163081
2010-08-10 23:26:05 +00:00
Vladimir Makarov
9995f20912 ira-live.c: Include sbitmap.h.
2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-live.c: Include sbitmap.h.
	(remove_some_program_points_and_update_live_ranges): Use sbitmaps.
	Compress live ranges even more.

From-SVN: r163080
2010-08-10 21:39:13 +00:00
Nathan Froyd
009c04bf7b fix ChangeLog typo
From-SVN: r163079
2010-08-10 19:39:39 +00:00
Nathan Froyd
175a62b7d5 * coverage.c (ctr_labels): Delete.
From-SVN: r163078
2010-08-10 19:27:18 +00:00
Bernd Schmidt
8f4c6e28cf re PR bootstrap/45177 (cc1 runs out of memory building libgcc in ARM cross-compiler)
PR bootstrap/45177
	* config/arm/arm.c (multiple_operation_profitable_p): Move xscale
	test here from arm_gen_load_multiple_1.
	(arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
	multiple_operation_profitable_p.

From-SVN: r163077
2010-08-10 18:45:10 +00:00
Paolo Carlini
c1510a4900 shared_ptr_base.h: Remove a few now redundant __glibcxx_function_requires(_ConvertibleConcept...).
2010-08-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/shared_ptr_base.h: Remove a few now redundant
	__glibcxx_function_requires(_ConvertibleConcept...).
	* testsuite/20_util/shared_ptr/cons/43820.cc: Adjust dg-error
	line number.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r163075
2010-08-10 16:54:09 +00:00
Daniel Kraft
da4dbc2518 gfortran.texi (Interoperability with C): Fix ordering in menu and add new subsection about pointers.
2010-08-10  Daniel Kraft  <d@domob.eu>

	* gfortran.texi (Interoperability with C): Fix ordering in menu
	and add new subsection about pointers.
	(Interoperable Subroutines and Functions): Split off the pointer part.
	(working with Pointers): New subsection with extended discussion
	of pointers (especially procedure pointers).

From-SVN: r163073
2010-08-10 17:40:59 +02:00
Ramana Radhakrishnan
f6aa1e0fe3 Fix misformatted Changelog entry.
From-SVN: r163070
2010-08-10 15:01:45 +00:00
Nathan Froyd
a72ae88a98 * tree-ssa-prec. (init_pre): Call alloc_aux_for_blocks.
(fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.

From-SVN: r163069
2010-08-10 14:58:41 +00:00
Richard Henderson
35b15a461e i386.c (ix86_compute_frame_layout): Re-align stack after saving registers.
* config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
	after saving registers.  Assert that SSE registers are only saved
	with a sufficiently aligned frame.
	(ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
	remove stack_realign_fp handling.
	(ix86_expand_prologue): Save int registers before stack_realign_fp,
	and do not mark the stack alignment as frame related.
	(ix86_expand_epilogue): SP is now invalid with stack_realign_fp.

	* dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
	saves when re-aligning the stack.

From-SVN: r163068
2010-08-10 07:50:34 -07:00
Robert Dewar
67536dcb63 sem_ch8.adb, [...]: Change name Write_Scopes to ws.
2010-08-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb, sem_ch8.ads: Change name Write_Scopes to ws.
	* sem_util.adb: Minor reformatting.

From-SVN: r163067
2010-08-10 16:34:24 +02:00
Nathan Froyd
a398224a88 basic-block.h (alloc_aux_for_block, [...]): Delete.
* basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
	* cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
	(alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.

From-SVN: r163066
2010-08-10 14:31:52 +00:00
Javier Miranda
cefce34c67 sem_aggr.adb (Resolve_Extension_Aggregate): Warn on the use of C++ constructors that leave the object partially initialized.
2010-08-10  Javier Miranda  <miranda@adacore.com>

	* sem_aggr.adb (Resolve_Extension_Aggregate): Warn on the use of C++
	constructors that leave the object partially initialized.
	* exp_atag.ads, exp_atags.adb (Build_Inherit_CPP_Prims): New subprogram
	that copies from parent of Typ the dispatch table slots of inherited
	C++ primitives. It handles primary and secondary dispatch tables.
	* einfo.adb (Related_Type): Moved from Node26 to Node27. Required to
	use this attribute with E_Variable entities.
	(Set_Is_Tag): Relax assertion to allow its use with variables that
	store tags.
	(Set_Related_Type): Relax assertion to allow its use with variables
	that store the tag of a C++ class.
	(Write_26_Field_Name): Remove Related_Type.
	(Write_27_Field_Name): Add Related_Type.
	* einfo.ads (Related_Type): Moved from Node26 to Node27. Available also
	with E_Variable entities.
	* sem_prag.adb (CPP_Constructor): Warn on duplicated occurrence of this
	pragma.
	* sem_util.adb (Search_Tag): Add missing support for CPP types.
	(Enclosing_CPP_Parent): New subprogram.
	(Has_Suffix): New subprogram.
	* sem_util.ads (Enclosing_CPP_Parent): New subprogram that returns the
	closest ancestor of a type that is a C++ type.
	(Has_Suffix): New subprogram. Used in assertions to check the suffix of
	internal entities.
	* sem_attr.adb (Analyze_Access_Attribute): Check wrong use of current
	instance in derivations of C++ types.
	* exp_tss.adb (CPP_Init_Proc): New subprogram.
	(Is_CPP_Init_Proc): New subprogram.
	(Set_TSS): Handle new C++ init routines.
	* exp_tss.ads (TSS_CPP_Init): New TSS name. For initialization of C++
	dispatch tables.
	(CPP_Init_Proc): New subprogram.
	(Is_CPP_Init_Proc): New subprogram.
	* exp_disp.adb (CPP_Num_Prims): New subprogram.
	(Has_CPP_Constructors): New subprogram.
	(Make_Secondary_DT, Make_DT): For derivations of CPP types, do not
	initialize slots located in the C++ part of the dispatch table.
	(Make_Tags): For CPP types declare variables used by the IP routine to
	store the C++ tag values after the first invocation of the C++
	constructor.
	(Build_CPP_Init_DT): New subprogram.
	(Set_CPP_Constructors): New implementation that builds an IP for each
	CPP constructor. These IP are wrappers of the C++ constructors that,
	after the first invocation of the constructor, read the C++ tags from
	the object and save them locally. These copies of the C++ tags are used
	by the IC routines to initialize tables of Ada derivations of CPP types.
	(Write_DT): Indicate what primitives are imported from C++
	* exp_disp.ads (CPP_Num_Prims): New subprogram.
	(Has_CPP_Constructors): New subprogram.
	* exp_aggr.adb (Build_Record_Aggr_Code): For derivations of C++ types
	invoke the IC routine to inherit the slots of the parents.
	* sem_ch13.adb (Analyze_Freeze_Entity): Add new warnings on CPP types.
	* exp_ch3.adb (Is_Variable_Size_Array): New subprogram.
	(Is_Variable_Size_Record): Factorize code calling
	Is_Variable_Size_Array.
	(Build_CPP_Init_Procedure): New subprogram that builds the tree
	corresponding to the procedure that initializes the C++ part of the
	dispatch table of an Ada tagged type that is a derivation of a CPP type.
	(Build_Init_Procedure): Adding documentation plus code reorganization to
	leave more clear the construction of the IP with C++ types.
	(Expand_Freeze_Record_Type): Delay call to Set_CPP_Constructors because
	it cannot be called after Make_Tags has been invoked.
	(Inherit_CPP_Tag): Removed.
	(Init_Secondary_Tags): For derivations of CPP types, warn on tags
	located at variable offset.
	* freeze.ads: Minor reformating.
	* sem_ch8.adb (Write_Scopes): Add pragma export. Required to have it
	available in gdb.
	* gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r163065
2010-08-10 16:29:36 +02:00