1. 03 Nov, 2015 17 commits
    • gimple-expr.c (useless_type_conversion_p): Reinstate type canonical check for… · 5993d1c9
      gimple-expr.c (useless_type_conversion_p): Reinstate type canonical check for aggregate types and beef up comment for mode...
      
      	* gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
      	check for aggregate types and beef up comment for mode check.
      
      From-SVN: r229714
      Eric Botcazou committed
    • * libsupc++/new: Declare sized deletes. · 34148d68
      From-SVN: r229713
      Jason Merrill committed
    • tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect data references here. · 428db0ba
      2015-11-03  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
      	data references here.
      	* tree-vect-loop.c: Include cgraph.h.
      	(vect_analyze_loop_2): Collect data references here.
      	* tree-vect-slp.c (find_bb_location): Inline ...
      	(vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
      	Factor in vect_slp_transform_bb.
      	(vect_slp_transform_bb): Removed.
      	(vect_slp_analyze_bb_1): Collect data references here.
      	* tree-vectorizer.c (pass_slp_vectorize::execute): Call
      	vect_slp_bb.
      	* tree-vectorizer.h (vect_slp_bb): Declare.
      	(vect_slp_analyze_bb): Remove.
      	(vect_slp_transform_bb): Remove.
      	(find_bb_location): Remove.
      	(vect_analyze_data_refs): Remove stmt count reference parameter.
      
      From-SVN: r229712
      Richard Biener committed
    • 2015-11-03 Paolo Carlini <paolo.carlini@oracle.com> · 32fec2c8
      	* Wrap ChangeLog entries to 80 columns.
      
      From-SVN: r229707
      Paolo Carlini committed
    • multiple_target.c (create_dispatcher_calls): Add target check on ifunc. · f9477999
      2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
      
      gcc/
      	* multiple_target.c (create_dispatcher_calls): Add target check
      	on ifunc.
      	(create_target_clone): Change assembler name for versioned declarations.
      gcc/testsuite/
      	* g++.dg/ext/mvc4.C: Add dg-require-ifunc condition.
      	* gcc.target/i386/mvc5.c: Ditto.
      	* gcc.target/i386/mvc7.c: Add dg-require-ifunc condition and checks on
      	resolver.
      
      From-SVN: r229706
      Evgeny Stupachenko committed
    • OpenACC atomic directive · 4bf9e5a8
      	gcc/c-family/
      	* c-pragma.c (oacc_pragmas): Add "atomic".
      	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
      	gcc/c/
      	* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
      	gcc/cp/
      	* parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
      	PRAGMA_OACC_ATOMIC.
      	gcc/fortran/
      	* gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
      	ST_OACC_END_ATOMIC.
      	(gfc_exec_op): Add EXEC_OACC_ATOMIC.
      	* match.h (gfc_match_oacc_atomic): New prototype.
      	* openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
      	wrapper functions around...
      	(gfc_match_omp_oacc_atomic): ... this new function.
      	(oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
      	EXEC_OACC_ATOMIC.
      	* parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
      	(case_exec_markers): Add ST_OACC_ATOMIC.
      	(gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
      	(parse_omp_atomic): Rename to...
      	(parse_omp_oacc_atomic): ... this new function.  Add omp_p formal
      	parameter.  Adjust all users.
      	(parse_executable): Handle ST_OACC_ATOMIC.
      	(is_oacc): Handle EXEC_OACC_ATOMIC.
      	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
      	EXEC_OACC_ATOMIC.
      	* st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
      	* trans-openmp.c (gfc_trans_oacc_directive): Handle
      	EXEC_OACC_ATOMIC.
      	* trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
      	gcc/
      	* builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
      	* omp-low.c (check_omp_nesting_restrictions): Allow
      	GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
      	contexts.
      	gcc/testsuite/
      	* c-c++-common/goacc-gomp/nesting-fail-1.c: Move "atomic" tests
      	from here to...
      	* c-c++-common/goacc-gomp/nesting-1.c: ... here, and expect them
      	to succeed.
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
      	file.
      	* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
      	* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
      	* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
      	* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
      	* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
      
      From-SVN: r229703
      Thomas Schwinge committed
    • [AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic · 496ea87d
      gcc/
      
      	* config/aarch64/aarch64-simd-builtins.def (fmulx): New.
      	* config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
      	* config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
      	builtin.
      	(vmulxq_f32): Likewise.
      	(vmulx_f64): New.
      	(vmulxq_f64): Rewrite to call fmulx builtin.
      	(vmulxs_f32): Likewise.
      	(vmulxd_f64): Likewise.
      	(vmulx_lane_f32): Remove.
      	* config/aarch64/iterators.md (UNSPEC): Add fmulx.
      
      gcc/testsuite/
      
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c: New.
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c: New.
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f32_1.c: New.
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f64_1.c: New.
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_1.c: New.
      	* gcc/testsuite/gcc.target/aarch64/simd/vmulxd_f64_1.c: New.
      
      From-SVN: r229702
      Bilyan Borisov committed
    • [AArch64] Fix ICE on (const_double:HF 0.0) · 04f725b9
      gcc/:
      
      	* config/aarch64/aarch64.md (*movhf_aarch64): Use
      	aarch64_reg_or_fp_zero for second operand.
      
      gcc/testsuite/:
      
      	* gcc.target/aarch64/fp16/set_zero_1.c: New.
      
      From-SVN: r229701
      Alan Lawrence committed
    • ChangeLog: Fix whitespace. · c7cf4ff9
      	* ChangeLog: Fix whitespace.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r229700
      Uros Bizjak committed
    • Make the default constructors of tuple and pair conditionally explicit. · f7632193
      2015-11-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
      
      	Make the default constructors of tuple and pair conditionally explicit.
      	* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
      	__is_default_constructible_atom, __is_default_constructible_safe,
      	__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
      	__is_nt_default_constructible_impl, is_nothrow_default_constructible,
      	is_nothrow_constructible, is_nothrow_assignable,
      	is_trivially_constructible, is_trivially_copy_constructible,
      	is_trivially_move_constructible, is_trivially_assignable,
      	is_trivially_copy_assignable, is_trivially_move_assignable,
      	is_trivially_destructible): Simplify.
      	* include/std/type_traits (
      	__do_is_implicitly_default_constructible_impl,
      	__is_implicitly_default_constructible_impl,
      	__is_implicitly_default_constructible_safe,
      	__is_implicitly_default_constructible): New.
      	* include/bits/stl_pair.h (pair::pair()): Use it.
      	* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
      	* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
      	* include/std/tuple (tuple<_Types...>::tuple()): Use it.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
      	* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
      	* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
      	* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
      	* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
      	* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
      
      From-SVN: r229699
      Ville Voutilainen committed
    • mvc1.c: Move to ... · bbe741d0
      	* gcc.dg/mvc1.c: Move to ...
      	* gcc.target/i386/mvc1.c: ... here.  Require ifunc.
      	* gcc.dg/mvc2.c: Move to ...
      	* gcc.target/i386/mvc2.c: ... here.
      	* gcc.dg/mvc3.c: Move to ...
      	* gcc.target/i386/mvc3.c: ... here.
      	* gcc.dg/mvc4.c: Move to ...
      	* gcc.target/i386/mvc4.c: ... here.  Require ifunc.
      	* gcc.dg/mvc5.c: Move to ...
      	* gcc.target/i386/mvc5.c: ... here.
      	* gcc.dg/mvc6.c: Move to ...
      	* gcc.target/i386/mvc6.c: ... here.
      	* gcc.dg/mvc7.c: Move to ...
      	* gcc.target/i386/mvc7.c: ... here.
      
      	* g++.dg/ext/mvc1.C: Require ifunc.
      
      From-SVN: r229697
      Uros Bizjak committed
    • defer mark_addressable calls during expand till the end of expand · 1b223a9f
      for  gcc/ChangeLog
      
      	* gimple-expr.c: Include hash-set.h and rtl.h.
      	(mark_addressable_queue): New var.
      	(mark_addressable): Factor actual marking into...
      	(mark_addressable_1): ... this.  Queue it up during expand.
      	(mark_addressable_2): New.
      	(flush_mark_addressable_queue): New.
      	* gimple-expr.h (flush_mark_addressable_queue): Declare.
      	* cfgexpand.c: Include gimple-expr.h.
      	(pass_expand::execute): Flush mark_addressable queue.
      
      From-SVN: r229696
      Alexandre Oliva committed
    • ifcombine: factor out inner block viability test · 067339d2
      Bail out early if the inner block has side effects or is otherwise not
      eligible for ifcombine.
      
      for  gcc/ChangeLog
      
      	* tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
      	bb_no_side_effects_p tests...
      	(tree_ssa_ifcombine_bb): ... here.
      
      From-SVN: r229691
      Alexandre Oliva committed
    • [PR68083] don't introduce undefined behavior in ifcombine · 828ca3d8
      The ifcombine pass may move a conditional access to an uninitialized
      value before the condition that ensures it is always well-defined,
      thus introducing undefined behavior.  Stop it from doing so.
      
      for  gcc/ChangeLog
      
      	PR tree-optimization/68083
      	* tree-ssa-ifcombine.c: Include tree-ssa.h.
      	(bb_no_side_effects_p): Test for undefined uses too.
      	* tree-ssa.c (gimple_uses_undefined_value_p): New.
      	* tree-ssa.h (gimple_uses_undefined_value_p): Declare.
      
      for  gcc/testsuite/ChangeLog
      
      	PR tree-optimization/68083
      	* gcc.dg/torture/pr68083.c: New.  From Zhendong Su.
      
      From-SVN: r229690
      Alexandre Oliva committed
    • Daily bump. · dac7e9b8
      From-SVN: r229689
      GCC Administrator committed
  2. 02 Nov, 2015 17 commits
  3. 01 Nov, 2015 5 commits
  4. 31 Oct, 2015 1 commit
    • runtime: If no split stacks, allocate stacks using mmap on 64-bit systems. · 2b193803
          
          When not using split stacks, libgo allocate large stacks for each
          goroutine.  On a 64-bit system, libgo allocates a maximum of 128G for
          the Go heap, and allocates 4M for each stack.  When the stacks are
          allocated from the Go heap, the result is that a program can only create
          32K goroutines, which is not enough for an active Go server.  This patch
          changes libgo to allocate the stacks using mmap directly, rather than
          allocating them out of the Go heap.  This change is only done for 64-bit
          systems when not using split stacks.  When using split stacks, the
          stacks are allocated using mmap directly anyhow.  On a 32-bit system,
          there is no maximum size for the Go heap, or, rather, the maximum size
          is the available address space anyhow.
          
          Reviewed-on: https://go-review.googlesource.com/16531
      
      From-SVN: r229636
      Ian Lance Taylor committed