Commit Graph

139051 Commits

Author SHA1 Message Date
Christophe Lyon
686f3b7726 vshrn_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vshrn_n.c: New file.

From-SVN: r224664
2015-06-19 15:59:07 +02:00
Christophe Lyon
5d3b46d6cf vshl_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vshl_n.c: New file.

From-SVN: r224663
2015-06-19 15:58:02 +02:00
Christophe Lyon
edd3deac48 vshll_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vshll_n.c: New file.

From-SVN: r224662
2015-06-19 15:56:45 +02:00
Christophe Lyon
ca06e09f3d vset_lane.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vset_lane.c: New file.

From-SVN: r224661
2015-06-19 15:55:37 +02:00
Christophe Lyon
364c52153d vrsra_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrsra_n.c: New file.

From-SVN: r224660
2015-06-19 15:54:35 +02:00
Christophe Lyon
083de97958 vrsqrts.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrsqrts.c: New file.

From-SVN: r224659
2015-06-19 15:53:19 +02:00
Christophe Lyon
6c6d7550c4 vrsqrte.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrsqrte.c: New file.

From-SVN: r224658
2015-06-19 15:52:32 +02:00
Christophe Lyon
fc4645f8da vrshrn_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrshrn_n.c: New file.

From-SVN: r224657
2015-06-19 15:51:01 +02:00
Christophe Lyon
f897dc1524 vrshr_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrshr_n.c: New file.

From-SVN: r224656
2015-06-19 15:49:36 +02:00
Christophe Lyon
442e81270a vshr_n.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vshr_n.c: New file.

From-SVN: r224655
2015-06-19 15:48:23 +02:00
Christophe Lyon
061df55eca vrshl.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrshl.c: New file.

From-SVN: r224654
2015-06-19 15:47:21 +02:00
Christophe Lyon
0b29b7091b vrev.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrev.c: New file.

From-SVN: r224653
2015-06-19 15:46:31 +02:00
Christophe Lyon
dea1b119bb vreinterpret.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: New file.

From-SVN: r224652
2015-06-19 15:44:17 +02:00
Christophe Lyon
d6a5cb5b6c vrecps.c: New file.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vrecps.c: New file.

From-SVN: r224651
2015-06-19 15:43:18 +02:00
Christophe Lyon
650c3cc477 2015-06-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
	(_ARM_FPSCR): Add FZ field.
	(clean_results): Force FZ=1 on AArch64.
	* gcc.target/aarch64/advsimd-intrinsics/vrecpe.c: New file.

From-SVN: r224650
2015-06-19 15:42:22 +02:00
Christophe Lyon
f6abd7f1b3 pr62308.c: New test.
2015-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/testsuite/
	* gcc.target/aarch64/pr62308.c: New test.

From-SVN: r224649
2015-06-19 15:02:55 +02:00
Mikael Morin
f0e99403af Fix openmp global state fortran regression
PR fortran/66549
gcc/fortran/
	* resolve.c (resolve_global_procedure): Don't save and restore
	OpenMP state around the call to gfc_resolve.
	(gfc_resolve): Save OpenMP state on entry and restore it on return.
gcc/testsuite/
	* gfortran.dg/gomp/omp_parallel_1.f90: New file.

From-SVN: r224648
2015-06-19 12:50:00 +00:00
Kyrylo Tkachov
3fc4f5cd93 [i386][obvious] Use std::swap instead of manually swapping in a couple of places
* config/i386/i386.c (ix86_function_versions): Use std::swap instead
	of manually swapping.
	(expand_vec_perm_interleave2): Likewise.

From-SVN: r224647
2015-06-19 11:05:02 +00:00
Ilya Enkovich
97d39d4133 Add missing test for r224643.
From-SVN: r224644
2015-06-19 09:22:56 +00:00
Ilya Enkovich
b1668acb81 tree-chkp.c (chkp_compute_bounds_for_assignment): Don't reuse bounds created for abnormal ssa names.
gcc/

	* tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
	reuse bounds created for abnormal ssa names.

gcc/testsuite/

	* gcc.target/i386/mpx/pr66581.c: New test.

From-SVN: r224643
2015-06-19 09:07:25 +00:00
Jakub Jelinek
9faf9a56c9 [nvptx] Address genrecog warnings
build/genrecog [...]/source-gcc/gcc/common.md [...]/source-gcc/gcc/config/nvptx/nvptx.md \
              insn-conditions.md > tmp-recog.c
    [...]/source-gcc/gcc/config/nvptx/nvptx.md:1206: warning: operand 0 missing mode?
    [...]/source-gcc/gcc/config/nvptx/nvptx.md:1206: warning: operand 1 missing mode?

	gcc/
	* config/nvptx/nvptx.md (allocate_stack): Rename to...
	(allocate_stack_<mode>): ... this, and add :P on both
	match_operand and unspec.
	(allocate_stack): New expander.

From-SVN: r224641
2015-06-19 09:41:49 +02:00
Thomas Schwinge
bfcd036fbe libgomp: libgomp.oacc-c-c++-common/lib-62.c is for acc_device_nvidia only
libgomp/
	* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
	acc_device_nvidia.

From-SVN: r224640
2015-06-19 09:41:44 +02:00
Thomas Schwinge
d7efbbf6af libgomp: XFAIL two libgomp.oacc-* tests
PR libgomp/66518
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
	* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.

From-SVN: r224639
2015-06-19 09:41:37 +02:00
Christian Bruel
a19d9c69e4 re PR target/66541 (r224314 causes ICE in gcc.dg/torture/pr52429.c)
PR target/66541
PR target/52144
* config/arm/arm.c (arm_set_current_function): Handle
explicit default options.

From-SVN: r224638
2015-06-19 08:58:22 +02:00
GCC Administrator
36f1dbb02f Daily bump.
From-SVN: r224637
2015-06-19 00:16:15 +00:00
Uros Bizjak
a5224bb7cb i386.md (*movsicc_noc_zext): New insn.
* config/i386/i386.md (*movsicc_noc_zext): New insn.
	(zero-extended cmove with mem peephole2): New pattern.
	(cmove with mem peephole2): Merge patterns.

testsuite/ChangeLog:

	* gcc.target/i386/cmov9.c: New test.

From-SVN: r224631
2015-06-18 21:26:26 +02:00
Segher Boessenkool
861b6407e4 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
From-SVN: r224629
2015-06-18 20:10:12 +02:00
Steve Ellcey
9ebfea12d2 mips.c (mips_rtx_costs): Remove HONOR_NAN check.
2015-06-18  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
	* config/mips/mips.md (*madd4<mode>): Ditto.
	(*nmadd3<mode>) Ditto.
	(*nmadd4<mode>_fastmath): Ditto.
	(*nmadd3<mode>_fastmath): Ditto.
	(*nmsub4<mode>): Ditto.
	(*nmsub3<mode>): Ditto.
	(*nmsub4<mode>_fastmath): Ditto.
	(*nmsub3<mode>_fastmath): Ditto.

From-SVN: r224625
2015-06-18 15:17:49 +00:00
Jason Merrill
769430b29c re PR c++/66001 (ICE when NSDMI in a literal class uses a destructor)
PR c++/66001
	* constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
	TRY_FINALLY_EXPR.
	(potential_constant_expression_1): Likewise.

From-SVN: r224620
2015-06-18 10:55:23 -04:00
Richard Biener
7e92772131 const4.C: New testcase.
2015-06-18  Richard Biener  <rguenther@suse.de>

	* g++.dg/other/const4.C: New testcase.

From-SVN: r224618
2015-06-18 14:52:57 +00:00
Jason Merrill
74cc78a623 * g++.dg/cpp0x/initlist96.C: Use <initializer_list>.
From-SVN: r224606
2015-06-18 09:44:16 -04:00
Michael Matz
f502d50e30 re PR middle-end/66253 (459.GemsFDTD in SPEC CPU 2006 is miscompiled)
PR middle-end/66253
	* tree-vect-stmts.c (vectorizable_store): Implement non-SLP
	grouped strided stores.
	(vectorizable_load): Don't use the DR from first_stmt in
	the non-SLP grouped strided case.

testsuite/
	* gcc.dg/vect/pr66253.c: New testcase.

From-SVN: r224605
2015-06-18 13:31:17 +00:00
Ilya Enkovich
55429190dd re PR target/66569 ([CHKP] internal compiler error: in assign_by_spills)
gcc/

	PR target/66569
	* function.c (assign_bounds): Add arguments assign_regs,
	assign_special, assign_bt.
	(assign_parms): For vararg functions handle bounds in BT
	and special slots after incoming vararg bounds.

gcc/testsuite/

	PR target/66569
	* gcc.target/i386/mpx/chkp-vararg.c: New test.

From-SVN: r224602
2015-06-18 10:18:48 +00:00
Ilya Enkovich
855f036dcc re PR middle-end/66568 ([CHKP] internal compiler error: in expand_expr_addr_expr_1)
gcc/

	PR middle-end/66568
	* cfgexpand.c (expand_return): Handle missing bounds.
	(expand_gimple_stmt_1): Likewise.
	* tree-chkp.c (chkp_expand_zero_bounds): New.
	* tree-chkp.h (chkp_expand_zero_bounds): New.

gcc/testsuite/

	PR middle-end/66568
	* gcc.target/i386/mpx/pr66568.c: New test.

From-SVN: r224601
2015-06-18 10:14:38 +00:00
Ilya Enkovich
847ffe1718 re PR middle-end/66567 ([CHKP] internal compiler error: in assign_parms)
gcc/

	PR middle-end/66567
	* ipa-chkp.c (chkp_maybe_create_clone): Require
	functions to be instrumentable.
	* tree-chkp.c (chkp_replace_function_pointer): Use
	chkp_instrumentable_p instead of attribute check.

gcc/testsuite/

	PR middle-end/66567
	* gcc.target/i386/mpx/pr66567.c: New test.

From-SVN: r224600
2015-06-18 10:09:22 +00:00
Jakub Jelinek
cc63a7fac4 re PR c++/66571 (Template substitution causes some OpenMP rejects-valid)
PR c++/66571
	* pt.c (tsubst_omp_clause_decl): New function.
	(tsubst_omp_clauses): Use it or tsubst_copy instead of
	tsubst_expr on OMP_CLAUSE_DECL.

	* g++.dg/gomp/pr66571-1.C: New test.

From-SVN: r224599
2015-06-18 11:54:17 +02:00
Richard Biener
91ff150410 re PR tree-optimization/66510 (gcc.target/arm/pr53636.c FAILs after r224221)
2015-06-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66510
	* tree-vect-stmts.c (vectorizable_load): Properly compute the
	number of vector loads for SLP permuted loads.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
	check the stride for loop vectorization.
	(vect_enhance_data_refs_alignment): Deal with SLP adjusted
	vectorization factor.
	(vect_analyze_group_access): If the group size is not a power
	of two require a epilogue loop.
	* tree-vect-loop.c (vect_analyze_loop_2): Move alignment
	compute and optimizing and alias test pruning after final
	vectorization factor computation.
	* tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
	vector alignment.
	(vect_transform_slp_perm_load): Properly compute the original
	number of vector load stmts.

	* gcc.dg/vect/slp-perm-12.c: New testcase.

From-SVN: r224598
2015-06-18 09:39:13 +00:00
Uros Bizjak
d38052e048 invoke.texi (-fsanitize-sections): Split @var to avoid "unlikely character , in @var" warning.
* doc/invoke.texi (-fsanitize-sections): Split @var to avoid
        "unlikely character , in @var" warning.

From-SVN: r224596
2015-06-18 10:31:43 +02:00
GCC Administrator
acd170827c Daily bump.
From-SVN: r224591
2015-06-18 00:16:19 +00:00
Jason Merrill
9fa6ffe1ba re PR c++/66515 (g++ segfaults when creating an std::initializer_list)
PR c++/66515
	* call.c (implicit_conversion): Call reshape_init here, early.
	(build_aggr_conv): Not here.

From-SVN: r224581
2015-06-17 16:45:32 -04:00
Jonathan Wakely
cc7f3d0eee C++11 allocator support for std::list.
PR libstdc++/55409
	* include/bits/list.tcc (_List_base::_M_clear()): Use allocator traits.
	(list::list(const list&)): Use allocator propagation trait. Use
	_M_assign_dispatch to copy elements.
	* include/bits/stl_list.h (_List_node): Use __aligned_membuf in C++11.
	(_List_node::_M_valptr()): Add accessor for stored value.
	(_List_iterator, _List_const_iterator, _List_base): Use _M_valptr().
	(_List_base, list): Use allocator traits.
	(_List_base::_M_get_Tp_allocator, _List_base::get_allocator): Remove.
	(_List_base::_M_move_nodes): New function.
	(_List_base(_List_base&&)): Use _M_move_nodes.
	(_List_base(_List_base&&, _Node_alloc_type&&)): New constructor.
	(list::_M_create_node, list::_M_erase, list::max_size): Use allocator
	traits.
	(list(size_type)): Add allocator parameter.
	(list(const list&)): Use allocator propagation trait.
	(list(const list&, const allocator_type&)): New constructor.
	(list(list&&, const allocator_type&)): Likewise.
	(list::operator=(list&&), list::swap(list&)): Use allocator
	propagation traits.
	(list::_M_move_assign): New functions.
	* include/debug/list: Add allocator-extended constructors.
	* include/profile/list: Likewise.
	* python/libstdcxx/v6/printers.py (get_value_from_list_node): New
	function to get value from _List_node.
	(StdListPrinter): Use get_value_from_list_node.
	* testsuite/23_containers/list/allocator/copy.cc: New.
	* testsuite/23_containers/list/allocator/copy_assign.cc: New.
	* testsuite/23_containers/list/allocator/minimal.cc: New.
	* testsuite/23_containers/list/allocator/move.cc: New.
	* testsuite/23_containers/list/allocator/move_assign.cc: New.
	* testsuite/23_containers/list/allocator/noexcept.cc: New.
	* testsuite/23_containers/list/allocator/swap.cc: New.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Adjust dg-prune-output line number.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r224580
2015-06-17 21:36:42 +01:00
Uros Bizjak
917ad3c685 noplt-1.c (dg-do): Fix target selector.
* gcc.target/i386/noplt-1.c (dg-do): Fix target selector.
	* gcc.target/i386/noplt-2.c (dg-do): Ditto.
	* gcc.target/i386/noplt-3.c (dg-do): Ditto.
	* gcc.target/i386/noplt-4.c (dg-do): ditto.

From-SVN: r224578
2015-06-17 22:34:57 +02:00
Uros Bizjak
341d2da30c i386.c (ix86_function_arg): Nest TARGET_64BIT code.
* config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
	(ix86_function_arg_advance): Ditto.
	(ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.

From-SVN: r224576
2015-06-17 21:54:10 +02:00
Andrew MacLeod
2bb8cb5896 function.h (struct rtl_data): Remove struct and accessor macros.
2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* function.h (struct rtl_data): Remove struct and accessor macros.
	* emit-rtl.h (struct rtl_data): Relocate to here.
	* Makefile.in (GTFILES): Add emit-rtl.h.
	* df-core.c: Include emit-rtl.h.
	* genattrtab.c: Likewise.
	* genconditions.c: Likewise.
	* genpreds.c: Likewise.
	* genrecog.c: Likewise.
	* regcprop.c: Likewise.
	* resource.c: Likewise.
	* sched-rgn.c: Likewise.
	* config/aarch64/cortex-a57-fma-steering.c: Likewise.
	* config/i386/winnt.c: Likewise.

From-SVN: r224573
2015-06-17 18:53:03 +00:00
Jakub Jelinek
a1ceb6041e re PR middle-end/66429 (ICE in expand_GOMP_SIMD_LAST_LANE)
PR middle-end/66429
	* omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
	instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
	and has_force_vectorize_loops flags from cfun into
	child_cfun.
	(expand_omp_simd): For broken loop, set cfun->has_simduid_loops
	if simduid is non-NULL.
	* tree-pass.h (make_pass_simduid_cleanup): New prototype.
	* passes.def (pass_simduid_cleanup): Add new pass after loop
	passes.
	* tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
	indirection from htab argument's type.
	(shrink_simd_arrays): New function.
	(vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
	Don't call adjust_simduid_builtins if there are no loops.
	(pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
	(pass_simduid_cleanup::execute): New method.
	(make_pass_simduid_cleanup): New function.

From-SVN: r224571
2015-06-17 20:11:42 +02:00
Jakub Jelinek
64b5fcfa3b re PR c++/66571 (Template substitution causes some OpenMP rejects-valid)
PR c++/66571
	* pt.c (tsubst_omp_clause_decl): New function.
	(tsubst_omp_clauses): Use it or tsubst_copy instead of
	tsubst_expr on OMP_CLAUSE_DECL.

	* g++.dg/gomp/pr66571-1.C: New test.

From-SVN: r224569
2015-06-17 20:01:05 +02:00
Jakub Jelinek
8c8b9f3265 re PR middle-end/66429 (ICE in expand_GOMP_SIMD_LAST_LANE)
PR middle-end/66429
	* omp-low.c (expand_omp_taskreg): Use child_cfun instead of
	DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
	and has_force_vectorize_loops flags from cfun into
	child_cfun.
	(expand_omp_simd): For broken loop, set cfun->has_simduid_loops
	if simduid is non-NULL.
	* tree-pass.h (make_pass_simduid_cleanup): New prototype.
	* passes.def (pass_simduid_cleanup): Add new pass after loop
	passes.
	* tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
	indirection from htab argument's type.
	(shrink_simd_arrays): New function.
	(vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
	Don't call adjust_simduid_builtins if there are no loops.
	(pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
	(pass_simduid_cleanup::execute): New method.
	(make_pass_simduid_cleanup): New function.

	* c-c++-common/gomp/pr66429.c: New test.

From-SVN: r224568
2015-06-17 19:59:25 +02:00
Andrew MacLeod
f6e3667f97 tree-core.h (tree_target_option): Make opts field a pointer to a cl_target_option instead of an instance of the...
2017-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* tree-core.h (tree_target_option): Make opts field a pointer to a 
	cl_target_option instead of an instance of the struct.
	* tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
	the structure.
	* tree.c (make_node_stat ): Allocate a cl_target_option struct for 
	TARGET_OPTION_NODE.
	(copy_node_stat): Allocate and copy struct cl_target_option.

From-SVN: r224567
2015-06-17 17:55:26 +00:00
Jonathan Wakely
21bdef94b1 forward_list.h (_Fwd_list_base(const _Node_alloc_type&)): Change parameter to rvalue-reference.
* include/bits/forward_list.h
	(_Fwd_list_base(const _Node_alloc_type&)): Change parameter to
	rvalue-reference.
	(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Likewise.
	(forward_list(const _Alloc&)): Split default constructor out to
	separate function.
	(forward_list(forward_list&&, const _Alloc&)): Move elements if base
	class didn't do so.
	(forward_list::_M_move_assign(forward_list&&, true_type)): Replace
	swap call with two assignments.
	* include/bits/forward_list.tcc
	(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Don't
	move elements when allocators are not equal.
	* include/debug/forward_list (forward_list(const allocator_type&)):
	Split default constructor out to separate function.
	* include/profile/forward_list (forward_list(const _Alloc&)):
	Likewise.

From-SVN: r224566
2015-06-17 18:45:45 +01:00
David Malcolm
41571b55b1 jit: Add missing type-checking to gcc_jit_{l|r}value_access_field
gcc/jit/ChangeLog:
	* libgccjit.c (gcc_jit_lvalue_access_field): Verify that the field
	is for the correct struct.
	(gcc_jit_rvalue_access_field): Likewise.

gcc/testsuite/ChangeLog:
	* jit.dg/test-error-accessing-field-in-other-struct.c: Rename to...
	* jit.dg/test-error-gcc_jit_rvalue_dereference_field-wrong-struct.c:
	...this.
	* jit.dg/test-error-gcc_jit_lvalue_access_field-wrong-struct.c:
	New testcase.
	* jit.dg/test-error-gcc_jit_rvalue_access_field-wrong-struct.c:
	New testcase.

From-SVN: r224565
2015-06-17 16:04:18 +00:00