Commit Graph

147643 Commits

Author SHA1 Message Date
Vladimir Makarov
73c77563c6 re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451)
2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/72778
	* lra-spills.c (regno_in_use_p): Check bb and regno modification.
	Don't stop on regular insns.

From-SVN: r239091
2016-08-03 18:54:49 +00:00
Jonathan Wakely
32eaac9c91 Define std::as_const
* include/std/utility (as_const): Define.
	* testsuite/20_util/as_const/1.cc: New test.
	* testsuite/20_util/as_const/rvalue_neg.cc: New test.

From-SVN: r239090
2016-08-03 19:11:23 +01:00
Jonathan Wakely
b7dabce5f3 Define std::owner_less<void> specialization (P0074R0)
* include/bits/shared_ptr.h (owner_less): Add default template
	argument.
	* include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
	specialization.
	(owner_less<void>): Define specialization.
	* include/bits/stl_function.h (__cpp_lib_transparent_operators):
	Update value.
	* testsuite/20_util/owner_less/void.cc: New test.
	* testsuite/experimental/feat-cxx14.cc: Update macro value tested.

From-SVN: r239089
2016-08-03 19:11:18 +01:00
Jonathan Wakely
068c8ac17c Define C++17 feature-test macros
* include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
	Define feature-test macro.
	* include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
	* include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
	* include/std/type_traits (__cpp_lib_logical_traits): Fix value.
	(__cpp_lib_type_trait_variable_templates): Define.

From-SVN: r239088
2016-08-03 19:11:10 +01:00
Nathan Sidwell
c1311c86c0 nvptx.c (nvptx_declare_function_name): Round frame size to DImode boundary.
gcc/
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
	size to DImode boundary.
	(nvptx_propagate): Likewise.

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.

From-SVN: r239086
2016-08-03 17:26:51 +00:00
Jonathan Wakely
0bd9bdb4db Define __cpp_lib_generic_associative_lookup feature-test macro
* include/bits/stl_function.h: Remove commented-out macro.
	* include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
	Define feature-test macro.
	* testsuite/experimental/feat-cxx14.cc: Add tests for more macros.

From-SVN: r239084
2016-08-03 17:42:31 +01:00
Ian Lance Taylor
3af8a0a810 escape: Stack allocate non-escaping expressions.
Stack allocate expressions that the analysis tracked and determined
    did not escape.
    
    Reviewed-on: https://go-review.googlesource.com/22377

From-SVN: r239083
2016-08-03 16:32:17 +00:00
Eric Gallager
612a6ffe0e download_prerequisites: Explicitly remove existing symlinks before trying to create new ones.
2016-08-03  Eric Gallager  <egall@gwmail.gwu.edu>

	* download_prerequisites: Explicitly remove existing symlinks
	before trying to create new ones.

From-SVN: r239082
2016-08-03 10:11:50 -06:00
Jonathan Wakely
f8571e5150 Enable Mathematical Special Functions for C++17
* include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
	C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
	true.
	* include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
	do #error for C++17.
	* include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
	of __STDCPP_WANT_MATH_SPEC_FUNCS__.
	* include/tr1/bessel_function.tcc: Likewise.
	* include/tr1/beta_function.tcc: Likewise.
	* include/tr1/cmath: Likewise.
	* include/tr1/ell_integral.tcc: Likewise.
	* include/tr1/exp_integral.tcc: Likewise.
	* include/tr1/gamma.tcc: Likewise.
	* include/tr1/hypergeometric.tcc: Likewise.
	* include/tr1/legendre_function.tcc: Likewise.
	* include/tr1/modified_bessel_func.tcc: Likewise.
	* include/tr1/poly_hermite.tcc: Likewise.
	* include/tr1/poly_laguerre.tcc: Likewise.
	* include/tr1/riemann_zeta.tcc: Likewise.
	* include/tr1/special_function_util.h: Likewise.
	* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.

From-SVN: r239081
2016-08-03 16:54:13 +01:00
Jonathan Wakely
27631a2542 Remove deprecated has_trivial_xxx traits
* include/std/type_traits (has_trivial_default_constructor): Remove.
	(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
	* testsuite/20_util/has_trivial_copy_assign/requirements/
	explicit_instantiation.cc: Remove test.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/has_trivial_default_constructor/value.cc:
	Likewise.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Check has_trivial_default_constructor, has_trivial_copy_constructor,
	and has_trivial_copy_assign are not defined.
	* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
	tests.
	* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line number.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r239079
2016-08-03 16:18:30 +01:00
Fritz Reese
c98583e997 lang.opt: New option -fdec-intrinsic-ints.
2016-08-03  Fritz Reese  <fritzoreese@gmail.com>

	gcc/fortran/
	* lang.opt: New option -fdec-intrinsic-ints.
	* options.c (set_dec_flags): Enable with -fdec.
	* gfortran.texi, invoke.texi, intrinsics.texi: Update documentation.
	* intrinsic.c (add_function, add_subroutine): New B/I/J/K intrinsic
	variants.

	gcc/testsuite/gfortran.dg/
	* dec_intrinsic_ints.f90: New testcase.

From-SVN: r239078
2016-08-03 14:55:26 +00:00
Richard Biener
9ad1a1da40 pr71403-1.c: Use dg-additional-options and remove -O3.
2016-08-03  Richard Biener  <rguenther@suse.de>

	* c-c++-common/ubsan/pr71403-1.c: Use dg-additional-options
	and remove -O3.
	* c-c++-common/ubsan/pr71403-2.c: Likewise.
	* c-c++-common/ubsan/pr71403-3.c: Likewise.

From-SVN: r239077
2016-08-03 14:41:34 +00:00
Richard Biener
cd75c9792a loadpre2.c: Disable LIM.
2016-08-03  Richard Biener  <rguenther@suse.de>

	* gcc.dg/tree-ssa/loadpre2.c: Disable LIM.
	* gcc.dg/tree-ssa/loadpre21.c: Likewise.
	* gcc.dg/tree-ssa/loadpre22.c: Likewise.
	* gcc.dg/tree-ssa/ssa-pre-23.c: Likewise.

From-SVN: r239071
2016-08-03 14:26:51 +00:00
Martin Liska
1a3c85fe05 Add branch_changer.py script to maintainer-scripts
* branch_changer.py: New file.

From-SVN: r239066
2016-08-03 12:43:11 +00:00
Senthil Kumar Selvaraj
30e8d8754d Fix tests that break unnecessarily for avr.
Require int32plus for tests that assume so, and conditionally skip pr44024.c,
 as it only works if the target allows deletion of null pointer checks.

gcc/testsuite/ChangeLog

	* gcc.dg/init-excess-2.c: Require int32plus.
	* gcc.dg/pr44024.c: Skip if target keeps null pointer checks.
	* gcc.dg/pr59963-2.c: Require int32plus.
	* gcc.dg/pr71084.c: Cast pointer to intprt_t.
	* gcc.dg/unroll-7.c: Require int32plus.

From-SVN: r239065
2016-08-03 11:50:32 +00:00
Alan Modra
860271ec6c [RS6000] power8 unaligned fp load/store
According to the POWER8 Processor User’s Manual and some
experimentation on power8 hardware, unaligned fp load/store on power8
does not invoke the alignment interrupt.

	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
	float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
	* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
	from -mefficient-unaligned-vector.  Note that this affects fp too.

From-SVN: r239013
2016-08-03 10:12:06 +09:30
Alan Modra
cef58349a0 [RS6000] cost SLOW_UNALIGNED_ACCESS
* config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
	cost more.

From-SVN: r239012
2016-08-03 10:05:14 +09:30
Alan Modra
d1f0a70a12 [RS6000] Force source of fix_trunc<mode>si2 to reg
* config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
	to a reg.  Localize vars.

From-SVN: r239011
2016-08-03 10:03:37 +09:30
Alan Modra
819c714522 [RS6000] Remove negative from option help strings
* config/rs6000/rs6000.opt: Remove negatives from help strings
	and comments.

From-SVN: r239010
2016-08-03 10:02:11 +09:30
Alan Modra
3717616ba7 [RS6000] Delete duplicate code
This removes the duplicate (TARGET_POWERPC64 && size == 16) block.

	* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
	Delete duplicated code.

From-SVN: r239009
2016-08-03 10:00:04 +09:30
GCC Administrator
749f7c4466 Daily bump.
From-SVN: r239008
2016-08-03 00:16:17 +00:00
Chris Manghane
7295570dd4 escape: Add basic debugging.
Emit basic debug information when compiling with the flag
    -fgo-debug-escape#.
    
    Reviewed-on: https://go-review.googlesource.com/22376

	2016-08-02  Chris Manghane  <cmang@google.com>

	* lang.opt: Add -fgo-debug-escape option.
	* go-c.h (go_create_gogo): Add debug_escape_level parameter.
	* go-lang.c (go_langhook_init): Pass go_debug_escape_level to
	go_create_gogo.

From-SVN: r239002
2016-08-02 21:43:48 +00:00
Vladimir Makarov
00803109af re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451)
2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/72778
	* lra-spills.c (regno_in_use_p): New.
	(lra_final_code_change): Use it.

From-SVN: r239000
2016-08-02 20:57:04 +00:00
Jonathan Wakely
589a30d1a4 Fix std::wstring allocator tests
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
	Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
	Likewise.
	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
	Likewise.

From-SVN: r238996
2016-08-02 20:34:36 +01:00
Jonathan Wakely
8bcd00bb13 Improve comments on check_v3_target_filesystem_ts
* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
	comments.

From-SVN: r238995
2016-08-02 20:34:30 +01:00
Jonathan Wakely
a4e1011c49 Move dg-error directives to relevant lines
* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
	dg-error to relevant line.
	* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
	Likewise.
	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.

From-SVN: r238994
2016-08-02 20:34:25 +01:00
Jonathan Wakely
64dde68296 Add -fno-show-column to libstdc++ test flags
* scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.

From-SVN: r238993
2016-08-02 20:34:15 +01:00
Roger Sayle
0e84fd1724 expr.c (push_value): Only call flush_quick_stack for non-constant arguments.
2016-08-02  Roger Sayle  <roger@nextmovesoftware.com>

	* expr.c (push_value): Only call flush_quick_stack for non-constant
	arguments.
	(build_java_throw_out_of_bounds_exception): No longer wrap calls
	to _Jv_ThowBadArrayIndex in a COMPOUND_EXPR as no longer needed.
	(java_check_reference): Annotate COND_EXPR with __builtin_expect
	to indicate that calling _Jv_ThrowNullPointerException is unlikely.
	(build_java_arrayaccess): Construct an unlikely COND_EXPR instead
	of a TRUTH_ANDIF_EXPR in a COMPOUND_EXPR.  Only generate array
	index MULT_EXPR when size_exp is not unity.
	(build_array_length_annotation): When optimizing, generate a write
	to the allocated array's length field to expose constant lengths
	to GCC's optimizers.
	(build_newarray): Call new build_array_length_annotation.
	(build_anewarray): Likewise.

	(expand_java_multianewarray): Fix whitespace.
	(expand_java_return): Likewise.
	(expand_invoke): Likewise.
	(load_type_state): Likewise.

From-SVN: r238992
2016-08-02 18:01:14 +00:00
Vladimir Makarov
8a8330b7ef re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC)
2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/69847
	* lra-int.h (struct lra-reg): Use restore_rtx instead of
	restore_regno.
	(lra_rtx_hash): New.
	* lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
	of restore_regno.
	(lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
	* lra-remat.c (rtx_hash): Rename and Move to lra.c.
	* lra-spills.c (lra_final_code_change): Don't delete insn when the
	next insn is USE with the same reg as the current insn source.
	* lra-constraints.c (curr_insn_transform): Use restore_rtx instead
	of restore_regno.
	(lra_constraints_init): Call initiate_invariants.
	(lra_constraints_finish): Call finish_invariants.
	(struct invariant, invariant_t, invariant_ptr_t): New.
	(const_invariant_ptr_t, invariants, invariants_pool): New.
	(invariant_table, invariant_hash, invariant_eq_p): New.
	(insert_invariant, initiate_invariants, finish_invariants): New.
	(clear_invariants, invalid_invariant_regs): New.
	(inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
	instead of restore_regno.
	(invariant_p, process_invariant_for_inheritance): New.
	(inherit_in_ebb): Implement invariant inheritance.
	(lra_inheritance): Initialize and finalize invalid_invariant_regs.
	(remove_inheritance_pseudos): Implement undoing invariant
	inheritance.
	(undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
	instead of restore_regno.
	* lra-assigns.c (regno_live_length): New.
	(reload_pseudo_compare_func): Use regno_live_length.
	(assign_by_spills): Use restore_rtx instead of restore_regno.
	(lra_assign): Ditto.  Initiate regno_live_length.

From-SVN: r238991
2016-08-02 16:07:36 +00:00
Muhammad Bilal
354c5470d8 * fixinc.in: Use --parents option to make LIB directory.
From-SVN: r238990
2016-08-02 09:58:06 -06:00
James Greenhalgh
1f19ed0247 [Patch AArch64 Obvious] Fix Bootstrap for my mistake in r238977
I deleted an 'f' halfway through a line when applying r238977. Not sure
how I managed it, but entirely my fault.

gcc/

	* config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
	__builtin_aarch64_fmindf.

From-SVN: r238989
2016-08-02 13:55:03 +00:00
Jonathan Wakely
807bd0963e Skip C tests if test flags include C++ options
* testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
	options are present that aren't valid for C.
	* testsuite/abi/header_cxxabi.c: Likewise.

From-SVN: r238988
2016-08-02 14:32:26 +01:00
Jonathan Wakely
8c65cd3054 Test TR1 special functions without adding them to std
* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
	check_value.cc: Do not add special functions to namespace std in TR1
	test.

From-SVN: r238987
2016-08-02 14:32:21 +01:00
Jonathan Wakely
196c9e7a7d Only run math special function tests for C++11 and later
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
	run for C++11 and later.
	* testsuite/ext/special_functions/conf_hyperg/check_value.cc:
	Likewise.
	* testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
	* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
	* testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
	* testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
	Likewise.
	* testsuite/special_functions/01_assoc_laguerre/check_value.cc:
	Likewise.
	* testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
	Likewise.
	* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
	Likewise.
	* testsuite/special_functions/02_assoc_legendre/check_value.cc:
	Likewise.
	* testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
	* testsuite/special_functions/02_assoc_legendre/compile_2.cc:
	* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
	* testsuite/special_functions/03_beta/check_value.cc: Likewise.
	* testsuite/special_functions/03_beta/compile.cc: Likewise.
	* testsuite/special_functions/03_beta/compile_2.cc: Likewise.
	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
	* testsuite/special_functions/04_comp_ellint_1/check_value.cc:
	Likewise.
	* testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
	* testsuite/special_functions/05_comp_ellint_2/check_value.cc:
	Likewise.
	* testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
	* testsuite/special_functions/06_comp_ellint_3/check_value.cc:
	Likewise.
	* testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
	Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
	Likewise.
	* testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
	Likewise.
	* testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
	* testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
	* testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
	* testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
	* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
	* testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
	* testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
	* testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
	* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
	* testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
	* testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
	* testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
	* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
	* testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
	* testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
	* testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
	* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
	* testsuite/special_functions/14_expint/check_value.cc: Likewise.
	* testsuite/special_functions/14_expint/compile.cc: Likewise.
	* testsuite/special_functions/14_expint/compile_2.cc: Likewise.
	* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
	* testsuite/special_functions/15_hermite/check_value.cc: Likewise.
	* testsuite/special_functions/15_hermite/compile.cc: Likewise.
	* testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
	* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
	* testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
	* testsuite/special_functions/16_laguerre/compile.cc: Likewise.
	* testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
	* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
	* testsuite/special_functions/17_legendre/check_value.cc: Likewise.
	* testsuite/special_functions/17_legendre/compile.cc: Likewise.
	* testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
	* testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
	* testsuite/special_functions/18_riemann_zeta/check_value.cc:
	Likewise.
	* testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
	* testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
	* testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
	* testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
	* testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
	* testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
	* testsuite/special_functions/20_sph_legendre/check_value.cc:
	Likewise.
	* testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
	* testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
	* testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
	* testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
	* testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
	* testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.

From-SVN: r238986
2016-08-02 14:32:16 +01:00
Jonathan Wakely
69332dba20 Make TR1 special function tests support C++98
* testsuite/tr1/5_numerical_facilities/special_functions/
	08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
	of [[gnu::unused]].
	* testsuite/tr1/5_numerical_facilities/special_functions/
	09_cyl_bessel_j/check_value.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	10_cyl_bessel_k/check_value.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	11_cyl_neumann/check_value.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	21_sph_bessel/check_value.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	23_sph_neumann/check_value.cc: Likewise.

From-SVN: r238985
2016-08-02 14:32:02 +01:00
Rainer Orth
e15396276e Update Solaris baselines
* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.

From-SVN: r238984
2016-08-02 11:18:44 +00:00
Bin Cheng
69b806f6a6 re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)
PR tree-optimization/34114
	* tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
	information for more control IVs.

	gcc/testsuite
	PR tree-optimization/34114
	* gcc.dg/tree-ssa/loop-42.c: New test.

From-SVN: r238983
2016-08-02 10:13:28 +00:00
Bin Cheng
4e2f2da341 re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)
PR tree-optimization/34114
	* fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
	PLUS_EXPR case.  Handle SSA_NAME case.

From-SVN: r238982
2016-08-02 10:09:33 +00:00
Jonathan Wakely
e877144da9 Skip scan-assembler test when -flto is used
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
	test if -flto used.

From-SVN: r238981
2016-08-02 11:02:25 +01:00
Jonathan Wakely
c1b6948e1b Support using -flto with libstdc++ testsuite
* testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
	additional flags for compiling libtestc++.a objects.

From-SVN: r238978
2016-08-02 10:40:50 +01:00
Tamar Christina
1efafef383 [PATCH AArch64] Add more AArch64 NEON intrinsics
Add vmaxnm_f64, vminnm_f64, vmax_f64, vmin_f64.

Committed on behalf of Tamar Christina <tamar.christina@arm.com> .

gcc/

	* config/aarch64/aarch64-simd-builtins.def
	(__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
	(__builtin_aarch64_fmaxdf): Likewise.
	(__builtin_aarch64_smin_nandf): Likewise.
	(__builtin_aarch64_smax_nandf): Likewise.
	* config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
	* config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
	(<fmaxmin><mode>3): ...this.
	* config/aarch64/arm_neon.h (vmaxnm_f64): New.
	(vminnm_f64): Likewise.
	(vmin_f64): Likewise.
	(vmax_f64): Likewise.
	* config/aarch64/iterators.md (FMAXMIN): Merge with...
	(FMAXMIN_UNS): ...this.
	(fmaxmin): Merged with
	(fmaxmin_op): ...this...
	(maxmin_uns_op): ...in to this.

gcc/testsuite/

	* gcc.target/aarch64/vminmaxnm.c: New.
	* gcc.target/aarch64/simd/vminmaxnm_1.c (main): Added float64x1_t
	tests.

From-SVN: r238977
2016-08-02 09:25:19 +00:00
GCC Administrator
0b953808f4 Daily bump.
From-SVN: r238976
2016-08-02 00:16:13 +00:00
Michael Meissner
e2a9919451 rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract on vector float...
[gcc]
2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Add support for vec_extract on vector float, vector int, vector
	short, and vector char vector types.
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
	vector float, vector int, vector short, and vector char
	optimizations on 64-bit ISA 2.07 systems for both constant and
	variable element numbers.
	(rs6000_split_vec_extract_var): Likewise.
	* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
	Altivec registers on ISA 2.07 and above.
	(vsx_extract_v4sf): Delete alternative that hard coded element 0,
	which never was matched due to the split occuring before register
	allocation (and the code would not have worked on little endian
	systems if it did match).  Allow extracts to go to the Altivec
	registers if ISA 2.07 (power8).  Change from using "" around the
	C++ code to using {}'s.
	(vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
	vec_extracts when the vector is in memory.
	(vsx_extract_v4sf_var): New insn to optimize vector float
	vec_extracts when the element number is variable on 64-bit ISA
	2.07 systems.
	(vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
	for 64-bit ISA 2.07 as well as ISA 3.0.
	(vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
	(vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
	(vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
	optimize vector int, vector short, and vector char vec_extracts
	when the vector is in memory.
	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
	optimize vector int, vector short, and vector char vec_extracts
	when the element number is variable.

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

	* gcc.target/powerpc/vec-extract-5.c: New tests to test
	vec_extract for vector float, vector int, vector short, and vector
	char.
	* gcc.target/powerpc/vec-extract-6.c: Likewise.
	* gcc.target/powerpc/vec-extract-7.c: Likewise.
	* gcc.target/powerpc/vec-extract-8.c: Likewise.
	* gcc.target/powerpc/vec-extract-9.c: Likewise.

From-SVN: r238971
2016-08-01 23:27:38 +00:00
Jason Merrill
72a30e45c5 Warn about mangled name change even if DECL_REALLY_EXTERN.
* mangle.c (mangle_decl): Warn about mangled name change even if
	DECL_REALLY_EXTERN.

From-SVN: r238966
2016-08-01 16:20:17 -04:00
Jason Merrill
884929e21d mangle.c (get_abi_tags): New.
* mangle.c (get_abi_tags): New.

	(find_substitution, write_unqualified_name, write_abi_tags)
	(maybe_check_abi_tags): Use it.

From-SVN: r238965
2016-08-01 16:20:12 -04:00
Jason Merrill
352b8babea * mangle.c (mangle_decl): Fix mangled name change warning.
From-SVN: r238964
2016-08-01 16:19:34 -04:00
Jonathan Wakely
92d58deefa Add non-const std::basic_string::data() for C++17
* include/bits/basic_string.h (data() const): Update comment.
	(data()): Add non-const overload for C++17.
	* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.

From-SVN: r238963
2016-08-01 21:12:58 +01:00
Georg-Johann Lay
3ce9aa832b re PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000 to symbols)
PR target/71948
	* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
	does not overlap with other symbol flags.

From-SVN: r238961
2016-08-01 17:12:32 +00:00
Wilco Dijkstra
71bfb77a02 This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP.
This patch optimizes the prolog and epilog code to reduce the number of
instructions and avoid multiple writes to SP.  The key idea is that epilogs
are almost exact reverses of prologs, and thus all the decisions only need
to be taken once.  The frame layout is decided in aarch64_layout_frame()
and decisions recorded in the new aarch64_frame fields initial_adjust,
callee_adjust, callee_offset and final_adjust.

A generic frame setup consists of 5 basic steps:

1. sub sp, sp, initial_adjust
2. stp reg1, reg2, [sp, -callee_adjust]!      (push if callee_adjust != 0)
3. add fp, sp, callee_offset                  (if frame_pointer_needed)
4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
5. sub sp, sp, final_adjust

The epilog reverses this, and may omit step 3 if alloca wasn't used.

    gcc/
	* config/aarch64/aarch64.h (aarch64_frame):
	Remove padding0 and hardfp_offset.  Add locals_offset,
	initial_adjust, callee_adjust, callee_offset and final_adjust.
	* config/aarch64/aarch64.c (aarch64_layout_frame):
	Remove unused padding0 and hardfp_offset initializations.
	Choose frame layout and set frame variables accordingly.
	Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
	(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
	(aarch64_pop_regs): Likewise.
	(aarch64_expand_prologue): Remove all decision code, just emit
	prolog according to frame variables.
	(aarch64_expand_epilogue): Remove all decision code, just emit
	epilog according to frame variables.
	(aarch64_initial_elimination_offset): Use offset to local/arg area.

    testsuite/
	* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
	single stack adjustment, no writeback.	
	* gcc.target/aarch64/test_frame_12.c: Likewise.
	* gcc.target/aarch64/test_frame_13.c: Likewise.
	* gcc.target/aarch64/test_frame_15.c: Likewise.
	* gcc.target/aarch64/test_frame_6.c: Likewise.
	* gcc.target/aarch64/test_frame_7.c: Likewise.
	* gcc.target/aarch64/test_frame_8.c: Likewise.
	* gcc.target/aarch64/test_frame_16.c: New test.

From-SVN: r238960
2016-08-01 16:37:24 +00:00
Jonathan Wakely
0f86525ae0 Disable std::string and std::wstring extern templates for C++17
* include/bits/basic_string.tcc: Disable explicit instantiation
	declarations for C++17.

From-SVN: r238959
2016-08-01 17:06:03 +01:00