Commit Graph

152480 Commits

Author SHA1 Message Date
Jakub Jelinek cd5c0aeeae re PR rtl-optimization/79901 (ICE in prepare_cmp_insn, at optabs.c:3904)
PR rtl-optimization/79901
	* expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
	min/max expander, expand it using expand_vec_cond_expr.

From-SVN: r245946
2017-03-07 09:04:38 +01:00
Jakub Jelinek 1f6dba54da re PR sanitizer/79897 (ICE in gimplify_modify_expr, at gimplify.c:5627 on ARM target)
PR sanitizer/79897
	* ubsan.c (ubsan_encode_value): Call mark_addressable on the
	temporary.

	* c-c++-common/ubsan/pr79897.c: New test.

From-SVN: r245945
2017-03-07 07:11:14 +01:00
GCC Administrator 45174decce Daily bump.
From-SVN: r245943
2017-03-07 00:16:13 +00:00
John David Anglin 9a1972f112 Fix typo.
From-SVN: r245937
2017-03-06 23:12:14 +00:00
Jakub Jelinek edca997e57 re PR c++/79821 (SEGV in cc1plus compiling 64-bit stdc++.h.gch/O2g.gch)
PR c++/79821
	* dwarf2out.h (dw_vec_const): Change array type from unsigned char *
	to void * for PCH reasons.
	* dwarf2out.c (output_loc_operands, output_die): Cast
	v.val_vec.array to unsigned char *.

From-SVN: r245932
2017-03-06 23:51:23 +01:00
John David Anglin 5935a7c495 PR target 77850
PR target 77850
	* config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
	vector types.

From-SVN: r245931
2017-03-06 22:48:53 +00:00
Vladimir Makarov f8386dae3f Fix the last ChangeLog entry
From-SVN: r245929
2017-03-06 20:29:49 +00:00
Vladimir Makarov feca7b8954 re PR rtl-optimization/79571 (ICE in Max. number of generated reload insns per insn is achieved (90))
2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/79571
	* lra-constraints.c (process_alt_operands): Claculate static
	reject and subtract it from overal when there will be only address
	reloads.

2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/79571
	* gcc.target/i386/pr79571.c: New.

From-SVN: r245928
2017-03-06 20:23:00 +00:00
Marek Polacek bdbbf28d15 PR c++/79796 - ICE with NSDMI and this pointer
PR c++/79796 - ICE with NSDMI and this pointer
	* call.c (build_over_call): Handle NSDMI with a 'this' by calling
	replace_placeholders.

	* g++.dg/cpp0x/nsdmi13.C: New test.

From-SVN: r245927
2017-03-06 17:38:42 +00:00
Julia Koval 52564551d3 Set incoming stack boundary to 128 for 64-bit targets
For 64-bit targets, the incoming stack of interrupt handler is aligned
to 16 bytes.  Update ix86_minimum_incoming_stack_boundary to set the
incoming stack boundary of interrupt handler to 128 for 64-bit targets.

gcc/

2017-03-06  Julia Koval  <julia.koval@intel.com>

	PR target/79793
	* config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
	incoming stack boundary to 128 for 64-bit targets.

gcc/testsuite/

2017-03-06  Julia Koval  <julia.koval@intel.com>

	PR target/79793
	 * gcc.target/i386/interrupt-12.c: Update scan-assembler-times
	 directives.
	 * gcc.target/i386/interrupt-13.c: Ditto.
	 * gcc.target/i386/interrupt-14.c: Ditto.
	 * gcc.target/i386/interrupt-15.c: Ditto.

From-SVN: r245926
2017-03-06 08:08:59 -08:00
Jakub Jelinek 345edb3701 re PR c++/79822 (ICE with void statement expression)
PR c++/79822
	* constexpr.c (cxx_eval_statement_list): Treat empty ({ }) like
	({ (void) 0; }).

	* g++.dg/cpp0x/constexpr-79822.C: New test.

From-SVN: r245925
2017-03-06 16:43:51 +01:00
Jason Merrill 90d9a8e6ef Revert "Allow deduction guides to look into primary template."
* cp-tree.h, parser.c, pt.c, search.c: Revert.

From-SVN: r245924
2017-03-06 09:44:44 -05:00
Richard Biener a8d25fd0dd re PR tree-optimization/79887 (ICE in set_uid_loop_bbs, at tree-vectorizer.c:482)
2017-03-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79894
	* tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
	to NULL after folding it.

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

From-SVN: r245923
2017-03-06 13:58:57 +00:00
Richard Biener 522fcdd739 re PR tree-optimization/79824 (Failure to peel for gaps leads to read beyond mapped memory)
2017-03-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79824
	* tree-vect-stmts.c (get_group_load_store_type): Fix alignment
	check disabling peeling for gaps.

	* gcc.dg/vect/pr79824-1.c: New testcase.
	* gcc.dg/vect/pr79824-2.c: Likewise.

From-SVN: r245922
2017-03-06 13:58:01 +00:00
Toma Tabacu 5464963112 Add check_effective_target_gettimeofday and use it in gcc.dg/lto/pr60449_0.c.
gcc/
	* doc/sourcebuild.texi (Effective-Target Keywords, Environment
	attributes): Document gettimeofday.

gcc/testsuite/

	* gcc.dg/lto/pr60449_0.c: Add dg-require-effective-target for
	gettimeofday.  Remove dg-skip-if for AVR.
	* lib/target-supports.exp (check_effective_target_gettimeofday):
	New proc.

From-SVN: r245921
2017-03-06 13:15:30 +00:00
Richard Biener 1b31fca70f re PR fortran/79894 (ICE in gfc_add_modify_loc, at fortran/trans.c:159)
2017-03-06  Richard Biener  <rguenther@suse.de>

	PR fortran/79894
	* trans.c (gfc_add_modify_loc): Weaken assert.

From-SVN: r245919
2017-03-06 12:48:54 +00:00
Robin Dapp 6cc61b5a37 S/390: Disable vectorization for loops with few iterations
The following patch defines the PARAM_MIN_VECT_LOOP_BOUND parameter in
the s390 backend.  It helps with the vectorization epilogue problem
described here [1].
I see an overall performance increase of > 1% in SPECfp2006, yet some
cases like cactusADM regress.  This seems to be caused by the vectorizer
creating an epilogue guard for one more iteration than before, which, in
turn, causes e.g. predcom to run on the epilogue that it used to ignore
before ("Loop iterates only 1 time, nothing to do.").  Subsequent,
minor, effects cause an eventual slowdown.

Until the reason for the bad epilogue code is understood, this patch
mitigates the problem.  When investigating the issue, I stumbled across
an attempt to vectorize the epilogue itself as well as combine it with
the vectorized loop in addition to vector masking [2].  A similar
approach might also help here.  My original observation of high register
pressure within the epilogue still stands.  In this specific case, it
would most likely suffice to save all registers once, run the epilogue
and restore the registers.  I'm pretty sure this would be faster than
the "spill fest" that's currently happening.

Regards
 Robin

[1] https://gcc.gnu.org/ml/gcc/2017-01/msg00234.html
[2] https://gcc.gnu.org/ml/gcc-patches/2016-05/msg01562.html

gcc/ChangeLog:

2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_option_override_internal): Set
	PARAM_MIN_VECT_LOOP_BOUND

From-SVN: r245918
2017-03-06 12:43:33 +00:00
Robin Dapp 4bbc897068 S/390: Change 2-byte NOPs
The following patch changes "nopr %r7" to "nopr %r0" which is
advantageous from a hardware perspective. It will only be emitted for
hotpatching and should not impact normal code.

gcc/ChangeLog:

2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
	* config/s390/s390.md: Likewise.

gcc/testsuite/ChangeLog:

2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>

	* gcc.target/s390/hotpatch-1.c: Check for nopr %r0.
	* gcc.target/s390/hotpatch-10.c: Likewise.
	* gcc.target/s390/hotpatch-11.c: Likewise.
	* gcc.target/s390/hotpatch-12.c: Likewise.
	* gcc.target/s390/hotpatch-13.c: Likewise.
	* gcc.target/s390/hotpatch-14.c: Likewise.
	* gcc.target/s390/hotpatch-15.c: Likewise.
	* gcc.target/s390/hotpatch-16.c: Likewise.
	* gcc.target/s390/hotpatch-17.c: Likewise.
	* gcc.target/s390/hotpatch-18.c: Likewise.
	* gcc.target/s390/hotpatch-19.c: Likewise.
	* gcc.target/s390/hotpatch-2.c: Likewise.
	* gcc.target/s390/hotpatch-26.c: Likewise.
	* gcc.target/s390/hotpatch-27.c: Likewise.
	* gcc.target/s390/hotpatch-28.c: Likewise.
	* gcc.target/s390/hotpatch-3.c: Likewise.
	* gcc.target/s390/hotpatch-4.c: Likewise.
	* gcc.target/s390/hotpatch-5.c: Likewise.
	* gcc.target/s390/hotpatch-6.c: Likewise.
	* gcc.target/s390/hotpatch-7.c: Likewise.
	* gcc.target/s390/hotpatch-8.c: Likewise.
	* gcc.target/s390/hotpatch-9.c: Likewise.

From-SVN: r245917
2017-03-06 12:40:19 +00:00
Paolo Carlini 5f215a70ba re PR c++/64574 (ICE (stack overflow SEGV) with bad template specialization)
2017-03-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64574
	* g++.dg/template/crash125.C: New.

From-SVN: r245916
2017-03-06 11:54:37 +00:00
Jakub Jelinek 296cc393ef re PR target/79812 (ICE in simplify_binary_operation_1, at simplify-rtx.c:3586)
PR target/79812
	* config/i386/sse.md (VI8F_256_512): Remove mode iterator.
	(<avx2_avx512>_perm<mode>): Rename to ...
	(avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
	of VI8F_256_512.
	(<avx512>_perm<mode>_mask): Rename to ...
	(avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
	of VI8F_256_512.
	(<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
	(avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
	instead of VI8F_256_512.
	(avx512f_perm<mode>): New define_expand.
	(avx512f_perm<mode>_mask): Likewise.
	(avx512f_perm<mode>_1<mask_name>): New define_insn.
	(<avx512>_vec_dup<mode>_1): Fix up vec_select mode.

	* gcc.target/i386/avx512f-vpermq-imm-3.c: New test.

From-SVN: r245915
2017-03-06 12:35:58 +01:00
Toma Tabacu ca8942a34a MIPS: Force o32 ABI for inline-memcpy-3.c.
gcc/testsuite/

	* gcc.target/mips/inline-memcpy-3.c (dg-options): Add -mabi=32.

From-SVN: r245914
2017-03-06 11:27:07 +00:00
Prachi Godbole c1b993c0a6 mips-msa.md (msa_fmax_a_<msafmt>, [...]): Introduce mode interator for if_then_else.
gcc/
	* config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
	msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
	if_then_else.
	(smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.

gcc/testsuite/
	* gcc.target/mips/msa-minmax.c: New tests.

From-SVN: r245913
2017-03-06 10:32:47 +00:00
Martin Liska a50a32aa3c Fix ICE in use-after-scope w/ -fno-tree-dce (PR sanitize/79783).
2017-03-06  Martin Liska  <mliska@suse.cz>

	PR sanitize/79783
	* asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
	when having a SSA NAME w/o VAR_DECL assigned to it.
2017-03-06  Martin Liska  <mliska@suse.cz>

	PR sanitize/79783
	* g++.dg/asan/pr79783.C: New test.

From-SVN: r245912
2017-03-06 10:20:33 +00:00
Prachi Godbole 5ada812ced mips-msa.md (msa_dotp_<su>_d, [...]): Fix MODE for vec_select.
gcc/
	* config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
	msa_dpsub_<su>_d): Fix MODE for vec_select.

gcc/testsuite/
	* gcc.target/mips/msa-dotp.c: New tests.

From-SVN: r245911
2017-03-06 10:19:52 +00:00
Prachi Godbole 334b3c4b84 mips.c (mips_gen_const_int_vector): Change type of last argument.
gcc/
	* config/mips/mips.c (mips_gen_const_int_vector): Change type of last
	argument.
	* config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.

gcc/testsuite/
	* gcc.target/mips/msa-bclri.c: New test.

From-SVN: r245910
2017-03-06 10:08:51 +00:00
Richard Biener 8467170571 lto-streamer.c (lto_check_version): Use %qs in diagnostics.
2017-03-06  Richard Biener  <rguenther@suse.de>

	* lto-streamer.c (lto_check_version): Use %qs in diagnostics.
	* plugin.c (register_plugin_info): Likewise.
	* tree-chkp.c (chkp_make_static_const_bounds): Likewise.

From-SVN: r245909
2017-03-06 08:54:57 +00:00
Joseph Myers 4d0da5b439 * de.po, fr.po: Update.
From-SVN: r245908
2017-03-06 04:17:47 +00:00
GCC Administrator 4117f1f8be Daily bump.
From-SVN: r245907
2017-03-06 00:16:20 +00:00
Jakub Jelinek 661b4dd0be sse.md (sse_storehps, [...]): Require in condition that at least one operand is not a MEM.
* config/i386/sse.md (sse_storehps, sse_storelps,
	avx_<castmode><avxsizesuffix>_<castmode>,
	avx512f_<castmode><avxsizesuffix>_<castmode>,
	avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
	in condition that at least one operand is not a MEM.

From-SVN: r245904
2017-03-05 22:41:10 +01:00
Jonathan Wakely f620e1d5c8 Add std::scoped_lock for C++17
* doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
	* doc/html/*: Regenerate.
	* include/std/mutex (scoped_lock): Implement new C++17 template.
	* testsuite/30_threads/scoped_lock/cons/1.cc: New test.
	* testsuite/30_threads/scoped_lock/requirements/
	explicit_instantiation.cc: New test.
	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.

From-SVN: r245903
2017-03-05 18:38:35 +00:00
Paolo Carlini d8b4baeb45 re PR c++/70266 (ICE on invalid code on x86_64-linux-gnu: unexpected expression ‘foo’ of kind overload)
/cp
2017-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70266
	* except.c (build_must_not_throw_expr): Perform the implicit
	conversions on the condition.

/testsuite
2017-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70266
	* g++.dg/tm/pr70266.C: New.

From-SVN: r245901
2017-03-05 17:13:16 +00:00
Andre Vehreschild ef78bc3c0b check.c (positive_check): Add new function checking constant for being greater then zero.
gcc/fortran/ChangeLog:

2017-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>
            Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* check.c (positive_check): Add new function checking constant for
	being greater then zero.
	(gfc_check_image_status): Add checking of image_status arguments.
	(gfc_check_failed_or_stopped_images): Same but for failed_- and
	stopped_images function.
	* dump-parse-tree.c (show_code_node): Added output of FAIL IMAGE.
	* gfortran.h (enum gfc_statement): Added FAIL_IMAGE_ST.
	(enum gfc_isym_id): Added new intrinsic symbols.
	(enum gfc_exec_op): Added EXEC_FAIL_IMAGE.
	* gfortran.texi: Added description for the new API functions. Updated
	coverage of gfortran of TS18508.
	* intrinsic.c (add_functions): Added symbols to resolve new intrinsic
	functions. 
	* intrinsic.h: Added prototypes.
	* iresolve.c (gfc_resolve_failed_images): Resolve the failed_images
	intrinsic.
	(gfc_resolve_image_status): Same for image_status.
	(gfc_resolve_stopped_images): Same for stopped_images.
	* libgfortran.h: Added prototypes.
	* match.c (gfc_match_if): Added matching of FAIL IMAGE statement.
	(gfc_match_fail_image): Match a FAIL IMAGE statement.
	* match.h: Added prototype.
	* parse.c (decode_statement): Added matching for FAIL IMAGE.
	(next_statement): Same.
	(gfc_ascii_statement): Same.
	* resolve.c: Same.
	* simplify.c (gfc_simplify_failed_or_stopped_images): For COARRAY=
	single a constant result can be returne.d
	(gfc_simplify_image_status): For COARRAY=single the result is constant.
	* st.c (gfc_free_statement): Added FAIL_IMAGE handling.
	* trans-decl.c (gfc_build_builtin_function_decls): Added decls of the
	new intrinsics.
	* trans-expr.c (gfc_conv_procedure_call): This is first time all
	arguments of a function are optional, which is now handled here
	correctly.
	* trans-intrinsic.c (conv_intrinsic_image_status): Translate
	image_status.
	(gfc_conv_intrinsic_function): Add support for image_status.
	(gfc_is_intrinsic_libcall): Add support for the remaining new
	intrinsics.
	* trans-stmt.c (gfc_trans_fail_image): Trans a fail image.
	* trans-stmt.h: Add the prototype for the above.
	* trans.c (trans_code): Dispatch for fail_image.
	* trans.h: Add the trees for the new intrinsics.

libgfortran/ChangeLog:

2017-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>
            Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* caf/libcaf.h: Added prototypes and stat codes for failed and stopped
	images.
	* caf/single.c (void _gfortran_caf_fail_image): Add the routine.
	(int _gfortran_caf_image_status): Same.
	(_gfortran_caf_failed_images): Same.
	(_gfortran_caf_stopped_images): Same.


gcc/testsuite/ChangeLog:

2017-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>
            Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>

	* gfortran.dg/coarray/fail_image_1.f08: New test.
	* gfortran.dg/coarray/fail_image_2.f08: New test.
	* gfortran.dg/coarray/failed_images_1.f08: New test.
	* gfortran.dg/coarray/failed_images_2.f08: New test.
	* gfortran.dg/coarray/image_status_1.f08: New test.
	* gfortran.dg/coarray/image_status_2.f08: New test.
	* gfortran.dg/coarray/stopped_images_1.f08: New test.
	* gfortran.dg/coarray/stopped_images_2.f08: New test.
	* gfortran.dg/coarray_fail_st.f90: New test.
	* gfortran.dg/coarray_failed_images_1.f08: New test.
	* gfortran.dg/coarray_image_status_1.f08: New test.
	* gfortran.dg/coarray_stopped_images_1.f08: New test.

From-SVN: r245900
2017-03-05 12:35:47 +01:00
GCC Administrator 55a8bcbb1f Daily bump.
From-SVN: r245897
2017-03-05 00:16:13 +00:00
Jason Merrill 108154ff26 c.opt (Wnoexcept-type): New.
* c.opt (Wnoexcept-type): New.

gcc/cp/
	* mangle.c (mangle_decl): Check -Wnoexcept-type instead of
	-Wc++1z-compat.

From-SVN: r245894
2017-03-04 14:21:38 -05:00
Marek Polacek 1ff4bae6b5 re PR c/79847 (diagnostics: missing space in "implicit declaration of function")
PR c/79847
	* c-decl.c (implicit_decl_warning): Add missing space.

From-SVN: r245893
2017-03-04 11:04:50 +00:00
Jason Merrill 4cdeb2343a Core issues 2273 and 2277
* call.c (joust): Adjust using-declaration tiebreaker to handle
	the intermediate base case.
	* method.c (strip_inheriting_ctors): Just return the argument if
	!flag_new_inheriting_ctors.

From-SVN: r245892
2017-03-04 03:12:28 -05:00
Jerry DeLisle ea6c757a1c re PR fortran/79841 (Inconsistent diagnostics in fortran/openmp.c, function check_symbol_not_pointer)
2017-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/79841
	* openmp.c (check_symbol_not_pointer): Adjust diagnostic.

From-SVN: r245891
2017-03-04 03:13:34 +00:00
GCC Administrator 6fdea83ec0 Daily bump.
From-SVN: r245890
2017-03-04 00:16:21 +00:00
Joseph Myers 2fda3b6549 * de.po: Update.
From-SVN: r245887
2017-03-03 23:48:40 +00:00
Marek Polacek 7f5a7d7848 re PR c/79758 (ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in store_parm_decls_oldstyle, at c/c-decl.c:8973)
PR c/79758
	* c-decl.c (store_parm_decls_oldstyle): Check if the element of
	current_function_prototype_arg_types is error_mark_node.  Fix
	formatting.  Use TREE_VALUE instead of TREE_TYPE.

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

From-SVN: r245886
2017-03-03 22:19:24 +00:00
Jakub Jelinek 79c9b7a84f re PR c/79837 (incomplete diagnostic in c-parser: expected +, *, -, &, ^, |, &&, ||, min or identifier)
PR c/79837
	* c-parser.c (c_parser_omp_clause_reduction): Don't mention
	%<min%> or %<max%> in the diagnostics, instead mention identifier.
	(c_parser_omp_declare_reduction): Don't mention %<min%> in the
	diagnostics.

From-SVN: r245885
2017-03-03 21:16:58 +01:00
Jakub Jelinek 883c8f06ff re PR c/79836 (typo in c/c-parser.c: pragma omp ordered)
PR c/79836
	* c-parser.c (c_parser_generic_selection): Use %<_Generic%>
	instead of %<_Generic>.
	(c_parser_omp_ordered): Use %<depend%> instead of %<depend>.
	(c_parser_omp_target_exit_data): Use %<release%> instead of
	%<release>.

From-SVN: r245883
2017-03-03 20:56:54 +01:00
Jakub Jelinek cc195d46a3 re PR middle-end/79805 (ICE (verify_flow_info failed) with -fnon-call-exceptions -O)
PR middle-end/79805
	* internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
	ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
	ECF_NOTHROW.
	* gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
	gimple_call_nothrow_p flag based on whether original builtin can throw.
	If it can, emit following stmts on the fallthrough edge.
	* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
	don't create new bb if inserting just debug stmts on the edge, try to
	insert them on the fallthru bb or just reset debug stmts.

	* g++.dg/opt/pr79805.C: New test.

From-SVN: r245882
2017-03-03 20:32:01 +01:00
Segher Boessenkool f325c45673 rs6000: Fix for -mwarn-cell-microcode (PR43763)
If using -mwarn-cell-microcode, rs6000_final_prescan_insn calls
get_insn_template to get the name of the machine instruction.  But,
get_insn_template calls the output template if that is code, and that
then can modify recog_data (it is normal to change the operands, for
example).

This patch saves and restores recog_data around the call to
get_insn_template to fix the problems this causes.


	PR target/43763
	* config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
	restore recog_data (including the operand rtxes inside it) around
	the call to get_insn_template.

From-SVN: r245880
2017-03-03 18:00:50 +01:00
Andrew Senkevich 945b6e16e2 avx512vpopcntdq-check.h: New.
* gcc.target/i386/avx512vpopcntdq-check.h: New.
	* gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c: Ditto.
	* gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512vpopcntdq-check.h.
	* gcc.target/i386/i386.exp
	(check_effective_target_avx512vpopcntdq): New.

From-SVN: r245879
2017-03-03 17:55:31 +01:00
Martin Sebor da7c751ba7 PR tree-optimization/79699 - small memory leak in MPFR
gcc/ChangeLog:
	* context.c (context::~context): Free MPFR caches to avoid
	a memory leak on program exit.

From-SVN: r245878
2017-03-03 09:35:00 -07:00
Kyrylo Tkachov d9074b2959 [AArch64] Fix bootstrap due to wide_int .elt (0) uninit warning
* config/aarch64/aarch64.c (aarch64_float_const_representable_p):
    Use wide_int::ulow () instead of .elt (0).

From-SVN: r245877
2017-03-03 16:32:01 +00:00
Uros Bizjak c953fb88fe i386.md (*pushtf): Change *roF constraint to *roC.
* config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
	(*pushxf): Limit oF constraint to 32bit targets and add oC
	constraint for 64bit targets.
	(pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
	(*pushdf): Change rmF constraint to rmC.

From-SVN: r245876
2017-03-03 17:19:34 +01:00
Gerald Pfeifer 252e3e7b4a * gcc_release (snapshot_print): Replace md5 checksum by sha256.
From-SVN: r245875
2017-03-03 14:12:04 +00:00
Toma Tabacu 31dcc38568 MIPS: Fix register mode checking for n64 in pr68273.c.
gcc/testsuite/

	* gcc.target/mips/pr68273.c (dg-final): Match SImode registers only for
	ilp32 targets and match DImode registers for lp64 targets.

From-SVN: r245874
2017-03-03 13:23:53 +00:00