1. 24 Mar, 2013 3 commits
    • Avoid nonconst memmodels in libitm's local outdated copy of <atomic> too · b01819be
      This avoids warnings in libitm for non constant memory models,
      fixing the bootstrap with -Werror
      
      Passed bootstrap and test on x86_64-linux.
      
      libitm/:
      
      2013-03-23  Andi Kleen  <andi@my.domain.org>
      
      	* local_atomic (__always_inline): Add.
      	(__calculate_memory_order, atomic_thread_fence,
      	 atomic_signal_fence, test_and_set, clear, store, load,
               exchange, compare_exchange_weak, compare_exchange_strong,
               fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor):
      	Add __always_inline to force inlining.
      
      From-SVN: r197018
      Andi Kleen committed
    • Avoid non constant memory model uses in libatomic · 94f3ccc8
      x86 ends up using non constant memory models for some of the libatomic
      functions. These all end up as __ATOMIC_SEQ_CST. Just use this
      directly. This avoids a new warning for non constant memory
      models, which broke the bootstrap with -Werror
      
      Passed bootstrap and test on x86_64-linux.
      
      libatomic/:
      
      2013-03-23  Andi Kleen  <ak@linux.intel.com>
      
      	* gcas.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
      	* gexch.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
      	* gload.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
      	* gstore.c: (EXACT_INLINE): Use __ATOMIC_SEQ_CST.
      
      diff --git a/libatomic/gcas.c b/libatomic/gcas.c
      index edbf611..e3d77f3 100644
      --- a/libatomic/gcas.c
      +++ b/libatomic/gcas.c
      @@ -32,7 +32,7 @@
       # define EXACT_INLINE(N)					\
         if (C2(HAVE_ATOMIC_CAS_,N))					\
           return __atomic_compare_exchange_n				\
      -      (PTR(N,mptr), PTR(N,eptr), *PTR(N,dptr), false, smodel, fmodel)
      +      (PTR(N,mptr), PTR(N,eptr), *PTR(N,dptr), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
       #else
       # define EXACT_INLINE(N)
       #endif
      diff --git a/libatomic/gexch.c b/libatomic/gexch.c
      index 1999067..c8c8658 100644
      --- a/libatomic/gexch.c
      +++ b/libatomic/gexch.c
      @@ -33,7 +33,7 @@
         if (C2(HAVE_ATOMIC_EXCHANGE_,N))				\
           {								\
             *PTR(N,rptr) = __atomic_exchange_n			\
      -	(PTR(N,mptr), *PTR(N,vptr), smodel);			\
      +	(PTR(N,mptr), *PTR(N,vptr), __ATOMIC_SEQ_CST);		\
             return;							\
           }
       #else
      diff --git a/libatomic/gload.c b/libatomic/gload.c
      index df318d5..85865bd 100644
      --- a/libatomic/gload.c
      +++ b/libatomic/gload.c
      @@ -32,7 +32,7 @@
       # define EXACT_INLINE(N, DEST, SRC, DONE)			\
         if (C2(HAVE_ATOMIC_LDST_,N))					\
           {								\
      -      DEST = __atomic_load_n (SRC, smodel);			\
      +      DEST = __atomic_load_n (SRC, __ATOMIC_SEQ_CST);		\
             DONE;							\
           }
       #else
      diff --git a/libatomic/gstore.c b/libatomic/gstore.c
      index d571e58..84f9a8d 100644
      --- a/libatomic/gstore.c
      +++ b/libatomic/gstore.c
      @@ -32,7 +32,7 @@
       # define EXACT_INLINE(N)					\
         if (C2(HAVE_ATOMIC_LDST_,N))					\
           {								\
      -      __atomic_store_n (PTR(N,mptr), *PTR(N,vptr), smodel);	\
      +      __atomic_store_n (PTR(N,mptr), *PTR(N,vptr), __ATOMIC_SEQ_CST);	\
             return;							\
           }
       #else
      
      From-SVN: r197017
      Andi Kleen committed
    • Daily bump. · 0b8799fb
      From-SVN: r197016
      GCC Administrator committed
  2. 23 Mar, 2013 8 commits
  3. 22 Mar, 2013 21 commits
  4. 21 Mar, 2013 8 commits
    • tree-pass.h (PROP_gimple_lvec): New. · 6f37411d
      2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
      
      	* tree-pass.h (PROP_gimple_lvec): New.
      	* passes.c (dump_properties): Handle PROP_gimple_lvec.
      	(init_optimization_passes): Move pass_lower_vector.
      	* tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
      	PROP_gimple_lvec.
      	(pass_lower_vector): Provide PROP_gimple_lvec.
      	(pass_lower_vector_ssa): Likewise.
      	* cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
      
      From-SVN: r196890
      Marc Glisse committed
    • i386.md (*movdi_internal): Disparage slightly all MMX moves to/from memory. · cc1df30b
      	* config/i386/i386.md (*movdi_internal): Disparage slightly
      	all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
      	conversion alternatives.
      
      From-SVN: r196888
      Uros Bizjak committed
    • re PR middle-end/48087 (-Wall -Werror adds warnings over and above those generated by -Wall) · 37e99116
      	PR middle-end/48087
      	* diagnostic.def (DK_WERROR): New kind.
      	* diagnostic.h (werrorcount): Define.
      	* diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
      	promoted to DK_ERROR, increment DK_WERROR counter instead of
      	DK_ERROR counter.
      	* toplev.c (toplev_main): Call print_ignored_options even if
      	just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
      	even if just werrorcount is non-zero.
      
      	* pt.c (convert_nontype_argument): Count werrorcount as warnings.
      	* call.c (build_temp): Likewise.
      	* method.c (synthesize_method): Likewise.
      	* typeck.c (convert_for_initialization): Likewise.
      
      From-SVN: r196887
      Jakub Jelinek committed
    • re PR debug/55608 (Debug info quality regressions with file scope vars) · c845cfe1
      	PR debug/55608
      	* dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
      	on failure.
      	(resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
      	(string_cst_pool_decl): New function.
      	(optimize_one_addr_into_implicit_ptr): New function.
      	(resolve_addr_in_expr): Optimize DWARF location expression
      	DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
      	which doesn't live in memory, but has DW_AT_location or
      	DW_AT_const_value, or refers to a string literal, into
      	DW_OP_GNU_implicit_pointer.
      	(optimize_location_into_implicit_ptr): New function.
      	(resolve_addr): If removing DW_AT_location of a variable because
      	it was DW_OP_addr of address of the variable, but the variable doesn't
      	live in memory, try to emit const value attribute for the initializer.
      
      From-SVN: r196886
      Jakub Jelinek committed
    • correct changelog · 4a5e2469
      From-SVN: r196885
      Jason Merrill committed
    • tree.h (VECTOR_TYPE_P): New macro. · 08e0cda6
      2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* tree.h (VECTOR_TYPE_P): New macro.
      	(VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
      	TYPE_MODE): Use it.
      	* fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
      	VEC_COND_EXPR cannot be lvalues.
      	(fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
      
      gcc/cp/
      	* call.c (build_conditional_expr_1): Fold VEC_COND_EXPR.
      
      gcc/testsuite/
      	* g++.dg/ext/vector21.C: New testcase.
      
      From-SVN: r196884
      Marc Glisse committed
    • simplify-rtx.c (simplify_binary_operation_1): Restrict the transformation to equal modes. · d08633b4
      2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
      
      	* simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
      	Restrict the transformation to equal modes.
      
      From-SVN: r196882
      Marc Glisse committed