Commit Graph

66521 Commits

Author SHA1 Message Date
Martin Liska 40fbc3ff0c Backport r248489
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-26  Martin Liska  <mliska@suse.cz>

	PR ipa/80663
	* params.def: Bound partial-inlining-entry-probability param.
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-26  Martin Liska  <mliska@suse.cz>

	PR ipa/80663
	* g++.dg/ipa/pr80212.C: Remove the test as it does not longer
	split at the problematic spot.
	* gcc.dg/ipa/pr48195.c: Change 101 to 100 as 101 is no longer
	a valid value of the param.

From-SVN: r249548
2017-06-22 11:40:00 +00:00
Martin Liska 294842cb2e Backport r248089
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-16  Martin Liska  <mliska@suse.cz>

	PR ipa/79849.
	PR ipa/79850.
	* ipa-devirt.c (warn_types_mismatch): Fix typo.
	(odr_types_equivalent_p): Likewise.

From-SVN: r249547
2017-06-22 11:39:26 +00:00
Martin Liska 1c5214501b Backport r248060
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-15  Martin Liska  <mliska@suse.cz>

	PR driver/31468
	* gcc.c (process_command): Do not allow empty argument of -o option.

From-SVN: r249546
2017-06-22 11:38:56 +00:00
Martin Liska f98d120b10 Backport r247507
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-02  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Add missing preposition.
	* gcov.c (function_info::function_info): Properly fill up
	all member variables.

From-SVN: r249545
2017-06-22 11:38:40 +00:00
Martin Liska c7da80177d Backport r247485
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-05-02  Martin Liska  <mliska@suse.cz>

	PR other/80589
	* common.opt: Fix typo.
	* doc/invoke.texi: Likewise.

From-SVN: r249544
2017-06-22 11:38:22 +00:00
Martin Liska 5b8ea22b86 Backport r247377
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Enhance documentation of gcov.

From-SVN: r249543
2017-06-22 11:37:57 +00:00
Martin Liska 7b11e21d5f Backport r247376
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Sort options in alphabetic order.
	* doc/gcov-dump.texi: Likewise.
	* doc/gcov-tool.texi: Likewise.
	* gcov.c (print_usage): Likewise.
	* gcov-dump.c (print_usage): Likewise.
	* gcov-tool.c (print_merge_usage_message): Likewise.
	(print_rewrite_usage_message): Likewise.
	(print_overlap_usage_message): Likewise.

From-SVN: r249542
2017-06-22 11:37:38 +00:00
Martin Liska 2f5b8b6d6f Backport r247375
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/53915
	* gcov.c (format_gcov): Print 'NAN %' when top > bottom.

From-SVN: r249541
2017-06-22 11:37:13 +00:00
Martin Liska ed4635ea72 Backport r247371
2017-06-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2017-04-28  Martin Liska  <mliska@suse.cz>

	PR driver/56469
	* coverage.c (coverage_remove_note_file): New function.
	* coverage.h: Declare the function.
	* toplev.c (finalize): Clean if an error has been seen.

From-SVN: r249540
2017-06-22 11:36:56 +00:00
Jakub Jelinek ceccf94fd2 re PR target/81151 (-Wmaybe-uninitialized in insn-emit.c)
PR target/81151
	* config/i386/sse.md (round<mode>2): Renumber match_dup and
	operands indexes to avoid gap between operands and match_dups.

From-SVN: r249484
2017-06-22 00:23:16 +02:00
Jakub Jelinek 8887fa1078 re PR c++/81130 (ICE OpenMP shared clause in gimplify_var_or_parm_decl, at gimplify.c:2584)
PR c++/81130
	* gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
	with ctors/dtors if GOVD_SHARED is set.

	* testsuite/libgomp.c++/pr81130.C: New test.

From-SVN: r249482
2017-06-22 00:19:38 +02:00
Jakub Jelinek 67d4a7232c backport: re PR target/81121 (ICE: in extract_insn, at recog.c:2311)
Backported from mainline
	2017-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/81121
	* config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
	splitter): Require TARGET_SSE2 in the condition.

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

From-SVN: r249481
2017-06-22 00:18:34 +02:00
Jakub Jelinek 34bec96670 backport: re PR sanitizer/81125 (-fsanitize=undefined ICE)
Backported from mainline
	2017-06-20  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81125
	* ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
	by removing enum keyword.
	(ubsan_type_descriptor): Likewise.  Formatting fix.

	2017-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/81125
	* ubsan.h (enum ubsan_encode_value_phase): New.
	(ubsan_encode_value): Change second argument to
	enum ubsan_encode_value_phase with default value of
	UBSAN_ENCODE_VALUE_GENERIC.
	* ubsan.c (ubsan_encode_value): Change second argument to
	enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
	adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
	create_tmp_var_raw instead of create_tmp_var and use a
	TARGET_EXPR.
	(ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
	ubsan_encode_value callers.

	PR sanitizer/81111
	* ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
	use create_tmp_var_raw instead of create_tmp_var, mark it addressable
	just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.

	PR sanitizer/81125
	* g++.dg/ubsan/pr81125.C: New test.

	PR sanitizer/81111
	* g++.dg/ubsan/pr81111.C: New test.

From-SVN: r249480
2017-06-22 00:17:49 +02:00
James Greenhalgh 2cbfe19487 Backport: [Patch AArch64 obvious] Fix expected string for fp16 extensions
* config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
	feature string.

From-SVN: r249413
2017-06-20 13:47:03 +00:00
Andreas Schwab a7f7101502 re PR target/80970 (internal compiler error in find_reloads, at reload.c:4077)
PR target/80970
* config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
instead of "+d".

From-SVN: r249402
2017-06-20 10:27:32 +00:00
James Greenhalgh b1eff1fcd6 Backport: [Patch ARM] Fix PR71778
gcc/

	PR target/71778
	* config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
	if given a non-constant argument for an intrinsic which requires a
	constant.

gcc/testsuite/

	PR target/71778
	* gcc.target/arm/pr71778.c: New.

From-SVN: r249379
2017-06-19 16:58:03 +00:00
Alexander Monakov 0f6691118a doc: update x86 -mcx16 option description
* doc/invoke.texi (mcx16): Rewrite.

From-SVN: r249377
2017-06-19 19:08:52 +03:00
Eric Botcazou da9057102c re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)
PR rtl-optimization/80474
	* reorg.c (update_block): Do not ignore instructions in a delay slot.

From-SVN: r249220
2017-06-15 13:25:33 +00:00
Eric Botcazou d03f4299d3 sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
* config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
	(MASK_FEATURES): New macro.
	* config/sparc/sparc.c (sparc_option_override): Remove the special
	handling of -mfpu and generalize it to all MASK_FEATURES switches.

From-SVN: r249190
2017-06-14 11:23:18 +00:00
Eric Botcazou 9b6d5249f7 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
From-SVN: r249184
2017-06-14 07:45:45 +00:00
David S. Miller e45a996a2f More refinements to fixing sparc's PR target/80968.
PR target/80968
	* config/sparc/sparc.md (return expander): Emit frame blockage if
	function uses alloca.

From-SVN: r249135
2017-06-12 12:32:49 -07:00
Uros Bizjak 2d4d4a3bc5 re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))
PR target/81015
	Revert:
	2016-12-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59874
	* config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
	(*clzhi2): Ditto.

testsuite/ChangeLog:

	PR target/81015
	* gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs.
	* gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs.
	* gcc.target/i386/pr81015.c: New test.

From-SVN: r249039
2017-06-08 21:42:59 +02:00
David Edelsohn 854e6816b8 backport: dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
Backport from mainline
        2017-06-02  David Edelsohn  <dje.gcc@gmail.com>

        * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
        (dl_section_ref): New.
        (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
        On AIX, append an expression to subtract the size of the
        section length to dl_section_ref.

From-SVN: r249014
2017-06-08 09:21:46 -04:00
Richard Biener ac19d70401 Backport PRs 80549, 80593, 80705, 80842, 80906
2017-06-07  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2017-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80549
	* tree-cfgcleanup.c (mfb_keep_latches): New helper.
	(cleanup_tree_cfg_noloop): Create forwarders to known loop
	headers if they do not have a preheader.

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

	2017-05-19  Richard Biener  <rguenther@suse.de>

	PR c++/80593
	* c-warn.c (strict_aliasing_warning): Do not warn for accesses
	to alias-set zero memory.

	* g++.dg/warn/Wstrict-aliasing-bogus-char-2.C: New testcase.
	* g++.dg/warn/Wstrict-aliasing-6.C: Adjust expected outcome.

	2017-05-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80842
	* tree-ssa-ccp.c (set_lattice_value): Always meet with the old
	value.

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

	2017-05-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80906
	* graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
	and pass through iv_map.
	(copy_bb_and_scalar_dependences): Adjust.
	(translate_pending_phi_nodes): Likewise.
	(copy_loop_close_phi_args): Handle code-generating IVs instead
	of ICEing.

	* gcc.dg/graphite/pr80906.c: New testcase.

	2017-05-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80705
	* tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
	bases are not vectorizable.

	* gcc.dg/vect/bb-slp-pr80705.c: New testcase.

From-SVN: r248970
2017-06-07 13:07:06 +00:00
Michael Meissner 5aa0092db2 backport: re PR target/80718 (GCC generates slow code for offsettable vec_duplicate)
Back port from mainline

[gcc]
2017-05-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80718
	* config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Prefer
	VSX registers over GPRs, particularly on ISA 2.07 which does not
	have the MTVSRDD instruction.

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

	PR target/80718
	* gcc.target/powerpc/pr80718.c: New test.

From-SVN: r248936
2017-06-06 22:27:13 +00:00
David S. Miller 3179bb54ce sparc: Fix stack references in return delay slot.
gcc/

	PR target/80968
	* config/sparc/sparc.c (sparc_expand_prologue): Emit frame
	blockage if function uses alloca.

gcc/testsuite/

	* gcc.target/sparc/sparc-ret-3.c: New test.

From-SVN: r248929
2017-06-06 11:42:52 -07:00
Volker Reichelt 62bef1b4ed * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
From-SVN: r248890
2017-06-05 18:08:25 +00:00
Prakhar Bahuguna f278c49389 PR71607: Fix ICE when loading constant
2017-06-02  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	Backport from mainline
	2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
		    Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	gcc/
	PR target/71607
	* config/arm/arm.md (use_literal_pool): Remove.
	(64-bit immediate split): No longer takes cost into consideration
	if arm_disable_literal_pool is enabled.
	* config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
	used when arm_disable_literal_pool is enabled.
	(arm_max_const_double_inline_cost): Remove use of
	arm_disable_literal_pool.
	(push_minipool_fix): Add assert.
	(arm_reorg): Add return if arm_disable_literal_pool is enabled.
	* config/arm/vfp.md (no_literal_pool_df_immediate): New.
	(no_literal_pool_sf_immediate): New.

	2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
		    Thomas Preud'homme  <thomas.preudhomme@arm.com>
		    Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

	gcc/testsuite/
	PR target/71607
	* gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ...
	* gcc.target/arm/thumb2-slow-flash-data-1.c: ... this.
	* gcc.target/arm/thumb2-slow-flash-data-2.c: New.
	* gcc.target/arm/thumb2-slow-flash-data-3.c: New.
	* gcc.target/arm/thumb2-slow-flash-data-4.c: New.
	* gcc.target/arm/thumb2-slow-flash-data-5.c: New.
	* gcc.target/arm/tls-disable-literal-pool.c: New.

From-SVN: r248822
2017-06-02 11:19:16 +00:00
Jakub Jelinek a2b8dde6f8 re PR rtl-optimization/80903 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn))
PR rtl-optimization/80903
	* loop-doloop.c (add_test): Unshare sequence.

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

From-SVN: r248817
2017-06-02 10:12:33 +02:00
Martin Jambor 7a928bc1d7 [PR 80293] Dont totally-scalarize char arrays
2017-05-31  Martin Jambor  <mjambor@suse.cz>

        Backport from mainline
        2017-04-24  Martin Jambor  <mjambor@suse.cz>

        PR tree-optimization/80293
        * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
        char arrays not totally scalarizable if it is false.
        (analyze_all_variable_accesses): Pass correct value in the new
        parameter.  Add a statistics counter.

testsuite/
        * g++.dg/tree-ssa/pr80293.C: New test.

From-SVN: r248724
2017-05-31 10:45:23 +02:00
Max Filippov 23558e4988 gcc: xtensa: fix fprintf format specifiers
HOST_WIDE_INT may not be long as assumed in print_operand and
xtensa_emit_call. Use HOST_WIDE_INT_PRINT_DEC/HOST_WIDE_INT_PRINT_HEX
format strings instead of %ld/0x%lx. This fixes incorrect assembly code
generation by the compiler running on armhf host.

2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	Backport from mainline
	2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_emit_call): Use
	HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
	(print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
	format string.

From-SVN: r248720
2017-05-31 00:28:16 +00:00
Eric Botcazou 1d7226694d install.texi (Options specification): Restore entry of --enable-sjlj-exceptions.
* doc/install.texi (Options specification): Restore entry of
	--enable-sjlj-exceptions.

From-SVN: r248583
2017-05-29 21:08:29 +00:00
Andreas Krebbel 8de0f875d0 S/390: Fix PR80725.
gcc/ChangeLog:

2017-05-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR target/80725
	* config/s390/s390.c (s390_check_qrst_address): Check incoming
	address against address_operand predicate.
	* config/s390/s390.md ("*indirect_jump"): Swap alternatives.

gcc/testsuite/ChangeLog:

2017-05-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/pr80725.c: New test.

From-SVN: r248557
2017-05-29 07:54:13 +00:00
Uros Bizjak 460f27038f backport: i386.md (*movdi_internal): Remove SSE4 alternative 18 (?r, *v).
Backport from mainline
	2017-05-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdi_internal): Remove SSE4
	alternative 18 (?r, *v).  Update insn attributes.
	(*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
	Update insn attributes.
	(*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
	Update insn attributes.
	* config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
	alternative 1 (r, v). Remove isa attribute.
	* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
	Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
	and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.

	2017-05-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
	to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
	and (?*y,m).  Update insn attributes.

From-SVN: r248545
2017-05-28 13:45:48 +02:00
Sheldon Lobo 810113dfca backport: sparc.md (length): Return the correct value for -mflat sibcalls to match output_sibcall.
Backported from mainline
	2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>

	* config/sparc/sparc.md (length): Return the correct value for -mflat
	sibcalls to match output_sibcall.

From-SVN: r248523
2017-05-26 18:46:47 +00:00
Marek Polacek 9e2248e6d3 re PR sanitizer/80875 (UBSAN: compile time crash in fold_binary_loc at fold-const.c:9817)
PR sanitizer/80875
	* fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
	can be negated.

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

From-SVN: r248490
2017-05-26 11:15:37 +00:00
Jakub Jelinek 9f67f1462d backport: re PR middle-end/80809 (Multi-free error for variable size array used within OpenMP task)
Backported from mainline
	2017-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80809
	* omp-low.c (finish_taskreg_remap): New function.
	(finish_taskreg_scan): If unit size of ctx->record_type
	is non-constant, unshare the size expression and replace
	decls in it with possible outer var refs.

	* testsuite/libgomp.c/pr80809-2.c: New test.
	* testsuite/libgomp.c/pr80809-3.c: New test.

From-SVN: r248488
2017-05-26 12:14:37 +02:00
Jakub Jelinek e8f1beb231 backport: re PR middle-end/80809 (Multi-free error for variable size array used within OpenMP task)
Backported from mainline
	2017-05-22  Jakub Jelinek  <jakub@redhat.com>
 
	PR middle-end/80809
	* gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
	GOVD_SHARED rather than GOVD_PRIVATE with it.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
	GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.

	* testsuite/libgomp.c/pr80809-1.c: New test.

From-SVN: r248487
2017-05-26 12:13:34 +02:00
Jakub Jelinek 3528deed9d backport: re PR middle-end/80853 (OpenMP ICE in build_outer_var_ref with array reduction)
Backported from mainline
	2017-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/80853
	* omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
	as last argument to build_outer_var_ref for pointer bases of array
	section reductions.

	* testsuite/libgomp.c/pr80853.c: New test.

From-SVN: r248486
2017-05-26 12:05:39 +02:00
Michael Meissner e722c0f728 backport: re PR target/80510 (Optimize Power7/power8 Altivec load/stores)
[gcc]
2017-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Backport from trunk
	2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* config/rs6000/predicates.md (simple_offsettable_mem_operand):
	New predicate.

	* config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
	(define_peephole2 for Altivec d-form load): Add peepholes to catch
	cases where the register allocator uses a move and an offsettable
	memory operation to/from a FPR register on ISA 2.06/2.07.
	(define_peephole2 for Altivec d-form store): Likewise.

	Backport from trunk
	2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68163
	* config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
	are now unused after splitting mov{sf,sd}_hardfloat.
	(f32_lr2): Likewise.
	(f32_lm): Likewise.
	(f32_lm2): Likewise.
	(f32_li): Likewise.
	(f32_li2): Likewise.
	(f32_lv): Likewise.
	(f32_sr): Likewise.
	(f32_sr2): Likewise.
	(f32_sm): Likewise.
	(f32_sm2): Likewise.
	(f32_si): Likewise.
	(f32_si2): Likewise.
	(f32_sv): Likewise.
	(f32_dm): Likewise.
	(f32_vsx): Likewise.
	(f32_av): Likewise.
	(mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
	For movsf, order stores so the VSX stores occur before the GPR
	store which encourages the register allocator to use a traditional
	FPR instead of a GPR.  For movsd, order the stores so that the GPR
	store comes before the VSX stores to allow the power6 to work.
	This is due to the power6 not having a 32-bit integer store
	instruction from a FPR.
	(movsf_hardfloat): Likewise.
	(movsd_hardfloat): Likewise.

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

	Backport from trunk
	2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/80510
	* gcc.target/powerpc/pr80510-1.c: New test.
	* gcc.target/powerpc/pr80510-2.c: Likewise.

	Backport from trunk
	2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68163
	* gcc.target/powerpc/pr68163.c: New test.

From-SVN: r248480
2017-05-26 01:52:24 +00:00
Wilco Dijkstra 4c4df91e9c When lra-remat rematerializes an instruction with a clobber, it checks that the clobber does not kill live registers.
When lra-remat rematerializes an instruction with a clobber, it checks
that the clobber does not kill live registers.  However it fails to check
that the clobber also doesn't overlap with the destination register of the 
final rematerialized instruction.  As a result it is possible to generate
illegal instructions with the same hard register as the destination and a
clobber.  Fix this by also checking for overlaps with the destination
register.

	Backport from mainline
	PR rtl-optimization/80754
	* lra-remat.c (do_remat): Add overlap checks for dst_regno.

From-SVN: r248463
2017-05-25 15:12:49 +00:00
Wilco Dijkstra d82c5a2230 Move an use-after-free access before the delete.
Backport from mainline
	PR target/80671
	* config/aarch64/cortex-a57-fma-steering.c (merge_forest):
	Move member access before delete.

From-SVN: r248461
2017-05-25 15:10:01 +00:00
Sheldon Lobo 112eba68ad backport: sparc.c (sparc_option_override): Set function alignment for -mcpu=niagara7 to 64 to match the I$ line.
Backport from mainline
	2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>

	* config/sparc/sparc.c (sparc_option_override): Set function
	alignment for -mcpu=niagara7 to 64 to match the I$ line.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
	latency to 1.
	* config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
	latency to 2.
	* config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.

	Backport from mainline
	2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>

	* gcc.target/sparc/niagara7-align.c: New test.

From-SVN: r248380
2017-05-23 18:39:44 +00:00
Uros Bizjak a40583fba8 backport: re PR target/80799 (x86-32 bits generates MMX without EMMS)
Backport from mainline
	2017-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80799
	* config/i386/mmx.md (*mov<mode>_internal): Enable
	alternatives 11, 12, 13 and 14 also for 32bit targets.
	Remove alternatives 15, 16, 17 and 18.
	* config/i386/sse.md (vec_concatv2di): Change
	alternative (!x, *y) to (x, ?!*Yn).

testsuite/ChangeLog:

	Backport from mainline
	2017-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80799
	* g++.dg/other/i386-11.C: New test.

From-SVN: r248284
2017-05-19 16:09:45 +02:00
Uros Bizjak 335659bcdd * ChangeLog: Fix date.
From-SVN: r248033
2017-05-14 14:50:54 +02:00
Uros Bizjak 52e00e00b2 backport: re PR target/80706 (peephole2 uses uninitialized stack variables on i686)
Backport from mainline
	2017-05-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/80706
	* config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
	(UNSPEC_STX_ATOMIC): Ditto.
	(loaddi_via_sse): New insn.
	(storedi_via_sse): Ditto.
	(atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
	Update corresponding peephole2 patterns.
	(atomic_storedi_fpu): Ditto.

testsuite/ChangeLog:

	Backport from mainline
	2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR target/80706
	* gcc.target/i386/pr80706.c: New test.

	2017-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* gcc.target/i386/pr22152.c: Fix undefined testcase.
	Remove unnecessary loop.  Run on 32-bit targets only.

From-SVN: r248032
2017-05-14 14:49:55 +02:00
Bill Schmidt 7b5a39f069 backport: rs6000.c (rs6000_vect_nonmem): New static var.
[gcc]

2017-05-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
	(rs6000_init_cost): Initialize rs6000_vect_nonmem.
	(rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
	(rs6000_finish_cost): Avoid vectorizing simple copy loops with
	VF=2 that require versioning.

[gcc/testsuite]

2017-05-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/versioned-copy-loop.c: New file.

From-SVN: r248010
2017-05-13 21:35:44 +00:00
Bill Schmidt 26c3c343d7 backport: rs6000.c (altivec_init_builtins): Define POWER8 built-ins for vec_xl and vec_xst with short and char pointer...
[gcc]

2017-05-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
	built-ins for vec_xl and vec_xst with short and char pointer
	arguments.

[gcc/testsuite]

2017-05-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/p8-vec-xl-xst.c: New file.

From-SVN: r247999
2017-05-12 21:50:51 +00:00
John David Anglin e6aed289f5 re PR target/80090 (Incorrect assembler - output_addr_const may generate visibility output between op and address constant)
PR target/80090
	* config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
	handle calling assemble_external ourself.

From-SVN: r247873
2017-05-11 00:13:00 +00:00
John David Anglin 3ad1ecbb89 re PR target/79027 (fold-const.c:11104:1: internal compiler error: Floating point exception)
PR target/79027
	* config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
	modes with zero size.  Enhance comment.

From-SVN: r247870
2017-05-10 23:08:32 +00:00