1. 08 Nov, 2011 31 commits
  2. 07 Nov, 2011 9 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