Commit Graph

66520 Commits

Author SHA1 Message Date
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
Michael Meissner 560e3ca7cd backport: re PR target/79038 (Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128)
[gcc]
2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	Back port from mainline
	2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79038
	PR target/79202
	PR target/79203
	* config/rs6000/rs6000.md (u code attribute): Add FIX and
	UNSIGNED_FIX.
	(extendsi<mode>2): Add support for doing sign extension via
	VUPKHSW and XXPERMDI if the value is in Altivec registers and we
	don't have ISA 3.0 instructions.
	(extendsi<mode>2 splitter): Likewise.
	(fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
	generate the normal insns since SImode can now go in vector
	registers.  Disallow the special UNSPECs needed for previous
	machines to hide SImode being used.  Add new insns
	fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
	(fix_trunc<mode>si2_stfiwx): Likewise.
	(fix_trunc<mode>si2_internal): Likewise.
	(fixuns_trunc<mode>si2): Likewise.
	(fixuns_trunc<mode>si2_stfiwx): Likewise.
	(fctiw<u>z_<mode>_smallint): Likewise.
	(fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
	of floating point to 32-bit integer from doing a direct move to
	the GPR registers to do a store.
	(fctiwz_<mode>): Break long line.

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

	Back port from mainline
	2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79038
	PR target/79202
	PR target/79203
	* gcc.target/powerpc/ppc-round3.c: New test.
	* gcc.target/powerpc/ppc-round2.c: Update expected code.

From-SVN: r247820
2017-05-09 23:49:37 +00:00