Commit Graph

146296 Commits

Author SHA1 Message Date
Wilco Dijkstra e79136e41a GCC expands switch statements in a very simplistic way and tries to use a table...
GCC expands switch statements in a very simplistic way and tries to use a table
expansion even when it is a bad idea for performance or codesize.
GCC typically emits extremely sparse tables that contain mostly default entries
(something which currently cannot be tuned by backends).  Additionally the
computation of the minimum/maximum label offsets is too simplistic so the
tables are often twice as large as necessary.

The cost of a table switch is significant due to the setup overhead, the table
lookup (which due to being sparse and large adds unnecessary cachemisses)
and hard to predict indirect jump.  Therefore it is best to avoid using a table
unless there are many real case labels.

This patch fixes that by setting the default aarch64_case_values_threshold to
16 when the per-CPU tuning is not set.  On SPEC2006 this improves the switch
heavy benchmarks GCC and perlbench both in performance (1-2%) as well as size
(0.5-1% smaller).

    gcc/
	* config/aarch64/aarch64.c (aarch64_case_values_threshold):
	Return a better case_values_threshold when optimizing.

From-SVN: r236771
2016-05-26 12:25:51 +00:00
Wilco Dijkstra 5e4d7abeee SIMD operations like combine prefer to have their operands in FP registers,
so increase the cost of integer registers slightly to avoid unnecessary int<->FP
moves. This improves register allocation of scalar SIMD operations.

        * config/aarch64/aarch64-simd.md (aarch64_combinez):
        Add ? to integer variant.
        (aarch64_combinez_be): Likewise.

From-SVN: r236770
2016-05-26 12:12:20 +00:00
Thomas Preud'homme ffa8b55232 Skip tail call tests on Thumb-1 targets
2016-05-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.dg/plugin/plugin.exp: skip tail call tests for Thumb-1.

From-SVN: r236769
2016-05-26 10:04:20 +00:00
Chung-Lin Tang 6ce1307231 target.c (gomp_device_copy): New function.
libgomp/
2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>

	* target.c (gomp_device_copy): New function.
	(gomp_copy_host2dev): Likewise.
	(gomp_copy_dev2host): Likewise.
	(gomp_free_device_memory): Likewise.
	(gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
	(gomp_map_pointer): Likewise.
	(gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
	NULL value from alloc_func plugin hook.
	(gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
	(gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
	(gomp_unmap_vars): Likewise.
	(gomp_update): Adjust to call gomp_copy_dev2host and
	gomp_copy_host2dev functions.
	(gomp_unload_image_from_device): Handle false value from
	unload_image_func plugin hook.
	(gomp_init_device): Handle false value from init_device_func
	plugin hook.
	(gomp_exit_data): Adjust to call gomp_copy_dev2host.
	(omp_target_free): Adjust to call gomp_free_device_memory.
	(omp_target_memcpy): Handle return values from host2dev_func,
	dev2host_func, and dev2dev_func plugin hooks.
	(omp_target_memcpy_rect_worker): Likewise.
	(gomp_target_fini): Handle false value from fini_device_func
	plugin hook.
	* libgomp.h (struct gomp_device_descr): Adjust return type of
	init_device_func, fini_device_func, unload_image_func, free_func,
	dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
	* oacc-init.c (acc_shutdown_1): Handle false value from
	fini_device_func plugin hook.
	* oacc-host.c (host_init_device): Change return type to bool.
	(host_fini_device): Likewise.
	(host_unload_image): Likewise.
	(host_free): Likewise.
	(host_dev2host): Likewise.
	(host_host2dev): Likewise.
	* oacc-mem.c (acc_free): Handle plugin hook fatal error case.
	(acc_memcpy_to_device): Likewise.
	(acc_memcpy_from_device): Likewise.
	(delete_copyout): Add libfnname parameter, handle free_func
	hook fatal error case.
	(acc_delete): Adjust delete_copyout call.
	(acc_copyout): Likewise.
	(update_dev_host): Move gomp_mutex_unlock to after
	host2dev/dev2host hook calls.

	* plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
	to 'hsa_error_msg', for clarity.
	(hsa_fatal): Likewise.
	(hsa_error): New function.
	(init_hsa_context): Change return type to bool, adjust to return
	false on error.
	(GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
	return value.
	(GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
	return false on error.
	(get_agent_info): Adjust to return NULL on error.
	(destroy_hsa_program): Change return type to bool, adjust to
	return false on error.
	(GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
	(destroy_module): Change return type to bool, adjust to
	return false on error.
	(GOMP_OFFLOAD_unload_image): Likewise.
	(GOMP_OFFLOAD_fini_device): Likewise.
	(GOMP_OFFLOAD_alloc): Change to return NULL when called.
	(GOMP_OFFLOAD_free): Change to return false when called.
	(GOMP_OFFLOAD_dev2host): Likewise.
	(GOMP_OFFLOAD_host2dev): Likewise.
	(GOMP_OFFLOAD_dev2dev): Likewise.

	* plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
	(CUDA_CALL): Likewise.
	(CUDA_CALL_ASSERT): Likewise.
	(map_init): Change return type to bool, use CUDA_CALL* macros.
	(map_fini): Likewise.
	(init_streams_for_device): Change return type to bool, adjust
	call to map_init.
	(fini_streams_for_device): Change return type to bool, adjust
	call to map_fini.
	(select_stream_for_async): Release stream_lock before calls to
	GOMP_PLUGIN_fatal, adjust call to map_init.
	(nvptx_init): Use CUDA_CALL* macros.
	(nvptx_attach_host_thread_to_device): Change return type to bool,
	use CUDA_CALL* macros.
	(nvptx_open_device): Use CUDA_CALL* macros.
	(nvptx_close_device): Change return type to bool, use CUDA_CALL*
	macros.
	(nvptx_get_num_devices): Use CUDA_CALL* macros.
	(link_ptx): Change return type to bool, use CUDA_CALL* macros.
	(nvptx_exec): Use CUDA_CALL* macros.
	(nvptx_alloc): Use CUDA_CALL* macros.
	(nvptx_free): Change return type to bool, use CUDA_CALL* macros.
	(nvptx_host2dev): Likewise.
	(nvptx_dev2host): Likewise.
	(nvptx_wait): Use CUDA_CALL* macros.
	(nvptx_wait_async): Likewise.
	(nvptx_wait_all): Likewise.
	(nvptx_wait_all_async): Likewise.
	(nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
	use CUDA_CALL* macros, adjust call to map_fini.
	(GOMP_OFFLOAD_init_device): Change return type to bool,
	adjust code accordingly.
	(GOMP_OFFLOAD_fini_device): Likewise.
	(GOMP_OFFLOAD_load_image): Adjust calls to
	nvptx_attach_host_thread_to_device/link_ptx to handle errors,
	use CUDA_CALL* macros.
	(GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
	return code.
	(GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
	(GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
	handle error return.
	(GOMP_OFFLOAD_dev2host): Likewise.
	(GOMP_OFFLOAD_host2dev): Likewise.
	(GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
	(GOMP_OFFLOAD_openacc_create_thread_data): Likewise.

liboffloadmic/
2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>

	* plugin/libgomp-plugin-intelmic.cpp (offload): Change return type
	to bool, adjust return code.
	(GOMP_OFFLOAD_init_device): Likewise.
	(GOMP_OFFLOAD_fini_device): Likewise.
	(get_target_table): Likewise.
	(offload_image): Likwise.
	(GOMP_OFFLOAD_load_image): Adjust call to offload_image(), change
	to return -1 on error.
	(GOMP_OFFLOAD_unload_image): Change return type to bool, adjust return
	code.
	(GOMP_OFFLOAD_alloc): Likewise.
	(GOMP_OFFLOAD_free): Likewise.
	(GOMP_OFFLOAD_host2dev): Likewise.
	(GOMP_OFFLOAD_dev2host): Likewise.
	(GOMP_OFFLOAD_dev2dev): Likewise.

From-SVN: r236768
2016-05-26 09:58:56 +00:00
Jakub Jelinek 1875b9a02d re PR tree-optimization/71280 (ICE on gcc trunk on knl, wsm, ivb and bdw targets)
PR tree-optimization/71280
	* gcc.dg/pr71280.c: New test.

From-SVN: r236767
2016-05-26 11:29:28 +02:00
Chung-Lin Tang 06fca33def gomp-constants.h (GOMP_VERSION): Increment to 1...
2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>

	include/
	* gomp-constants.h (GOMP_VERSION): Increment to 1, add comment to
	describe the need for incrementing this macro whenever the plugin
	interface is modified.

From-SVN: r236766
2016-05-26 09:12:59 +00:00
Jakub Jelinek 2116e19f83 sse.md (*vcvtps2ph_store<mask_name>): Use v constraint instead of x constraint.
* config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
	instead of x constraint.
	(vcvtps2ph256<mask_name>): Likewise.

	* gcc.target/i386/avx512vl-vcvtps2ph-3.c: New test.

From-SVN: r236765
2016-05-26 10:45:49 +02:00
Jakub Jelinek 305aef090c sse.md (*ssse3_palignr<mode>_perm): Add avx512bw alternative.
* config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
	alternative.  Formatting fix.

	* gcc.target/i386/avx512bw-vpalignr-4.c: New test.
	* gcc.target/i386/avx512vl-vpalignr-4.c: New test.

From-SVN: r236764
2016-05-26 10:44:16 +02:00
Jakub Jelinek c7501e00ef * config/i386/sse.md
(<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
	to ...
	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
	(*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
	maybe_evex prefix instead of vex.
	(*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
	EXT_REX_SSE_REG_P (op0) case in the splitter.

	* gcc.target/i386/avx512vl-vbroadcast-3.c: New test.

From-SVN: r236763
2016-05-26 10:43:17 +02:00
Jiong Wang ca449d267c [AArch64, testsuite] Fix vmul_elem_1.c on big-endian
gcc/testsuite/
        * gcc.target/aarch64/simd/vmul_elem_1.c: Force result variables to be
        kept in memory.

From-SVN: r236762
2016-05-26 08:37:29 +00:00
GCC Administrator 9de98f89fe Daily bump.
From-SVN: r236761
2016-05-26 00:16:20 +00:00
Jeff Law 8af01c66fb re PR tree-optimization/71272 (internal compiler error: in operator[], through tree-ssa-threadupdate.c:1981)
PR tree-optimization/71272
	* tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
	Update comments.  Add test for empty path.

	PR tree-optimization/71272
	* gcc.c-torture/compile/pr71272.c: new test.

From-SVN: r236755
2016-05-25 16:25:35 -06:00
Bill Seurer f9d6ce734d This patch adds support for the vec_cmpne altivec builtins from the Power...
This patch adds support for the vec_cmpne altivec builtins from the Power
Architecture 64-Bit ELF V2 ABI OpenPOWER ABI for Linux Supplement (16 July
2015 Version 1.1). There are many of the builtins that are missing and this
is part of a series of patches to add them.

There aren't instructions for vec_cmpne so the output code is built from other
built-ins that do have instructions which in this case is the following.

vec_cmpneq (va, vb) == vec_nor (vec_cmpeq (va, vb), vec_cmpeq (va, vb))

The new test cases are executable tests which verify that the generated
code produces expected values. C macros were used so that the same
test case could be used for both the signed and unsigned versions of various
basic types. A separate executable test case is used for the long long versions
of vec_cmpne because of some differences in loading and storing the vectors.

[gcc]

2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
	* config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
	special case builtin.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
	code for ALTIVEC_BUILTIN_VEC_CMPNE.
	* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
	for __builtin_vec_cmpne.

[gcc/testsuite]

2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-cmpne.c: New test.
	* gcc.target/powerpc/vec-cmpne-long.c: New test.

From-SVN: r236753
2016-05-25 21:55:22 +00:00
Eric Botcazou a88a7b22c9 tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove redundant test and bail out if the type of the new operand is not a...
* tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
	redundant test and bail out if the type of the new operand is not
	a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.

From-SVN: r236748
2016-05-25 20:41:01 +00:00
Senthil Kumar Selvaraj 125f02edbd Wduplicated-cond-1.c: Use smaller const literal.
2016-05-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* c-c++-common/Wduplicated-cond-1.c: Use smaller const literal.
	* c-c++-common/pr60226.c: Require int32plus.
	* gcc.c-torture/execute/pr70602.c: Likewise.
	* gcc.dg/Warray-bounds-11.c: Use __SIZE_TYPE__ instead of
	unsigned long for malloc arg type.
	* gcc.dg/asr_div1.c: Require int32plus.
	* gcc.dg/enum-mode-1.c: XFAIL for int16.
	* gcc.dg/pie-1.c: Require pie.
	* gcc.dg/pie-2.c: Likewise.
	* gcc.dg/pr59471.c: Require int32plus.
	* gcc.dg/pr59963-2.c: XFAIL for int16.
	* gcc.dg/pr60114.c: Require int32plus.
	* gcc.dg/pr62090-2.c: Use __SIZE_TYPE__ instead of
	unsigned long for typedef of size_t.
	* gcc.dg/pr63914.c: Require int32plus.
	* gcc.dg/pr64536.c: Require pt32plus.
	* gcc.dg/pr65658.c: Likewise.
	* gcc.dg/pr67271.c: Require int32plus.
	* gcc.dg/pr68112.c: Likewise.
	* gcc.dg/pr69071.c: Skip for avr target.
	* gcc.dg/pr69973.c: Require int32plus.
	* gcc.dg/pr70169.c: Skip for avr target.
	* gcc.dg/sso-6.c: Require int32plus.
	* gcc.dg/sso-7.c: Likewise.
	* gcc.dg/sso-8.c: Likewise.
	* gcc.dg/vrp-min-max-2.c: Likewise.

From-SVN: r236741
2016-05-25 19:51:49 +00:00
Uros Bizjak c6e434f5b7 re PR target/70738 (Add -mgeneral-regs-only option)
PR target/70738
	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
	(ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
	MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
	* config/i386/i386.opt (ix86_target_flags): Add new Variable.
	(-mgeneral-regs-only): Add new option.
	* config/i386/i386.c (ix86_option_override_internal): Don't enable
	x87 instructions if only general registers are allowed.
	(ix86_target_string): Add ix86_flags argument. Handle additional
	flags options through ix86_flags argument.  Update all callers.
	* doc/invoke.texi: Document -mgeneral-regs-only.

testsuite/ChangeLog:

	PR target/70738
	* gcc.target/i386/pr70738-1.c: New test.
	* gcc.target/i386/pr70738-2.c: Likewise.
	* gcc.target/i386/pr70738-3.c: Likewise.
	* gcc.target/i386/pr70738-4.c: Likewise.
	* gcc.target/i386/pr70738-5.c: Likewise.
	* gcc.target/i386/pr70738-6.c: Likewise.
	* gcc.target/i386/pr70738-7.c: Likewise.
	* gcc.target/i386/pr70738-8.c: Likewise.
	* gcc.target/i386/pr70738-9.c: Likewise.

From-SVN: r236738
2016-05-25 20:58:49 +02:00
Jason Merrill 0ab22eb32c Fix comment.
From-SVN: r236737
2016-05-25 14:41:21 -04:00
Jason Merrill 1b22fc54fd PR c++/71173 - wrong qualified lookup
PR c++/70522
	* cp-tree.h (enum tag_types): Add scope_type.
	* parser.c (cp_parser_class_name): Use scope_type.
	(prefer_type_arg): Handle scope_type.
	(cp_parser_lookup_name): Use prefer_type_arg.
	* name-lookup.c (lookup_qualified_name): Change bool is_type_p to
	int prefer_type, use lookup_flags.
	* name-lookup.h: Adjust.

From-SVN: r236736
2016-05-25 14:29:14 -04:00
Joseph Myers 04080f22d6 * ru.po: Update.
From-SVN: r236732
2016-05-25 17:37:03 +01:00
Jonathan Wakely c42d228806 Fix configure test for sendfile()
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
	* configure: Regenerate.
	* config.h.in: Regenerate.

From-SVN: r236730
2016-05-25 17:13:52 +01:00
Kyrylo Tkachov 5c42d34143 [RTL ifcvt] PR rtl-optimization/66940: Avoid signed overflow in noce_get_alt_condition
PR rtl-optimization/66940
	* ifcvt.c (noce_get_alt_condition): Check that incrementing or
	decrementing desired_val will not overflow before performing these
	operations.

	* gcc.c-torture/execute/pr66940.c: New test.

From-SVN: r236728
2016-05-25 15:53:21 +00:00
Ilya Verbin bf9a1a07ad AVX-512F: Add vectorizer support builtins
gcc/
	* config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
	V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
	IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
	IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
	IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
	IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
	IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
	(builtin_description bdesc_args): Add __builtin_ia32_floorps512,
	__builtin_ia32_ceilps512, __builtin_ia32_truncps512,
	__builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
	__builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
	__builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
	__builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
	Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
	__builtin_ia32_cvtps2dq512_mask.
	(ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
	V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
	(ix86_builtin_vectorized_function): Handle builtins mentioned above.
	* config/i386/sse.md
	(<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
	Rename to ...
	(avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
	(<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
	to ...
	(avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
	(avx512f_vec_pack_sfix_v8df): New define_expand.
	(avx512f_roundpd512): Rename to ...
	(avx512f_round<castmode>512): ... this.  Change iterator.
	(avx512f_roundps512_sfix): New define_expand.
	(round<mode>2_sfix): Change iterator.
gcc/testsuite/
	* gcc.target/i386/avx512f-ceil-vec-1.c: New test.
	* gcc.target/i386/avx512f-ceil-vec-2.c: New test.
	* gcc.target/i386/avx512f-ceilf-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-ceilf-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-ceilf-vec-1.c: New test.
	* gcc.target/i386/avx512f-ceilf-vec-2.c: New test.
	* gcc.target/i386/avx512f-floor-vec-1.c: New test.
	* gcc.target/i386/avx512f-floor-vec-2.c: New test.
	* gcc.target/i386/avx512f-floorf-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-floorf-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-floorf-vec-1.c: New test.
	* gcc.target/i386/avx512f-floorf-vec-2.c: New test.
	* gcc.target/i386/avx512f-rint-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-rint-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-rintf-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-rintf-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-round-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-round-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-roundf-sfix-vec-1.c: New test.
	* gcc.target/i386/avx512f-roundf-sfix-vec-2.c: New test.
	* gcc.target/i386/avx512f-trunc-vec-1.c: New test.
	* gcc.target/i386/avx512f-trunc-vec-2.c: New test.
	* gcc.target/i386/avx512f-truncf-vec-1.c: New test.
	* gcc.target/i386/avx512f-truncf-vec-2.c: New test.

From-SVN: r236709
2016-05-25 15:08:14 +00:00
Marek Polacek a23faf7a4f re PR c/71266 (gcc ICE on x86_64-linux-gnu in "store_parm_decls_oldstyle")
PR c/71266
	* c-decl.c (store_parm_decls_oldstyle): Skip non-PARM_DECLs.

	* gcc.dg/noncompile/old-style-parm-3.c: New test.

From-SVN: r236708
2016-05-25 14:58:39 +00:00
Marek Polacek 95efe6b6f4 re PR c/71265 (gcc ICE on x86_64-linux-gnu with “seg fault”)
PR c/71265
	* c-decl.c (c_make_fname_decl): Don't check seen_error.

	* gcc.dg/noncompile/pr71265.c: New test.

From-SVN: r236707
2016-05-25 14:57:34 +00:00
Joseph Myers be650bb939 * ru.po: Update.
From-SVN: r236705
2016-05-25 15:48:34 +01:00
Nick Clifton e56989ffae msp430.c (msp430_attr): Produce an error if a static interrupt handler is detected.
* config/msp430/msp430.c (msp430_attr): Produce an error if a
	static interrupt handler is detected.
	* config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
	default linker script.
	* config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
	the low part of a symbolic pointer.

From-SVN: r236704
2016-05-25 14:31:46 +00:00
Nathan Sidwell 69a6d5ad31 crt0.s: Delete.
libgcc/
	* config/nvptx/crt0.s: Delete.
	* config/nvptx/crt0.c: New.
	* t-nvptx: Update.

	gcc/testsuite/
	* gcc.c-torture/execute/921110-1.c: Fix abort decl.
	add missing 2016-05-20  Nathan Sidwell  <nathan@acm.org> entry

From-SVN: r236702
2016-05-25 12:25:01 +00:00
Richard Biener 3072d4ea29 re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
2016-05-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71261
	* tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
	interesting stmt instead of immediate uses when looking
	for the use operand to replace.

	* c-c++-common/torture/pr71261.c: New testcase.

From-SVN: r236701
2016-05-25 11:49:03 +00:00
Martin Liska a86f2f6f94 Fix dump output typo
* ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.

From-SVN: r236700
2016-05-25 11:17:23 +00:00
Richard Biener e412ece4ce re PR tree-optimization/71264 (ICE in convert_move)
2016-05-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71264
	* tree-vect-stmts.c (vect_init_vector): Properly deal with
	vector type val.

	* gcc.dg/vect/pr71264.c: New testcase.

From-SVN: r236699
2016-05-25 10:57:53 +00:00
Paolo Carlini b9e551ad26 re PR c++/55992 (constexpr static member function not recognised in templated using statement)
2016-05-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55992
	* g++.dg/cpp0x/alias-decl-53.C: New.
	* g++.dg/cpp0x/alias-decl-54.C: Likewise.

From-SVN: r236698
2016-05-25 09:50:46 +00:00
Jonathan Wakely 834f4c4355 Remove _GLIBCXX14_USE_CONSTEXPR
* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
	* include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
	Remove const qualification on function. Replace
	_GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
	(_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
	(_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.

From-SVN: r236697
2016-05-25 10:36:28 +01:00
Martin Liska 6aa1abe5f2 re PR tree-optimization/71239 (ICE in operand_equal_p (fold-const.c:2769))
Fix PR tree-optimization/71239.

	* g++.dg/pr71239.C: New test.
	PR tree-optimization/71239
	* tree.c (array_at_struct_end_p): Do not call operand_equal_p
	if DECL_SIZE is NULL.

From-SVN: r236696
2016-05-25 09:10:16 +00:00
Richard Biener 6ca8e33c66 timevar.def (TV_TREE_LOOP_IFCVT): Add.
2016-05-25  Richard Biener  <rguenther@suse.de>

	* timevar.def (TV_TREE_LOOP_IFCVT): Add.
	* tree-if-conv.c (pass_data_if_conversion): Use it.

From-SVN: r236695
2016-05-25 08:52:22 +00:00
Paolo Carlini 021fad8626 lambda-generic-static1.C: Use target c++14.
2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
	* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.

From-SVN: r236694
2016-05-25 08:49:22 +00:00
Richard Biener 842d162e57 pr58135.c: Rename to ...
2016-05-25  Richard Biener  <rguenther@suse.de>

	* gcc/testsuite/gcc.dg/vect/pr58135.c: Rename to ...
	* gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c: ... this.

From-SVN: r236693
2016-05-25 08:21:35 +00:00
Bernd Edlinger 65c74eb276 cgraph.c (cgraph_node::get_availability): Fix typo in comment.
* cgraph.c (cgraph_node::get_availability): Fix typo in comment.
* symtab.c (symtab_node::binds_to_current_def_p): Likewise.
* varpool.c (varpool_node::get_availability): Likewise.

From-SVN: r236690
2016-05-25 07:38:32 +00:00
GCC Administrator 568da5e6e1 Daily bump.
From-SVN: r236689
2016-05-25 00:16:19 +00:00
Marek Polacek f184a36cb5 * g++.dg/pr65295.C: Use target c++14.
From-SVN: r236683
2016-05-24 23:41:06 +00:00
Michael Meissner c3eaf15aae altivec.md (VNEG iterator): New iterator for VNEGW/VNEGD instructions.
[gcc]
2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (VNEG iterator): New iterator for
	VNEGW/VNEGD instructions.
	(p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
	(neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
	support for ISA 3.0 VNEGW/VNEGD instructions.

[gcc/testsuite]
2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/p9-vneg.c: New test for ISA 3.0 VNEGW/VNEGD
	instructions.

From-SVN: r236679
2016-05-24 23:19:08 +00:00
Cesar Philippidis e46c777050 c-parser.c (c_parser_oacc_declare): Add support for GOMP_MAP_FIRSTPRIVATE_POINTER.
gcc/c/
	* c-parser.c (c_parser_oacc_declare): Add support for
	GOMP_MAP_FIRSTPRIVATE_POINTER.
	* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
	argument with enum c_omp_region_type ort.
	(handle_omp_array_sections): Likewise.  Update call to
	handle_omp_array_sections_1.
	(c_finish_omp_clauses): Add specific errors and warning messages for
	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
	call to handle_omp_array_sections.

	gcc/cp/
	* parser.c (cp_parser_oacc_declare): Add support for
	GOMP_MAP_FIRSTPRIVATE_POINTER.
	* semantics.c (handle_omp_array_sections_1): Replace bool is_omp
	argument with enum c_omp_region_type ort.  Don't privatize OpenACC
	non-static members.
	(handle_omp_array_sections): Replace bool is_omp argument with enum
	c_omp_region_type ort.  Update call to handle_omp_array_sections_1.
	(finish_omp_clauses): Add specific errors and warning messages for
	OpenACC.  Use firsrtprivate pointers for OpenACC subarrays.  Update
	call to handle_omp_array_sections.

	gcc/
	* gimplify.c (omp_notice_variable): Use zero-length arrays for data
	pointers inside OACC_DATA regions.
	(gimplify_scan_omp_clauses): Prune firstprivate clause associated
	with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
	(gimplify_adjust_omp_clauses): Fix typo in comment.

	gcc/testsuite/
	* c-c++-common/goacc/data-clause-duplicate-1.c: Adjust test.
	* c-c++-common/goacc/deviceptr-1.c: Likewise.
	* c-c++-common/goacc/kernels-alias-3.c: Likewise.
	* c-c++-common/goacc/kernels-alias-4.c: Likewise.
	* c-c++-common/goacc/kernels-alias-5.c: Likewise.
	* c-c++-common/goacc/kernels-alias-8.c: Likewise.
	* c-c++-common/goacc/kernels-alias-ipa-pta-3.c: Likewise.
	* c-c++-common/goacc/pcopy.c: Likewise.
	* c-c++-common/goacc/pcopyin.c: Likewise.
	* c-c++-common/goacc/pcopyout.c: Likewise.
	* c-c++-common/goacc/pcreate.c: Likewise.
	* c-c++-common/goacc/pr70688.c: New test.
	* c-c++-common/goacc/present-1.c: Adjust test.
	* c-c++-common/goacc/reduction-5.c: Likewise.
	* g++.dg/goacc/data-1.C: New test.

	libgomp/
	* oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
	(acc_free): Likewise.
	(acc_memcpy_to_device): Likewise.
	(acc_memcpy_from_device): Likewise.
	(acc_deviceptr): Likewise.
	(acc_hostptr): Likewise.
	(acc_is_present): Likewise.
	(acc_map_data): Likewise.
	(acc_unmap_data): Likewise.
	(present_create_copy): Likewise.
	(delete_copyout): Likewise.
	(update_dev_host): Likewise.
	* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
	* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
	it only runs on nvptx targets.
	* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.

From-SVN: r236678
2016-05-24 15:54:21 -07:00
Michael Meissner 4bfc9db7e6 altivec.md (VParity): New mode iterator for vector parity built-in functions.
[gcc]
2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (VParity): New mode iterator for vector
	parity built-in functions.
	(p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
	zeros.
	(p9v_parity<mode>2): Likewise.
	* config/rs6000/vector.md (VEC_IP): New mode iterator for vector
	parity.
	(ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
	(parity<mode>2): ISA 3.0 expander for vector parity.
	* config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
	power9 built-ins.
	(BU_P9_64BIT_MISC_0): Likewise.
	(BU_P9_MISC_0): Likewise.
	(BU_P9V_AV_1): Likewise.
	(BU_P9V_AV_2): Likewise.
	(BU_P9V_AV_3): Likewise.
	(BU_P9V_AV_P): Likewise.
	(BU_P9V_VSX_1): Likewise.
	(BU_P9V_OVERLOAD_1): Likewise.
	(BU_P9V_OVERLOAD_2): Likewise.
	(BU_P9V_OVERLOAD_3): Likewise.
	(VCTZB): Add vector count trailing zeros support.
	(VCTZH): Likewise.
	(VCTZW): Likewise.
	(VCTZD): Likewise.
	(VPRTYBD): Add vector parity support.
	(VPRTYBQ): Likewise.
	(VPRTYBW): Likewise.
	(VCTZ): Add overloaded vector count trailing zeros support.
	(VPRTYB): Add overloaded vector parity support.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	overloaded vector count trailing zeros and parity instructions.
	* config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
	vector parity support.
	* config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
	trailing zeros support.
	(vec_cntlz): Likewise.
	(vec_vctzb): Likewise.
	(vec_vctzd): Likewise.
	(vec_vctzh): Likewise.
	(vec_vctzw): Likewise.
	(vec_vprtyb): Add ISA 3.0 vector parity support.
	(vec_vprtybd): Likewise.
	(vec_vprtybw): Likewise.
	(vec_vprtybq): Likewise.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	the ISA 3.0 vector count trailing zeros and vector parity built-in
	functions.

[gcc/testsuite]
2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/p9-vparity.c: New file to check ISA 3.0
	vector parity built-in functions.
	* gcc.target/powerpc/ctz-3.c: New file to check ISA 3.0 vector
	count trailing zeros automatic vectorization.
	* gcc.target/powerpc/ctz-4.c: New file to check ISA 3.0 vector
	count trailing zeros built-in functions.

From-SVN: r236677
2016-05-24 22:45:45 +00:00
Paolo Carlini fe3473a686 lambda-generic-static1.C: Use target c++14.
2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
	* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.

From-SVN: r236676
2016-05-24 22:38:00 +00:00
Kugan Vivekanandarajah 2bc145afaa tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is stmt_to_insert.
gcc/ChangeLog:

2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
	when there is stmt_to_insert.


gcc/testsuite/ChangeLog:

2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* gcc.dg/tree-ssa/reassoc-44.c: New test.

From-SVN: r236673
2016-05-24 22:29:27 +00:00
Pat Haugen 26869fdb47 lhs-1.c: Fix testcase to avoid subreg changes.
* gcc.target/powerpc/lhs-1.c: Fix testcase to avoid subreg changes.

From-SVN: r236672
2016-05-24 22:24:16 +00:00
Paolo Carlini b2dc9c3b20 re PR c++/50436 (Crash or hang on invalid template code)
2016-05-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50436
	* g++.dg/template/crash123.C: New.
	* g++.dg/template/crash124.C: Likewise.

From-SVN: r236671
2016-05-24 21:32:29 +00:00
Jason Merrill 66f90a1761 PR c++/70584 - don't force indirection to an rvalue
* cp-gimplify.c (cp_fold_maybe_rvalue): Loop in case cp_fold
	returns a decl.
	(cp_fold) [INDIRECT_REF]: Don't fold to an rvalue.

From-SVN: r236670
2016-05-24 17:06:53 -04:00
François Dumont 732eb07625 c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2016-05-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
	* include/bits/hashtable_policy.h
	(_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
	having load factor management.
	(_Mask_range_hashing): New.
	(__clp2): New.
	(_Power2_rehash_policy): New.
	(_Inserts<>): Remove last template parameter, _Unique_keys, so that
	partial specializations only depend on whether iterators are constant
	or not.
	* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
	test new hash policy.
	* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/insert/hash_policy.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
	New.
	* testsuite/performance/23_containers/insert/54075.cc: Add benchmark
	using the new hash policy.
	* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.

From-SVN: r236669
2016-05-24 20:55:57 +00:00
Martin Sebor f65e97fd3d PR c++/71147 - [6 Regression] Flexible array member wrongly rejected in template
gcc/ChangeLog:
2016-05-24  Martin Sebor  <msebor@redhat.com>

	PR c++/71147
	* gcc/tree.h (complete_or_array_type_p): New inline function.

gcc/testsuite/ChangeLog:
2016-05-24  Martin Sebor  <msebor@redhat.com>

	PR c++/71147
	* g++.dg/ext/flexary16.C: New test.

gcc/cp/ChangeLog:
2016-05-24  Martin Sebor  <msebor@redhat.com>

	PR c++/71147
	* decl.c (layout_var_decl, grokdeclarator): Use complete_or_array_type_p.
	* pt.c (instantiate_class_template_1): Try to complete the element
	type of a flexible array member.
	(can_complete_type_without_circularity): Handle arrays of unknown bound.
	* typeck.c (complete_type): Also complete the type of the elements of
	arrays with an unspecified bound.

From-SVN: r236664
2016-05-24 14:29:36 -06:00
Jakub Jelinek 8e0dc0549a i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
* config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
	* config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
	rather than X86_TUNE_AVOID_4BYTE_PREFIXES.

From-SVN: r236662
2016-05-24 21:12:42 +02:00