1. 08 Nov, 2011 26 commits
  2. 07 Nov, 2011 14 commits
    • Allow libcalls to be installed for legacy __sync optabs. · cedb4a1a
      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
      Richard Henderson committed
    • re PR c++/50863 ([C++0x] list-initialization with lambda fails to deduce constructor argument) · 13fc31c2
      	PR c++/50863
      	* parser.c (cp_parser_initializer_list): Parse C99
      	array designators tentatively.
      
      From-SVN: r181132
      Jason Merrill committed
    • re PR c++/50870 ([C++0x] [4.6/4.7 Regression] ICE with decltype, operator->, and… · b2b5f337
      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
      Jason Merrill committed
    • mutex (call_once): Store closure in __once_functor as bound function wrapper might not be copyable. · 48d8dd06
      	* include/std/mutex (call_once): Store closure in __once_functor
      	as bound function wrapper might not be copyable.
      
      From-SVN: r181128
      Jonathan Wakely committed
    • re PR libfortran/49188 (Mismatch between -fsign-zero documentation and formatted output) · c5a0818e
      	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
      Francois-Xavier Coudert committed
    • re PR target/51007 (Quadmath I/O doesn't work on MinGW) · 744bbef1
              PR target/51007
              * quadmath-imp.h (ieee854_float128): Adjust
              for ms-bitfield layout.
      
      From-SVN: r181125
      Kai Tietz committed
    • pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error call in case COMPONENT_REF. · 5a0626d1
      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
      Paolo Carlini committed
    • i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add. · c8694a80
      	* 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
      Jakub Jelinek committed
    • constraints.md: New file. · 06cadf63
      	* 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
      Anatoly Sokolov committed
    • atomic_base.h (atomic_thread_fence): Revert. · 6577e39c
      
      2011-11-07  Andrew MacLeod  <amacleod@redhat.com>
      
      	* include/bits/atomic_base.h (atomic_thread_fence): Revert.
      	(atomic_signal_fence): Revert.
      
      From-SVN: r181119
      Andrew MacLeod committed
    • PR c++/45114 - Support C++11 alias-declaration · 28704289
      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
      Dodji Seketeli committed
    • i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT,… · bfd08c89
      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
      Uros Bizjak committed
    • * gcc.dg/pragma-align-2.c: Compile with -std=gnu99. · 805eaf4a
      From-SVN: r181114
      Eric Botcazou committed
    • optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so… · 6ff336b4
      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
      Andrew MacLeod committed