Commit Graph

143658 Commits

Author SHA1 Message Date
Ryan Burn
b6e3db0608 [cilkplus] Fix cilk_spawn gimplification bug (PR cilkplus/69048)
PR c++/69048
	* cilk.c (create_cilk_wrapper_body): Call fold_build_cleanup_point_expr
	 to add missing cleanup point.

	PR c++/69048
	* g++.dg/cilk-plus/CK/pr69048.cc: New test.

From-SVN: r232393
2016-01-14 15:23:09 -07:00
Michael Meissner
006df05d5c Revert 2016-01-13 change.
From-SVN: r232392
2016-01-14 21:54:16 +00:00
Jeff Law
cf73ed7b40 Re: [PATCH][PR tree-optimization/69270] Exploit VRP information in DOM
* tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
	typo.

From-SVN: r232391
2016-01-14 14:43:20 -07:00
Richard Henderson
47c147b03f re PR c/69272 (ICE: in c_builtin_function, at c/c-decl.c:4020 with -fgnu-tm)
PR c/69272
PR tree-opt/68964

  * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
  * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
  instead of builtin_decl_declared_p to test for declaration.

From-SVN: r232390
2016-01-14 13:36:12 -08:00
Nicklas Bo Jensen
4318655262 loop.texi (Loop Analysis and Representation): Document loop_depth function.
* doc/loop.texi (Loop Analysis and Representation): Document
	loop_depth function.

From-SVN: r232389
2016-01-14 14:03:11 -07:00
Andreas Tobler
bf93d54363 configure.ac: Replace the hard-coded -ldl requirement for link_sanitizer_common with a...
2016-01-14  Andreas Tobler  <andreast@gcc.gnu.org>

    * configure.ac: Replace the hard-coded -ldl requirement for
    link_sanitizer_common with a configure time check for -ldl.
    * configure: Regenerate.

From-SVN: r232385
2016-01-14 21:27:49 +01:00
Tom de Vries
e6d6ec9e06 Mark symbols in offload tables with force_output in read_offload_tables
2016-01-14  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/68773
	* c-parser.c (c_parser_oacc_declare, c_parser_omp_declare_target): Don't
	set force_output.

	* parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
	set force_output.

	* omp-low.c (expand_omp_target): Don't set force_output.
	* varpool.c (varpool_node::get_create): Same.
	* lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
	offload_funcs with force_output.

From-SVN: r232384
2016-01-14 20:01:39 +00:00
Francois-Xavier Coudert
c3f6914aa4 re PR testsuite/67509 (FAIL: gfortran.dg/ieee/ieee_7.f90 -O0 execution test)
PR testsuite/67509
	* gfortran.dg/ieee/ieee_7.f90: For out of bound precision or
	range tests use 100 * maximum instead of maximum + 1.

From-SVN: r232383
2016-01-14 20:58:17 +01:00
Jakub Jelinek
cd65ae9071 re PR debug/69244 (ICE in plus_constant, at explow.c:87 on i686-linux-gnu)
PR debug/69244
	* lra-eliminations.c (move_plus_up): Don't change anything if either
	the outer or inner subreg mode is not MODE_INT.
	* dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
	integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.

	* gcc.dg/guality/pr69244.c: New test.

From-SVN: r232382
2016-01-14 20:57:34 +01:00
Uros Bizjak
19643948db target-supports.exp (check_effective_target_issignaling): New procedure.
* lib/target-supports.exp (check_effective_target_issignaling):
	New procedure.
	* gcc.dg/pr61441.c: Require issignaling effective target.

From-SVN: r232381
2016-01-14 20:53:25 +01:00
Segher Boessenkool
fe79c97e01 powerpc: Add some XFAILs to 20050603-3.c (PR68803)
In r230167 I made this testcase be tested on 64-bit as well, since it
now works.  That was a tad optimistic for powerpc64le though.  For now,
XFAIL it there.


	PR target/68803
	* gcc.target/powerpc/20050603-3.c: Add xfails for powerpc64le.

From-SVN: r232380
2016-01-14 20:24:28 +01:00
David Malcolm
c7df95d83e PR preprocessor/69177 and PR c++/68819: libcpp fallbacks and -Wmisleading-indentation
gcc/c-family/ChangeLog:
	PR c++/68819
	* c-indentation.c (get_visual_column): Add location_t param.
	Handle the column number being zero by effectively disabling the
	warning, with an "inform".
	(should_warn_for_misleading_indentation): Add location_t argument
	for all uses of get_visual_column.

gcc/testsuite/ChangeLog:
	PR c++/68819
	PR preprocessor/69177
	* gcc.dg/plugin/location-overflow-test-1.c: New test case.
	* gcc.dg/plugin/location-overflow-test-2.c: New test case.
	* gcc.dg/plugin/location_overflow_plugin.c: New test plugin.
	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.

libcpp/ChangeLog:
	PR preprocessor/69177
	* line-map.c (LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES): New
	constant.
	(LINE_MAP_MAX_LOCATION_WITH_COLS): Add note about unit tests
	to comment.
	(can_be_stored_compactly_p): Reduce threshold from
	LINE_MAP_MAX_LOCATION_WITH_COLS to
	LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES.
	(get_combined_adhoc_loc): Likewise.
	(get_range_from_loc): Likewise.
	(linemap_line_start): Ensure that a new ordinary map is created
	when transitioning from range-packing being enabled to disabled,
	at the LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES threshold.  Set
	range_bits to 0 for new ordinary maps when beyond this limit.
	Prevent the "increase the column bits of a freshly created map"
	optimization if the range bits has reduced.

From-SVN: r232379
2016-01-14 19:10:17 +00:00
Edward Smith-Rowland
2be75957b8 Implement TR29124 C++ special Math Functions.
2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
	    Jonathan Wakely  <jwakely@redhat.com>
	    Florian Goth <CaptainSifff@gmx.de>

	Implement TR29124 C++ special Math Functions.
	* include/Makefile.am: Add new headers.
	* include/Makefile.in: Regenerate.
	* include/bits/specfun.h: New.
	* include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
	* include/tr1/bessel_function.tcc: Ditto.
	* include/tr1/beta_function.tcc: Ditto.
	* include/tr1/cmath: Ditto.
	* include/tr1/ell_integral.tcc: Ditto.
	* include/tr1/exp_integral.tcc: Ditto.
	* include/tr1/gamma.tcc: Ditto.
	* include/tr1/hypergeometric.tcc: Ditto.
	* include/tr1/legendre_function.tcc: Ditto.
	* include/tr1/modified_bessel_func.tcc: Ditto.
	* include/tr1/poly_hermite.tcc: Ditto.
	* include/tr1/poly_laguerre.tcc: Ditto.
	* include/tr1/riemann_zeta.tcc: Ditto.
	* include/tr1/special_function_util.h: Ditto.
	* testsuite/ext/special_functions/conf_hyperg: New.
	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
	* testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
	* testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
	* testsuite/ext/special_functions/hyperg: New.
	* testsuite/ext/special_functions/hyperg/check_nan.cc: New.
	* testsuite/ext/special_functions/hyperg/check_value.cc: New.
	* testsuite/ext/special_functions/hyperg/compile.cc: New.
	* testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
	* testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
	* testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
	* testsuite/special_functions/02_assoc_legendre/compile.cc: New.
	* testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
	* testsuite/special_functions/03_beta/check_nan.cc: New.
	* testsuite/special_functions/03_beta/check_value.cc: New.
	* testsuite/special_functions/03_beta/compile.cc: New.
	* testsuite/special_functions/03_beta/compile_2.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
	* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
	* testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
	* testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
	* testsuite/special_functions/10_cyl_neumann/compile.cc: New.
	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
	* testsuite/special_functions/11_ellint_1/check_nan.cc: New.
	* testsuite/special_functions/11_ellint_1/check_value.cc: New.
	* testsuite/special_functions/11_ellint_1/compile.cc: New.
	* testsuite/special_functions/11_ellint_1/compile_2.cc: New.
	* testsuite/special_functions/12_ellint_2/check_nan.cc: New.
	* testsuite/special_functions/12_ellint_2/check_value.cc: New.
	* testsuite/special_functions/12_ellint_2/compile.cc: New.
	* testsuite/special_functions/12_ellint_2/compile_2.cc: New.
	* testsuite/special_functions/13_ellint_3/check_nan.cc: New.
	* testsuite/special_functions/13_ellint_3/check_value.cc: New.
	* testsuite/special_functions/13_ellint_3/compile.cc: New.
	* testsuite/special_functions/13_ellint_3/compile_2.cc: New.
	* testsuite/special_functions/14_expint/check_nan.cc: New.
	* testsuite/special_functions/14_expint/check_value.cc: New.
	* testsuite/special_functions/14_expint/compile.cc: New.
	* testsuite/special_functions/14_expint/compile_2.cc: New.
	* testsuite/special_functions/15_hermite/check_nan.cc: New.
	* testsuite/special_functions/15_hermite/check_value.cc: New.
	* testsuite/special_functions/15_hermite/compile.cc: New.
	* testsuite/special_functions/15_hermite/compile_2.cc: New.
	* testsuite/special_functions/16_laguerre/check_nan.cc: New.
	* testsuite/special_functions/16_laguerre/check_value.cc: New.
	* testsuite/special_functions/16_laguerre/compile.cc: New.
	* testsuite/special_functions/16_laguerre/compile_2.cc: New.
	* testsuite/special_functions/17_legendre/check_nan.cc: New.
	* testsuite/special_functions/17_legendre/check_value.cc: New.
	* testsuite/special_functions/17_legendre/compile.cc: New.
	* testsuite/special_functions/17_legendre/compile_2.cc: New.
	* testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
	* testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
	* testsuite/special_functions/18_riemann_zeta/compile.cc: New.
	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
	* testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
	* testsuite/special_functions/19_sph_bessel/check_value.cc: New.
	* testsuite/special_functions/19_sph_bessel/compile.cc: New.
	* testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
	* testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
	* testsuite/special_functions/20_sph_legendre/check_value.cc: New.
	* testsuite/special_functions/20_sph_legendre/compile.cc: New.
	* testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
	* testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
	* testsuite/special_functions/21_sph_neumann/check_value.cc: New.
	* testsuite/special_functions/21_sph_neumann/compile.cc: New.
	* testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
	* testsuite/util/specfun_testcase.h: New.
	* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
	* testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
	* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.


Co-Authored-By: Florian Goth <CaptainSifff@gmx.de>
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r232377
2016-01-14 18:12:43 +00:00
Marek Polacek
00083992a6 re PR c/69262 (Request for better array bounds warning)
PR c/69262
	* c-decl.c (grokdeclarator): Provide more information for invalid
	array declarations.

	* gcc.dg/array-15.c: New test.

From-SVN: r232376
2016-01-14 17:46:25 +00:00
Alan Lawrence
b56ed680d4 Tidy: remove reduc_xxx_optab migration code.
* doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
	reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
	reduc_uplus_@var{m}): Remove.
	* expr.c (expand_expr_real_2): Remove expansion path for
	reduc_[us](min|max|plus) optabs.
	* optabs-tree.c (scalar_reduc_to_vector): Remove.
	* optabs-tree.h (scalar_reduc_to_vector): Remove.
	* optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
	reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
	* tree-vect-loop.c (vectorizable_reduction): Remove test for
	reduc_[us](min|max|plus) optabs.

From-SVN: r232373
2016-01-14 16:30:56 +00:00
Alan Lawrence
59a2f0fa2a [MIPS] Migrate reduction optabs in mips-ps-3d.md
* config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
	(reduc_plus_scal_v2sf): New.
	(reduc_smax_v2sf): Rename to...
	(reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
	(reduc_smin_v2sf): Rename to...
	(reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.

From-SVN: r232371
2016-01-14 16:19:59 +00:00
Jason Merrill
a7ccb9e722 re PR c++/69261 (Copying char arrays during constexpr evaluation does not work reliably)
PR c++/69261
	* constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.

From-SVN: r232370
2016-01-14 10:32:31 -05:00
Jan Hubicka
73e48cb322 alias.c (compare_base_symbol_refs): New function.
* alias.c (compare_base_symbol_refs): New function.
	(rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
	it.

From-SVN: r232369
2016-01-14 15:30:12 +00:00
Jakub Jelinek
0c9b32949e re PR middle-end/68146 (ice in gimple_stmt_nonnegative_warnv_p with -O2)
PR middle-end/68146
	PR tree-optimization/69155
	* tree-complex.c: Include cfganal.h.
	(phis_to_revisit): New variable.
	(extract_component): Add phiarg_p argument.  Assert that returned
	SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
	(update_phi_components): Partly rewrite to use loop over real/imag
	components instead of code duplication.  If extract_component returns
	SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
	create_tmp_reg into the PHI node instead, and mention the phi triplet
	in phis_to_revisit.
	(tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
	in phis_to_revisit at the end.

	* gfortran.dg/pr68146.f: New test.
	* gfortran.dg/pr69155.f90: New test.

From-SVN: r232368
2016-01-14 16:25:22 +01:00
Richard Biener
3688e13db3 re PR tree-optimization/68060 (ICE on valid code at -O3 on x86_64-linux-gnu in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1413)
2016-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68060
	* tree-vect-loop.c (vect_is_simple_reduction): Check the
	outer loop reduction is only used in the inner loop before
	detecting a double reduction.

	* gcc.dg/torture/pr68060-1.c: New testcase.
	* gcc.dg/torture/pr68060-2.c: Likewise.

From-SVN: r232367
2016-01-14 15:13:19 +00:00
Jakub Jelinek
a2ae4661ab re PR target/68269 (FAIL: gcc.dg/pr68129_1.c (internal compiler error))
PR target/68269
	* combine.c (expand_field_assignment): Punt if compute_mode is
	unsupported scalar mode.

From-SVN: r232366
2016-01-14 16:10:41 +01:00
Nick Clifton
21f88b7a13 Update previous delta to ensure that the attributes are actually tested.
From-SVN: r232365
2016-01-14 15:05:29 +00:00
Richard Biener
e403d17e3d re PR tree-optimization/66856 (ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:234)
2016-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66856
	* tree-vect-slp.c (vect_build_slp_tree): Refactor to build
	SLP node only if it built successfully.
	(vect_analyze_slp_instance): Adjust.

From-SVN: r232364
2016-01-14 14:51:35 +00:00
Nick Clifton
bab0ad3a30 * lib/target-supports.exp
(check_effective_target_arm_neon_ok_nocache): Add an option
	sequence that includes setting the ARM architecture to ARMv7-A.
	* gcc.target/arm/attr-neon.c: Use dg-add-options to add the
	command line options necessary to enable Neon support.
	* gcc.target/arm/neon-vlshr-imm-1.c: Likewise.
	* gcc.target/arm/neon-vshl-imm-1.c: Likewise.
	* gcc.target/arm/neon-vshr-imm-1.c: Likewise.
	* gcc.target/arm/pr69180.c: Likewise.

From-SVN: r232362
2016-01-14 12:36:31 +00:00
Jeff Law
947c2ce56c [PATCH][PR tree-optimization/69270] Exploit VRP information in DOM
PR tree-optimization/69270
	* tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
	(record_edge_info): Use it.  Convert boolean_{true,false}_node
	to the type of op0.

	PR tree-optimization/69270
	* gcc.dg/tree-ssa/pr69270.c: New test.

From-SVN: r232361
2016-01-14 00:38:18 -07:00
GCC Administrator
19860f48c4 Daily bump.
From-SVN: r232359
2016-01-14 00:16:11 +00:00
Jan Hubicka
92763e9ac7 re PR c++/66487 (sanitizer/warnings for lifetime DSE)
PR ipa/66487
	* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
	use block_ultimate_origin
	(noncall-stmt_may_be_vtbl_ptr_store): Likewise.

From-SVN: r232356
2016-01-13 23:47:45 +00:00
Sandra Loosemore
13431f304a invoke.texi (Submodel Options): Rename section to "Machine-Dependent Options" to better reflect its content.
2016-01-13  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Submodel Options): Rename section to
	"Machine-Dependent Options" to better reflect its content.
	Rewrite introductory text to remove archaic CPU names.
	Update references.

From-SVN: r232355
2016-01-13 18:27:48 -05:00
Torvald Riegel
e89137cec1 libitm: Fix seq-cst MOs/fences in rwlock.
From-SVN: r232353
2016-01-13 21:39:50 +00:00
Sandra Loosemore
d6683aec5e invoke.texi (Code Gen Options): Move section up in file, before target-specific options.
2016-01-13  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Code Gen Options): Move section up in file,
	before target-specific options.  Update menu and option summary
	to reflect the new section ordering.

From-SVN: r232352
2016-01-13 16:03:45 -05:00
Jonathan Wakely
36d421ec4e Improve documentation of -std option for C++
* doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
	(C++ Dialect Options): Add cross-reference to -std option.
	* doc/standards.texi (C++ Language): Document C++14 support.

From-SVN: r232349
2016-01-13 20:30:34 +00:00
Michael Meissner
29176d57e6 rs6000-builtin.def (BU_FLOAT128_2): Add support for pack/unpack functions for __ibm128.
[gcc]
2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
	for pack/unpack functions for __ibm128.
	(PACK_IF): Likewise.
	(UNPACK_IF): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for __ibm128 pack/unpack functions.
	(rs6000_invalid_builtin): Likewise.
	(rs6000_init_builtins): Likewise.
	(rs6000_opt_masks): Likewise.

	* config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
	(RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
	functions
	(RS6000_BTM_COMMON): Likewise.

	* config/rs6000/rs6000.md (f128_vsx): New mode attribute.
	(unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
	disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
	128-bit floating point.  Add support for the double values to be
	in Altivec registers for TF/IF packing and unpacking, but restrict
	TD packing sub-fields to be FPR registers.  Don't allow overlapped
	register support for packing.  Allow pack inputs to be memory
	locations.  Don't build generator functions for unpack<mode>_dm
	and unpack<mode>_nodm.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.

	* config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
	built-in functions to pack/unpack explicit __ibm128 values.
	(__builtin_unpack_ibm128): Likewise.

	* doc/extend.texi (PowerPC Built-in Functions): Document
	__builtin_pack_ibm128 and __builtin_unpack_ibm128.

[libgcc]
2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Steven Munroe <munroesj@linux.vnet.ibm.com>
	    Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>

	* config/rs6000/sfp-exceptions.c: New file to provide exception
	support for IEEE 128-bit floating point.

	* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
	floating point hardware support.

	* config/rs6000/floattikf.c: New files for IEEE 128-bit floating
	point conversions.
	* config/rs6000/fixunskfti.c: Likewise.
	* config/rs6000/fixkfti.c: Likewise.
	* config/rs6000/floatuntikf.c: Likewise.
	* config/rs6000/extendkftf2-sw.c: Likewise.
	* config/rs6000/trunctfkf2-sw.c: Likewise.

	* config/rs6000/float128-ifunc.c: New file to pick either IEEE
	128-bit floating point software emulation or use ISA 3.0 hardware
	support if it is available.

	* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
	floating point.

	* config/rs6000/t-float128: New Makefile fragments to enable
	building __float128 emulation support.
	* config/rs6000/t-float128-hw: Likewise.

	* config/rs6000/float128-sed: New file to convert TF names to KF
	names for PowerPC IEEE 128-bit floating point support.

	* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
	when building on 64-bit systems, or when VSX is enabled.
	(_FP_W_TYPE): Likewise.
	(_FP_WS_TYPE): Likewise.
	(_FP_I_TYPE): Likewise.
	(TItype): Define on 64-bit systems.
	(UTItype): Likewise.
	(TI_BITS): Likewise.
	(_FP_MUL_MEAT_D): Add support for using 64-bit types.
	(_FP_MUL_MEAT_Q): Likewise.
	(_FP_DIV_MEAT_D): Likewise.
	(_FP_DIV_MEAT_Q): Likewise.
	(_FP_NANFRAC_D): Likewise.
	(_FP_NANFRAC_Q): Likewise.
	(ISA_BIT): Add exception support if we are being compiled on a
	machine with hardware floating point support to build the IEEE
	128-bit emulation functions.
	(FP_EX_INVALID): Likewise.
	(FP_EX_OVERFLOW): Likewise.
	(FP_EX_UNDERFLOW): Likewise.
	(FP_EX_DIVZERO): Likewise.
	(FP_EX_INEXACT): Likewise.
	(FP_EX_ALL): Likewise.
	(__sfp_handle_exceptions): Likewise.
	(FP_HANDLE_EXCEPTIONS): Likewise.
	(FP_RND_NEAREST): Likewise.
	(FP_RND_ZERO): Likewise.
	(FP_RND_PINF): Likewise.
	(FP_RND_MINF): Likewise.
	(FP_RND_MASK): Likewise.
	(_FP_DECL_EX): Likewise.
	(FP_INIT_ROUNDMODE): Likewise.
	(FP_ROUNDMODE): Likewise.

	* configure.ac (powerpc*-*-linux*): Check whether the PowerPC
	compiler can do __float128.
	* configure: Regenerate.

	* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
	VSX code, enable IEEE 128-bit floating point.

From-SVN: r232346
2016-01-13 20:07:12 +00:00
Bernd Schmidt
3342fd71e0 Improve warning locations (PR66208)
PR c/66208
	* c-common.c (check_function_nonnull): Remove unnecessary declaration.
	Add new arg loc and pass it down as context.
	(check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
	to the location to use for the warning.
	(check_function_arguments): New arg loc.  All callers changed.  Pass
	it to check_function_nonnull.
	* c-common.h (check_function_arguments): Adjust declaration.

testsuite/
	PR c/66208
	* c-c++-common/pr66208.c: New file.

From-SVN: r232345
2016-01-13 20:03:26 +00:00
Jakub Jelinek
2ad3adf102 re PR middle-end/69156 (gcc.dg/pr59630.c: ICE: verify_gimple failed: non-trivial conversion at assignment with -fno-tree-ccp)
PR tree-optimization/69156
	* gimple.c (validate_type): Removed.
	(gimple_builtin_call_types_compatible_p): Use
	useless_type_conversion_p instead of validate_type.
	* value-prof.c (gimple_stringop_fixed_value): Fold
	icall_size to correct type.

	* gcc.dg/pr69156.c: New test.

From-SVN: r232342
2016-01-13 20:21:59 +01:00
Jonathan Wakely
260936f29d Clarify __atomic_compare_exchange effects
* doc/extend.texi (__atomic Builtins): Clarify compare_exchange
	effects.

From-SVN: r232341
2016-01-13 19:07:21 +00:00
H.J. Lu
398d6febaf Add another testcase for x86 FLT_EVAL_METHOD
* gcc.target/i386/pr69225-7.c: New test.

From-SVN: r232331
2016-01-13 09:08:04 -08:00
Richard Henderson
4c868789e4 re PR target/68964 (Internal compiler error for test case gcc.dg/tm/20100610.c since r231674)
PR 68964

gcc/
 PR tree-opt/68964
 * target.def (builtin_tm_load, builtin_tm_store): Remove.
 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
 (ix86_builtin_tm_store): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
 * doc/tm.texi: Rebuild.
 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
 (BUILT_IN_TM_MEMCPY_RTWN): New.
 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
 fallback from vector to integer helpers.
 (build_tm_load): Handle vector types directly, instead of
 via target hook.
 (build_tm_store): Likewise.
 (expand_assign_tm): Prepare for register types not handled by
 the above.  Copy them to memory and use memcpy.
 * tree.c (tm_define_builtin): New.
 (find_tm_vector_type): New.
 (build_tm_vector_builtins): New.
 (build_common_builtin_nodes): Call it.

libitm/
 * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
 (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
 (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
 (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
 * configure.ac (ARCH_AARCH64): New conditional.
 (ARCH_PPC, ARCH_S390): Likewise.
 * Makefile.in, configure: Rebuild.
 * libitm.h (_ITM_TYPE_M128): Always define.
 * vect64.cc: Split ...
 * vect128.cc: ... out of...
 * config/x86/x86_sse.cc: ... here.
 * config/arm/neon.cc: New file.

From-SVN: r232330
2016-01-13 09:03:42 -08:00
Uros Bizjak
ef6d177268 pr45685.c (dg-options): Add -mno-sse4.
* gcc.target/i386/pr45685.c (dg-options): Add -mno-sse4.
	* gcc.target/i386/pr68432-1.c (dg-options): Ditto.
	* gcc.target/i386/pr68432-2.c (dg-options): Ditto.
	* gcc.target/i386/pr68432-3.c (dg-options): Ditto.

From-SVN: r232329
2016-01-13 17:50:17 +01:00
Uros Bizjak
6235f59c57 i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for TARGET_SSE_MATH without TARGET_SSE2.
* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
	TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.

From-SVN: r232328
2016-01-13 17:41:46 +01:00
Jonathan Wakely
39a1d8c894 Use ::isinf and ::isnan if libc defines them
PR libstdc++/48891
	* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
	and isnan functions.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/c_global/cmath (isinf(double), isnan(double))
	[_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
	* testsuite/26_numerics/headers/cmath/48891.cc: New.

From-SVN: r232327
2016-01-13 16:25:56 +00:00
Tom de Vries
0b4b6ef227 Fix infinite recursion in create_variable_info_for_1
PR tree-optimization/69169
	* tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
	handled_struct_type param.
	(create_variable_info_for, intra_create_variable_infos): Call
	create_variable_info_for_1 with extra arg.

	* gcc.dg/pr69169.c: New test.

From-SVN: r232326
2016-01-13 15:51:33 +00:00
Yvan Roux
4e3999a75b arm-arches.def: Remove spurious whitespace in "armv8.1-a" and "armv8.1-a+crc" entries.
2016-01-13  Yvan Roux  <yvan.roux@linaro.org>

	* config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
	and "armv8.1-a+crc" entries.

From-SVN: r232325
2016-01-13 15:28:28 +00:00
Alexander Fomin
8866d62c0a AVX512: Restrict default masks for prefetch gather/scatter
instructions.

gcc/

	PR target/69228
	* config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
	Change first operand predicate from register_or_constm1_operand
	to register_operand.
	(define_expand "avx512pf_gatherpf<mode>df"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
	(define_expand "avx512pf_scatterpf<mode>df"): Likewise.
	(define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
	(define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
	(define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
	* config/i386/i386.c (ix86_expand_builtin): Remove first operand
	comparison with constm1_rtx from vec_prefetch_gen part.

gcc/testsuite

	PR target/69228
	* gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Adjust.
	* gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Likewise.
	* gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Likewise.

From-SVN: r232324
2016-01-13 09:31:13 -05:00
Torvald Riegel
629e47295b libitm: Fix privatization safety interaction with serial mode.
From-SVN: r232322
2016-01-13 12:40:34 +00:00
Richard Biener
8bc47ae2a7 re PR tree-optimization/69013 (gfortran-5.3.0 ICE in prune_uninit_phi_opnds_in_unrealizable_paths, at tree-ssa-uninit.c:1121)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69013
	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
	Exchange assert for a test.

From-SVN: r232320
2016-01-13 12:15:01 +00:00
Christian Bruel
95251c8380 missed test
From-SVN: r232319
2016-01-13 13:13:43 +01:00
Andreas Krebbel
9060e33505 S/390: PR69247: Fix bswap hi splitter.
gcc/ChangeLog:

2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/69247
	* config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.

gcc/testsuite/ChangeLog:

2016-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/69247
	* gcc.dg/pr69247.c: New test.

From-SVN: r232318
2016-01-13 11:59:29 +00:00
Rainer Orth
e862906c25 Introduce separate baselines for Solaris 10 and 11+ (PR libstdc++/66006)
PR libstdc++/66006
	* configure.host (abi_baseline_pair): Use separate baseline for
	Solaris 11+ and Solaris 10 with gld.
	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
	* config/abi/post/solaris2.11/baseline_symbols.txt: New file.
	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.

From-SVN: r232317
2016-01-13 09:48:53 +00:00
Richard Biener
40311329e5 re PR tree-optimization/69242 (ICE in visit_reference_op_load, at tree-ssa-sccvn.c:3224)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69242
	* tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
	assert with a check.

	* gcc.dg/torture/pr69242.c: New testcase.

From-SVN: r232315
2016-01-13 08:27:42 +00:00
Richard Biener
ccbd710399 re PR tree-optimization/69186 (ICE at -O3 on x86_64-linux-gnu in vect_update_misalignment_for_peel, at tree-vect-data-refs.c:889)
2016-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69186
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Properly guard vect_update_misalignment_for_peel call.

	* gcc.dg/torture/pr69186.c: New testcase.

From-SVN: r232314
2016-01-13 08:26:45 +00:00