Commit Graph

113149 Commits

Author SHA1 Message Date
Paolo Carlini 31de4ba7df complex (complex<>::real(), [...]): Remove redundant const qualifiers.
2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/complex (complex<>::real(), complex<>::imag()):
	Remove redundant const qualifiers.

From-SVN: r181141
2011-11-08 00:49:47 +00:00
Jonathan Wakely 7579d15b58 ptr_traits.h (__rebind): Replace with...
* include/bits/ptr_traits.h (__rebind): Replace with...
	(rebind): Implement using alias-declaration.
	* include/ext/pointer.h (__rebind): Replace with...
	(rebind): Implement using alias-declaration.
	* include/bits/alloc_traits.h (__rebind_alloc, __rebind_traits):
	Replace with...
	(rebind_alloc, rebind_traits): Implement using alias-declaration.
	* include/ext/alloc_traits.h (rebind): Use rebind_alloc instead of
	__rebind_alloc.
	* include/std/scoped_allocator (rebind): Likewise.

From-SVN: r181139
2011-11-08 00:33:45 +00:00
GCC Administrator e23de0edd9 Daily bump.
From-SVN: r181138
2011-11-08 00:18:52 +00:00
Richard Henderson cedb4a1ad0 Allow libcalls to be installed for legacy __sync optabs.
This allows a target which implements the __sync interfaces
in libgcc to continue to use them transparently with the
new __atomic builtins.

It is assumed that these libgcc routines DO NOT use spinlocks.
This is true of all extant libgcc instances.

        * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
        OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
        OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
        OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
        OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
        rename from the direct_optab_index enum.
        (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
        sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
        sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
        sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
        sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
        from the optab_table, not the direct_optab_table.
        (init_sync_libfuncs): Declare.
        (can_compare_and_swap_p): Update parameters.
        * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
        (can_compare_and_swap_p): Add allow_libcall parameter; if true,
        test for the legacy compare-and-swap libcall.
        (expand_atomic_exchange): Use the legacy test-and-set libcall.
        (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
        (struct atomic_op_functions): Update for optab type changes.
        (maybe_emit_op): Likewise.
        (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
        * builtins.c (fold_builtin_atomic_always_lock_free): Update call
        to can_compare_and_swap_p.
        * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
        (expand_omp_atomic_pipeline): Likewise.
        * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
        sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
        optabs.

From-SVN: r181134
2011-11-07 15:11:55 -08:00
Jason Merrill 13fc31c2c4 re PR c++/50863 ([C++0x] list-initialization with lambda fails to deduce constructor argument)
PR c++/50863
	* parser.c (cp_parser_initializer_list): Parse C99
	array designators tentatively.

From-SVN: r181132
2011-11-07 17:52:32 -05:00
Jason Merrill b2b5f337dc re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and default template arguments)
PR c++/50870
	* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
	(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
	object.

From-SVN: r181131
2011-11-07 17:52:23 -05:00
Jonathan Wakely 48d8dd06b0 mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable.
* include/std/mutex (call_once): Store closure in __once_functor
	as bound function wrapper might not be copyable.

From-SVN: r181128
2011-11-07 22:26:15 +00:00
Francois-Xavier Coudert c5a0818e68 re PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted output)
PR libfortran/49188
	PR libfortran/49336
	* invoke.texi: Fix documentation of fsign-zero option. Remove
	contractions.
	* intrinsic.texi: Fix ATAN2 documentation for signed zeros.
	Remove contractions.
	* gfortran.texi: Remove contractions.

From-SVN: r181127
2011-11-07 22:21:54 +00:00
Kai Tietz 744bbef1e1 re PR target/51007 (Quadmath I/O doesn't work on MinGW)
PR target/51007
        * quadmath-imp.h (ieee854_float128): Adjust
        for ms-bitfield layout.

From-SVN: r181125
2011-11-07 23:03:51 +01:00
Paolo Carlini 5a0626d162 pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF.
2011-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
	call in case COMPONENT_REF.

From-SVN: r181124
2011-11-07 22:03:27 +00:00
Jakub Jelinek c8694a801c i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
* config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_VEC_PACK_SFIX256.
	(bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
	(ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
	(ix86_builtin_vectorized_function): Also vectorize lrint using
	256-bit vectors for -mavx.

From-SVN: r181122
2011-11-07 22:37:37 +01:00
Anatoly Sokolov 06cadf6320 constraints.md: New file.
* config/cris/constraints.md: New file.
	* config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
	CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
	EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
	EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
	* config/cris/cris.c: Incule "tm-constrs.h".
	(cris_print_operand): Use satisfies_constraint_O.
	(cris_normal_notice_update_cc, cris_rtx_costs): Use
	satisfies_constraint_I.
	(cris_address_cost): Use satisfies_constraint_L.
	* config/cris/cris.md: Include "constraints.md".
	(*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
	*mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
	*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
	*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
	*extop<mode>si_swap_side): Use satisfies_constraint_N and
	satisfies_constraint_J.
	(moversideqi movemsideqi mover2side peephole2): Use
	satisfies_constraint_N and satisfies_constraint_J.
	(andu peephole2): Use satisfies_constraint_I and
	satisfies_constraint_O.

From-SVN: r181120
2011-11-08 01:33:24 +04:00
Andrew MacLeod 6577e39c94 atomic_base.h (atomic_thread_fence): Revert.
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	* include/bits/atomic_base.h (atomic_thread_fence): Revert.
	(atomic_signal_fence): Revert.

From-SVN: r181119
2011-11-07 21:32:52 +00:00
Dodji Seketeli 2870428932 PR c++/45114 - Support C++11 alias-declaration
gcc/cp/

	* cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P)
	(DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor
	macros.
	(TYPE_TEMPLATE_INFO): Get template info of an alias template
	specializations from its TYPE_DECL.
	(SET_TYPE_TEMPLATE_INFO): Set template info of alias template
	specializations into its TYPE_DECL.
	(DECL_CLASS_TEMPLATE_P): Re-write using the new
	DECL_TYPE_TEMPLATE_P.
	(enum cp_decl_spec): Add new ds_alias enumerator.
	(alias_type_or_template_p, alias_template_specialization_p):
	Declare new functions.
	* parser.c (cp_parser_alias_declaration): New static function.
	(cp_parser_check_decl_spec): Add "using" name for the `alias'
	declspec.
	(cp_parser_type_name): Update comment.  Support simple-template-id
	representing alias template specializations in c++0x mode.
	(cp_parser_qualifying_entity): Update comment.  Use
	cp_parser_type_name.
	(cp_parser_block_declaration): Handle alias-declaration in c++11.
	Update comment.
	(cp_parser_template_id): Handle specializations of alias
	templates.
	(cp_parser_member_declaration): Add alias-declaration production
	to comment.  Support alias-declarations.
	(cp_parser_template_declaration_after_export): Handle alias
	templates in c++11.
	* decl.c (make_typename_type, make_unbound_class_template): Accept
	alias templates.
	(grokdeclarator): Set TYPE_DECL_ALIAS_P on alias
	declarations.
	* decl2.c (grokfield): Move template creation after setting up the
	TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias
	template actually carries the right type-id of the alias
	declaration.
	* pt.c (alias_type_or_template_p)
	(alias_template_specialization_p): Define new public functions.
	(maybe_process_partial_specialization): Reject partial
	specializations of alias templates.
	(primary_template_instantiation_p): Consider alias template
	instantiations.
	(push_template_decl_real): Assert that TYPE_DECLs of alias
	templates are different from those of class template.  Store
	template info onto the TYPE_DECL of the alias template.
	(convert_template_argument): Strip aliases from template
	arguments.
	(lookup_template_class_1): Handle the creation of the
	specialization of an alias template.
	(tsubst_decl): Create a substituted copy of the TYPE_DECL of an
	member alias template.
	(tsubst): Handle substituting into the type of an alias template.
	Handle substituting UNBOUND_CLASS_TEMPLATE into
	BOUND_TEMPLATE_TEMPLATE_PARM.
	(do_type_instantiation): Better diagnostics when trying to
	explicitely instantiate a non-class template.
	* search.c (lookup_field_1, lookup_field_r): Support looking up
	alias templates.
	* semantics.c (finish_template_type): For instantiations of alias
	templates, return the TYPE_DECL of the actual alias and not the
	one of the aliased type.
	* error.c (dump_alias_template_specialization): New static
	function.
	(dump_type): Handle printing of alias templates and their
	specializations.  templates.
	(dump_aggr_type): For specialization of alias templates, fetch
	arguments from the right place.
	(dump_decl): Print an alias-declaration like `using decl = type;'
	(dump_template_decl):  Support printing of alias templates.

gcc/testsuite/

	* g++.dg/cpp0x/alias-decl-0.C: New test case.
	* g++.dg/cpp0x/alias-decl-1.C: Likewise.
	* g++.dg/cpp0x/alias-decl-3.C: Likewise.
	* g++.dg/cpp0x/alias-decl-4.C: Likewise.
	* g++.dg/cpp0x/alias-decl-6.C: Likewise.
	* g++.dg/cpp0x/alias-decl-7.C: Likewise.
	* g++.dg/cpp0x/alias-decl-8.C: Likewise.
	* g++.dg/cpp0x/alias-decl-9.C: Likewise.
	* g++.dg/cpp0x/alias-decl-10.C: Likewise.
	* g++.dg/ext/alias-decl-attr1.C: Likewise.
	* g++.dg/ext/alias-decl-attr2.C: Likewise.
	* g++.dg/ext/alias-decl-attr3.C: Likewise.
	* g++.dg/ext/alias-decl-attr4.C: Likewise.

From-SVN: r181118
2011-11-07 22:28:50 +01:00
Uros Bizjak bfd08c8902 i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
	BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.

From-SVN: r181116
2011-11-07 22:27:01 +01:00
Eric Botcazou 805eaf4ab3 * gcc.dg/pragma-align-2.c: Compile with -std=gnu99.
From-SVN: r181114
2011-11-07 21:02:57 +00:00
Andrew MacLeod 6ff336b4aa optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so SWITCHABLE_TARGET can change the valuies...
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	* optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
	SWITCHABLE_TARGET can change the valuies during compilation.
	(expand_atomic_fetch_op): handle parameter changes ripples for 
	get_atomic_op_for_code call.

From-SVN: r181112
2011-11-07 20:10:03 +00:00
Andrew MacLeod 0669295b1e atomic_base.h (atomic_thread_fence): Call builtin.
2011-11-07  Andrew MacLeod  <amacleod@redhat.com>

	libstdc++-v3
	* include/bits/atomic_base.h (atomic_thread_fence): Call builtin.
	(atomic_signal_fence): Call builtin.
	(atomic_flag::test_and_set): Call __atomic_exchange when it is lockfree,
	otherwise fall back to call __sync_lock_test_and_set.
	(atomic_flag::clear): Call __atomic_store when it is lockfree,
	otherwise fall back to call __sync_lock_release.

	gcc
	* doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
	__atomic_store.
	* optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
	only when originated from that builtin.
	(expand_atomic_store): Expand to __sync_lock_release when originated
	from that builtin.
	* builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
	expand_atomic_exchange call originated from here.
	(expand_builtin_sync_lock_release): Add flag that expand_atomic_store
	call originated from here.
	(expand_builtin_atomic_exchange): Add origination flag.
	(expand_builtin_atomic_store): Add origination flag.
	* expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean 
	parameters to indicate implementation fall back options.

From-SVN: r181111
2011-11-07 20:06:39 +00:00
Janus Weil fd83db3d51 re PR fortran/50919 ([OOP] Don't use vtable for NON_OVERRIDABLE TBP)
2011-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50919
	* class.c (add_proc_comp): Don't add non-overridable procedures to the
	vtable.
	* resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
	Don't generate a dynamic _vptr call for non-overridable procedures.

2011-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/50919
	* gfortran.dg/typebound_call_21.f03: New.

From-SVN: r181107
2011-11-07 19:41:12 +01:00
Georg-Johann Lay 0098895f4e avr.c (output_reload_in_const): Can handle CONSTANT_P now, not only CONST_INT and CONST_DOUBLE.
* config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
	now, not only CONST_INT and CONST_DOUBLE.
	(output_movqi): Use output_reload_in_const.
	(output_reload_inhi): Ditto.
	(output_reload_insisf): Move assertion to output_reload_in_const.
	(avr_out_reload_inpsi): Ditto.

From-SVN: r181106
2011-11-07 18:22:59 +00:00
Nathan Sidwell 5366b18679 libgcov.c (struct gcov_fn_buffer): New struct.
libgcc/
	* libgcov.c (struct gcov_fn_buffer): New struct.
	(buffer_fn_data): New helper.
	(gcov_exit): Rework for new gcov data structures.

	gcc/
	* gcov.c (object_summary): Replace with ...
	(object_runs): ... this.
	(process_file): Remove functions with no data.
	(generate_results): Ignore files with no lines.
	(release_function): New helper, broken out of ...
	(release_structures): ... here.  Use it.
	(read_count_file): Adjust for new data file format.
	(output_lines): Use object_runs.
	* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
	(struct gcov_ctr_info): Move definition.
	(struct gcov_fn_info): Add key field, use gcov_ctr_info for
	trailing array.
	(struct gcov_info): Add merge function array, remove mask and
	counts.  Trailing array is array of pointers to function info.
	* coverage.c (struct function_list): Replace counter numbers with
	counter arrays.  Add fndecl field.  GTYify.
	(counts_entry): Remove chain workspace.
	(functions_head): GTYify.
	(prg_n_ctrs): Remove.
	(fn_v_ctrs): New.
	(tree_ctr_tables): Remove.
	(read_counts_file): Cope with blank entries and expect program
	summaries before functions.  Don't warn on missing entries.
	(coverage_counter_alloc): Allocate individual function arrays.
	(tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
	for individual function arrays.
	(coverage_end_function): GTYify function list object. Finalize
	function's counter arrays.
	(build_var): New.  Create a counter-related variable with
	appropriate linkage.
	(build_fn_info_type): Adjust for new runtime structure.
	(build_fn_info_value): Rename to ...
	(build_fn_info): ... here.  Build new format data.
	(build_ctr_info_type, build_ctr_info_value): Remove.
	(build_info_type): New. Build new format data structure.
	(build_info): Adjust for new format data.
	(create_coverage): Likewise.
	* gcov-dump.c (tag_function): Recognize placeholders.

	gcc/testsuite/
	* gcc.dg/profile-dir-1.c: Adjust final scan.
	* gcc.dg/profile-dir-2.c: Adjust final scan.
	* gcc.dg/profile-dir-3.c: Adjust final scan.
	* gcc.misc-tests/gcov.exp: Adjust regexp.
	* gcc.misc-tests/gcov-12.c: New.
	* gcc.misc-tests/gcov-13.c: New.
	* gcc.misc-tests/gcovpart-13b.c: New.
	* gcc.misc-tests/gcov-14.c: New.

From-SVN: r181105
2011-11-07 18:14:46 +00:00
Georg-Johann Lay 74155a6f37 re PR target/49313 (Inefficient libgcc implementations for avr)
PR target/49313
	* config/avr/lib1funcs.S (__divmodhi4, __divmodsi4): Tweak speed.

From-SVN: r181104
2011-11-07 18:08:35 +00:00
Georg-Johann Lay 8b42d3defd constraints.md (Cm2): New constraint for int -2.
* config/avr/constraints.md (Cm2): New constraint for int -2.
	* config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
	(*negqihi2): New insn.

From-SVN: r181103
2011-11-07 18:07:56 +00:00
Jason Merrill 6d87092d19 re PR c++/35688 (template visibility not overridden by template arguments)
PR c++/35688
	* decl2.c (constrain_visibility): Return void.  Add tmpl parm
	which gives the constraint priority over an attribute.
	(constrain_visibility_for_template, determine_visibility): Adjust.
	* pt.c (instantiate_class_template_1): Call determine_visibility.

From-SVN: r181102
2011-11-07 12:51:40 -05:00
Jason Merrill c7e6757f2a add PR tag
From-SVN: r181101
2011-11-07 12:51:32 -05:00
Jason Merrill 4c627087f5 re PR c++/33255 (A warning for "unused" typedefs?)
PR c++/33255
	* decl.c (save_function_data): Clear local_typedefs.

From-SVN: r181100
2011-11-07 12:51:24 -05:00
Jason Merrill b12e4c4292 decl.c (cp_finish_decl): Only make_tree_vector if we're calling check_initializer.
* decl.c (cp_finish_decl): Only make_tree_vector if we're calling
	check_initializer.

From-SVN: r181099
2011-11-07 12:51:16 -05:00
Rainer Orth 200feb074b Append to HOST_LIBGCC2_CFLAGS in libgcc
* config.host (tmake_file): Correct comment.
	(bfin*-elf*): Remove bfin/t-elf from tmake_file, add
	t-libgcc-pic.
	(bfin*-uclinux*): Likewise.
	(bfin*-linux-uclibc*): Likewise.
	(xstormy16-*-elf): Add stormy16/t-stormy16 to tmake_file.

	* config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Append instead of
	assigning.
	* config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/avr/t-avr (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/c6x/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/h8300/t-h8300 (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/lm32/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/m32r/t-m32r (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/mips/t-elf (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/pdp11/t-pdp11 (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/picochip/t-picochip (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/stormy16/t-stormy16 (HOST_LIBGCC2_CFLAGS): Likewise.
	* config/t-openbsd-thread (HOST_LIBGCC2_CFLAGS): Likewise.

	* config/bfin/t-elf: Remove.
	* config/t-vxworks (HOST_LIBGCC2_CFLAGS): Remove.

From-SVN: r181098
2011-11-07 17:14:32 +00:00
Rainer Orth c9cd1a07b0 Consistently use t-rtems in libgcc
* config.host (*-*-rtems*): Add t-rtems to tmake_file.
	(i[34567]86-*-rtems*): Remove t-rtems from tmake_file.
	(lm32-*-elf*, lm32-*-rtems*): Split into ...
	(lm32-*-elf*): ... this.
	(lm32-*-rtems*): ... and this.
	Add to tmake_file.
	(m32r-*-rtems*): Add to tmake_file.
	(moxie-*-rtems*): Likewise.
	(sparc-*-rtems*): Likewise.
	Remove t-rtems from tmake_file.
	(sparc64-*-rtems*): Likewise.
	* config/t-rtems (HOST_LIBGCC2_CFLAGS): Use LIBGCC2_INCLUDES
	instead.

From-SVN: r181097
2011-11-07 17:12:33 +00:00
H.J. Lu 7b4d559576 Check HARD_FRAME_POINTER_REGNUM.
2011-11-07  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
	HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx
	in Rule 18.

From-SVN: r181096
2011-11-07 08:38:24 -08:00
Rainer Orth 9fbcc75d56 Return gthr-posix.h to libgcc (PR bootstrap/50982)
libgcc:
	PR bootstrap/50982
	* config/gthr-posix.h: Move ...
	* gthr-posix.h: ... here.
	* config/gthr-lynx.h: Reflect this.
	* config/gthr-vxworks.h: Likewise.
	* config/rs6000/gthr-aix.h: Likewise.
	* configure.ac (target_thread_file): Likewise.
	* configure: Regenerate.

	libstdc++-v3:
	PR bootstrap/50982
	* include/Makefile.am (${host_builddir}/gthr-posix.h): Reflect
	gthr-posix.h move.
	* include/Makefile.in: Regenerate.

From-SVN: r181095
2011-11-07 16:34:31 +00:00
Arnaud Charlet b5bf33351a [multiple changes]
2011-11-07  Olivier Hainque  <hainque@adacore.com>

	* sigtramp-ppcvxw.c: Add general comments.
	(CFI_COMMON_REGS): Remove rule for r1, as in other unwinders. Add
	rules for r2 to r13, plus CTR and XER.
	(CFA_REG): New, register number used to hold the local CFA.
	(CFI_DEF_CFA, SIGTRAMP_BODY): Use it.
	Make that 15, not 14, with documentation.
	(TCR): Undef before definition, preventing conflict with reg number in
	VxWorks headers.

2011-11-07  Robert Dewar  <dewar@adacore.com>

	* exp_util.ads, exp_alfa.adb, a-cohama.adb, a-cohama.ads, sem_ch4.adb,
	aspects.ads, exp_ch8.adb, exp_ch8.ads, atree.ads: Minor reformatting.
	* gcc-interface/Make-lang.in: Update dependencies. 

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb: A tagged type is a legal actual for an aliased
	formal.

2011-11-07  Pascal Obry  <obry@adacore.com>

	* g-socket.adb, g-socket.ads: Minor reformatting.

2011-11-07  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Resolve_Actuals): Minor error message improvement.

2011-11-07  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add discussion of default mode handling of
	source representation with no -gnatW option given, in particular
	noting that NEL (next line) is not recognized in this context.

From-SVN: r181094
2011-11-07 17:30:55 +01:00
Arnaud Charlet 9ee76313c4 [multiple changes]
2011-11-07  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Note_Possible_Modification): In Alfa mode,
	generate a reference for a modification even when the modification
	does not come from source.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): For the "of" iterator form,
	use the indexing attributes rather than the Element function,
	to obtain variable references.
	* sem_ch4.adb (Try_Container_Indexing): Code cleanup. Use
	Find_Aspect rather than iterating over representation
	items. Improve error message.
	* a-cohama.adb, a-cohama.ads Update to latest RM, with two versions
	of Reference functions.

From-SVN: r181093
2011-11-07 17:25:32 +01:00
Arnaud Charlet 7b7a0c2bdd [multiple changes]
2011-11-07  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Unique_Entity): For a parameter on a subprogram
	body that has a corresponding parameter on the subprogram
	declaration, define the unique entity as being the declaration
	one.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Return_Type): In Ada 2012 mode, if the
	return type of a function is the class-wide type of an incomplete
	type T, T can be a Taft-amendment type and does not have to be
	completed in the current private part.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

	* aspects.ads (Inherited_Aspect): Map that indicates type aspects
	that are inherited by default, and apply to the class-wide type
	as well.
	* aspects.adb (Find_Aspect): If the entity is class-wide and the
	aspect is inherited, use the aspect of the specific type.

From-SVN: r181092
2011-11-07 17:22:28 +01:00
Arnaud Charlet cc570be693 [multiple changes]
2011-11-07  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_alfa.adb: Remove with and use clause for
	Exp_Ch8. Add with and use clause for Exp_Util.
	Remove local constant Disable_Processing_Of_Renamings.
	(Expand_Alfa_N_Object_Renaming_Declaration): The expansion of
	object renamings has been reenabled.
	(Expand_Possible_Renaming):
	The expansion of identifier and expanded names has been
	reenabled. Perform the substitutions only for entities that
	denote an object.
	* exp_ch8.ads, exp_ch8.adb (Evaluate_Name): Moved to Exp_Util.
	* exp_util.adb (Evaluate_Name): Moved from Exp_Ch8.
	(Remove_Side_Effects): Alphabetize local variables. Add a guard
	to avoid the infinite expansion of an expression in Alfa mode. Add
	processing for function calls in Alfa mode.
	* exp_util.ads (Evaliate_Name): Moved from Exp_Ch8.

2011-11-07  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): If the entity is an access to
	subprogram whose designated type is itself a subprogram type,
	its own return type must be decorated with size information.

From-SVN: r181091
2011-11-07 17:20:14 +01:00
Jakub Jelinek da80a6464e i386.c (ix86_expand_builtin): If gather mask argument is known to have all high bits set...
* config/i386/i386.c (ix86_expand_builtin): If gather mask
	argument is known to have all high bits set, pass pc_rtx as
	second argument to the expander instead of op0.
	* config/i386/sse.md (*avx2_gathersi<mode>_2,
	*avx2_gatherdi<mode>_2): New patterns.
	* config/i386/avx2intrin.h (_mm256_i32gather_pd,
	_mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
	_mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
	_mm256_set1_pd.

From-SVN: r181090
2011-11-07 17:00:08 +01:00
Jakub Jelinek aec7ae7dea re PR tree-optimization/50789 (Gather vectorization)
PR tree-optimization/50789
	* tree-vect-stmts.c (process_use): Add force argument, avoid
	exist_non_indexing_operands_for_use_p check if true.
	(vect_mark_stmts_to_be_vectorized): Adjust callers.  Handle
	STMT_VINFO_GATHER_P.
	(gen_perm_mask): New function.
	(perm_mask_for_reverse): Use it.
	(reverse_vec_element): Rename to...
	(permute_vec_elements): ... this.  Add Y and MASK_VEC arguments,
	generalize for any permutations.
	(vectorizable_load): Adjust caller.  Handle STMT_VINFO_GATHER_P.
	* target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
	* doc/tm.texi: Regenerate.
	* tree-data-ref.c (initialize_data_dependence_relation,
	compute_self_dependence): No longer static.
	* tree-data-ref.h (initialize_data_dependence_relation,
	compute_self_dependence): New prototypes.
	* tree-vect-data-refs.c (vect_check_gather): New function.
	(vect_analyze_data_refs): Detect possible gather load data
	refs.
	* tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
	(STMT_VINFO_GATHER_P): Define.
	(vect_check_gather): New prototype.
	* config/i386/i386-builtin-types.def: Add types for alternate
	gather builtins.
	* config/i386/sse.md (AVXMODE48P_DI): Remove.
	(VEC_GATHER_MODE): Rename mode_attr to...
	(VEC_GATHER_IDXSI): ... this.
	(VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
	(avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
	instead of <VEC_GATHER_MODE>.
	(avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
	<<AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
	on src and mask operands.
	(*avx2_gatherdi<mode>): Likewise.  Use VEC_GATHER_MODE iterator
	instead of AVXMODE48P_DI.
	(avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
	IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
	(ix86_init_mmx_sse_builtins): Create those builtins.
	(ix86_expand_builtin): Handle those builtins and adjust expansions
	of other gather builtins.
	(ix86_vectorize_builtin_gather): New function.
	(TARGET_VECTORIZE_BUILTIN_GATHER): Define.

	* gcc.target/i386/avx2-gather-1.c: New test.
	* gcc.target/i386/avx2-gather-2.c: New test.
	* gcc.target/i386/avx2-gather-3.c: New test.
	* gcc.target/i386/avx2-gather-4.c: New test.

From-SVN: r181089
2011-11-07 16:59:07 +01:00
Janne Blomqvist 571b34b25e clock and time are part of the C standard library.
2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
	and time are part of the C standard library.

From-SVN: r181087
2011-11-07 17:31:31 +02:00
Uros Bizjak ed377f02a6 pr49781-1.c (dg-options): Add -mtune=generic.
* gcc.target/i386/pr49781-1.c (dg-options): Add -mtune=generic.

From-SVN: r181086
2011-11-07 16:21:35 +01:00
Janne Blomqvist 0948d15384 Revert previous fix for PR 45723.
libgfortran ChangeLog:

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/45723
        * io/open.c (new_unit): Don't check file size before attempting
        seek.


testsuite ChangeLog:

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/45723
        * gfortran.dg/open_dev_null.F90: Remove testcase.

From-SVN: r181085
2011-11-07 16:32:50 +02:00
Jonathan Wakely 5ee360d069 acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.
* acinclude.m4 (GLIBCXX_CHECK_SC_NPROC_ONLN): Define.
	(GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP): Define.
	(GLIBCXX_CHECK_SYSCTL_HW_NCPU): Define.
	* configure.ac: Use new checks.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* src/thread.cc: Check new config macros.
	* testsuite/lib/libstdc++.exp: Likewise.

From-SVN: r181084
2011-11-07 13:45:03 +00:00
Uros Bizjak 51e674b7f1 target-supports.exp (check_effective_target_sync_int_128): Don't cache the result.
* lib/target-supports.exp (check_effective_target_sync_int_128):
	Don't cache the result.
	(check_effective_target_sync_long_long): Ditto.

From-SVN: r181082
2011-11-07 14:09:09 +01:00
Jonathan Wakely 3cc227e5bf * config/abi/pre/gnu.ver: Fix exports for string::pop_back.
From-SVN: r181081
2011-11-07 11:36:04 +00:00
Uros Bizjak 6f2cc91cc4 f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.
* config/i386/f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.

From-SVN: r181080
2011-11-07 11:23:56 +01:00
Tristan Gingold c750e76857 config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
2011-11-07  Tristan Gingold  <gingold@adacore.com>

	* config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
	* config/vms/t-vms: Add vms-c.o rule.
	* config/vms/vms-c.c: New file.
	* config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
	* config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.

From-SVN: r181079
2011-11-07 10:17:44 +00:00
Tristan Gingold ba89fcb672 vms.h (TARGET_OBJECT_SUFFIX, [...]): Move to config/vms/vms.h
2011-11-07  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
	TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
	TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
	POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
	(SUBTARGET_OS_CPP_BUILTINS): Define.
	(TARGET_DEFAULT): Tune according to POINTER_SIZE.
	(MASK_RETURN_ADDR): Define in 64 bit mode.
	* config/ia64/vms.h: Likewise.
	* config/vms/vms.h: New file.
	* config/vms/vms64.h: New file.
	* config/alpha/vms64.h: Removed.
	* config/ia64/vms64.h: Removed.
	* config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
	Adjust for above change.

From-SVN: r181078
2011-11-07 09:03:20 +00:00
Enkovich Ilya f3b61b784d re PR target/50962 (Additional opportunity for AGU stall avoidance optimization for Atom processor)
gcc/
	PR target/50962
	* config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
	* config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
	* config/i386/i386.md (movsi_internal): Emit lea if profitable.
	(movdi_internal_rex64): Likewise.

From-SVN: r181077
2011-11-07 08:47:15 +00:00
Jonathan Wakely e0f0ee74f0 acinclude.m4: Check for <stdalign.h>
* acinclude.m4: Check for <stdalign.h>
	* configure: Regenerate.
	* config.h.in: Likewise.
	* include/Makefile.am: Add <cstdalign>.
	* include/Makefile.in: Regenerate.
	* include/c_global/cstdalign: New.
	* testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: New.
	* doc/xml/manual/backwards_compatibility.xml: Update.
	* doc/xml/manual/status_cxx2011.xml: Update.

From-SVN: r181076
2011-11-07 08:46:58 +00:00
Sergey Ostanevich b3242a4c75 re PR rtl-optimization/47698 (CMOV accessing volatile memory with read side effect)
gcc/
	PR rtl-optimization/47698
	* ifconv.c (noce_operand_ok): prevent CMOV generation
	for volatile mem.

gcc/testsuite/
	PR rtl-optimization/47698
	* gcc.target/i386/47698.c: New test.

From-SVN: r181075
2011-11-07 08:41:55 +00:00
Tristan Gingold f7a57cdc35 alpha-common.c (alpha_option_init_struct): New function.
2011-11-07  Tristan Gingold  <gingold@adacore.com>

	* common/config/alpha/alpha-common.c (alpha_option_init_struct):
	New function.
	(TARGET_OPTION_INIT_STRUCT): Define.
	* config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
	(TARGET_MAX_ANCHOR_OFFSET)
	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.

From-SVN: r181074
2011-11-07 08:33:14 +00:00