2021-06-01  Release Manager

	* GCC 9.4.0 released.

2021-05-18  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/80960
	* dse.c (check_mem_read_rtx): Call get_addr on the
	offsetted address.

2021-05-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96513
	* tree-vect-slp.c (struct vdhs_data): New.
	(vect_detect_hybrid_slp): New walker.
	(vect_detect_hybrid_slp): Rewrite.

2021-05-18  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/96597
	* tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing
	initialization of ::punned.
	(vn_reference_insert): Use consistently false instead of 0.
	(vn_reference_insert_pieces): Likewise.

2021-05-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88240
	* tree-ssa-sccvn.h (vn_reference_s::punned): New flag.
	* tree-ssa-sccvn.c (vn_reference_insert): Initialize punned.
	(vn_reference_insert_pieces): Likewise.
	(visit_reference_op_call): Likewise.
	(visit_reference_op_load): Track whether a ref was punned.
	* tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist
	insertion on punned floating point loads.

2021-05-17  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100566
	* tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
	allow_back for all edge queries.

2021-05-12  Alex Coplan  <alex.coplan@arm.com>

	Backported from master:
	2021-05-11  Alex Coplan  <alex.coplan@arm.com>

	PR target/99988
	* config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
	(rest_of_insert_bti): Avoid inserting duplicate bti j insns for
	jump table targets.

2021-05-11  Geng Qi  <gengqi@linux.alibaba.com>

	Backported from master:
	2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>

	* config/riscv/riscv.opt (march=,mabi=): Negative itself.

2021-05-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/99037
	PR target/100441
	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
	aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
	matching const_int 0.
	(move_lo_quad_internal_be_<mode>): Likewise.
	(move_lo_quad_<mode>): Update for the above.
	* config/aarch64/iterators.md (VQ_2E): Delete.

2021-05-06  Roman Zhuykov  <zhroma@ispras.ru>

	Backported from master:
	2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/100225
	PR rtl-optimization/84878
	* modulo-sched.c (sms_schedule): Use note_stores to skip loops
	where we have an instruction which touches (writes) any hard
	register from df->regular_block_artificial_uses set.
	Allow not-single-set instruction only right before basic block
	tail.

2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/100402
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	always return the establisher frame for __builtin_frame_address (0).

2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	Backported from master:
	2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	PR rtl-optimization/100263
	* postreload.c (move2add_valid_value_p): Ensure register can
	change mode.

2021-05-05  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-05-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98786
	* tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
	adding new uses of abnormals.

2021-05-04  Alex Coplan  <alex.coplan@arm.com>

	Backported from master:
	2021-04-23  Alex Coplan  <alex.coplan@arm.com>

	PR rtl-optimization/100230
	* early-remat.c (early_remat::sort_candidates): Use delete[]
	instead of delete for array allocated with new[].

2021-05-04  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-04-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100053
	* tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
	not use optimistic dominance queries for backedges to validate
	predicated values.
	(dominated_by_p_w_unex): Add parameter to ignore executable
	state on backedges.
	(rpo_elim::eliminate_avail): Adjust.

2021-05-04  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-01-29  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/98144
	* df.h (df_mir_bb_info): Add con_visited member.
	* df-problems.c (df_mir_alloc): Initialize con_visited,
	do not fully populate IN and OUT.
	(df_mir_reset): Likewise.
	(df_mir_confluence_0): Set con_visited.
	(df_mir_confluence_n): Properly handle implicitely
	fully populated IN and OUT as designated by con_visited
	and update con_visited accordingly.

2021-05-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/100375
	* config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0
	as first argument of pseudo_node_t constructors.

2021-05-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/100302
	* config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
	absu_hwi instead of abs_hwi.

2021-05-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100254
	* cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
	last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.

2021-05-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/100255
	* vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
	vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
	register keywords.

2021-05-04  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100148
	* cprop.c (constprop_register): Use next_nondebug_insn instead of
	NEXT_INSN.

2021-05-04  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/91914
	* expr.c (string_constant): Pass argument type to
	fold_ctor_reference to guide it.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>
	    Jakub Jelinek   <jakub@redhat.com>

	PR target/97865
	* configure: Regenerate.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-12-23  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-driver.c (validate_macosx_version_min): Allow
	MACOSX_DEPLOYMENT_TARGET=11.
	(darwin_default_min_version): Adjust warning spelling to avoid
	an apostrophe.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-12-21  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-driver.c (darwin_find_version_from_kernel):
	Compute the minor OS version from the minor kernel version.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-11-06  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11.
	* config/darwin-driver.c: Likewise.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-11-01  Iain Sandoe  <iain@sandoe.co.uk>

	* config/host-darwin.c: Align pch_address_space to 16384.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/44107
	PR target/48097
	* config/darwin-protos.h (darwin_should_restore_cfa_state): New.
	* config/darwin.c (darwin_should_restore_cfa_state): New.
	* config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
	* dwarf2cfi.c (connect_traces): If the target requests, restore
	the CFA expression after a DW_CFA_restore.
	* target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_legitimize_pic_address): Check
	that the current pic register is one of the hard reg set
	before setting liveness.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-11-22  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-c.c (struct f_align_stack): Rename
	to type from align_stack to f_align_stack.
	(push_field_alignment): Likewise.
	(pop_field_alignment): Likewise.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2020-09-07  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_libc_has_function): Report sincos
	available from 10.9.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c: Lookup Objective C metadata and force indirection
	for IVAR refs.

2021-05-01  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL):
	Make ubsan_{data,type},ASAN symbols linker-visible.

2021-04-30  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	Backported from master:
	2019-11-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR tree-optimization/92608
	* tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead
	of dyn_cast.

2021-04-30  James Clarke  <jrtc27@jrtc27.com>

	PR bootstrap/87338
	* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
	instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.

2021-04-28  Uros Bizjak  <ubizjak@gmail.com>

	Backported from master:
	2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100182
	* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
	Copy operand 3 to operand 4.  Use sse_reg_operand
	as operand 3 predicate.
	(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
	(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
	(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
	Copy operand 1 to operand 0.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
	(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
	(LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.

2021-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99954
	* tree-loop-distribution.c: Include tree-affine.h.
	(generate_memcpy_builtin): Try using tree-affine to prove
	non-overlap.
	(loop_distribution::classify_builtin_ldst): Always classify
	as PKIND_MEMMOVE.

2021-04-25  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/99929
	* rtl.h (same_vector_encodings_p): New function.
	* cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
	* cselib.c (rtx_equal_for_cselib_1): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* lra-constraints.c (operands_match_p): Likewise.
	* reload.c (operands_match_p): Likewise.
	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.

2021-04-25  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/98136
	* config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
	CONST_INTs to aarch64_expand_mov_immediate when called after RA.

2021-04-25  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/96796
	* lra-constraints.c (in_class_p): Add a default-false
	allow_all_reload_class_changes_p parameter.  Do not treat
	reload moves specially when the parameter is true.
	(get_reload_reg): Try to narrow the class of an existing OP_OUT
	reload if we're reloading a reload pseudo in a reload instruction.

2021-04-25  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-12-31  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98302
	* tree-vect-patterns.c (vect_determine_precisions_from_users): Make
	sure that the precision remains greater than the shift count.

2021-04-25  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-07-08  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/95694
	* expr.c (expand_expr_real_2): Get the mode from the type rather
	than the rtx, and assert that it is consistent with the mode of
	the rtx (where known).  Optimize all constant integers, not just
	those that can be represented in poly_int64.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/99767
	* tree-vect-loop.c (vect_transform_loop): Don't remove just
	dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
	them by their last argument.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/99905
	* combine.c (expand_compound_operation): If pos + len > modewidth,
	perform the right shift by pos in inner_mode and then convert to mode,
	instead of trying to simplify a shift of rtx with inner_mode by pos
	as if it was a shift in mode.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99830
	* combine.c (simplify_and_const_int_1): Don't optimize varop
	away if it has side-effects.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR lto/99849
	* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
	just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/98601
	* rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
	not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
	unaligned_mems handle VOIDmode like BLKmode.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/99863
	* dse.c (replace_read): Drop regs_live argument.  Instead of
	regs_live, use store_insn->fixed_regs_live if non-NULL,
	otherwise punt if insns sequence clobbers or sets any hard
	registers.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99777
	* fold-const.c (extract_muldiv_1): For conversions, punt on casts from
	types other than scalar integral types.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99334
	* dwarf2out.h (struct dw_fde_node): Add rule18 member.
	* dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
	assignment with drap_reg active, queue reg save for hfp with offset 0
	and flush queued reg saves.  When handling a push with rule18,
	defer queueing reg save for hfp and just assert the offset is 0.
	(scan_trace): Assert that fde->rule18 is false.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99388
	* dwarf2out.c (insert_float): Change return type from void to
	unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
	(mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
	Adjust callers.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/99542
	* config/aarch64/aarch64.c
	(aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
	definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
	instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93235
	* expmed.c (store_bit_field_using_insv): Return false of xop0 is a
	SUBREG and a SUBREG to op_mode can't be created.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99225
	* fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
	to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
	build_int_cst (..., 1).  Formatting fixes.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99204
	* fold-const.c (fold_read_from_constant_string): Check that
	tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/99034
	* tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
	pad or non-local label, put FORCED_LABELs from bb b after that label
	rather than before it.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99079
	* match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
	useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
	require both type and TREE_TYPE (@1) to be integral types and either
	type having smaller or equal precision, or TREE_TYPE (@1) being
	unsigned type, or type being signed type.  If TREE_TYPE (@1)
	doesn't have wrapping overflow, perform the subtraction of one in
	unsigned type.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99035
	* varasm.c (declare_weak): For -fsyntax-only, allow even
	TREE_ASM_WRITTEN function decls.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99007
	* gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
	temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
	calls.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97487
	* ifcvt.c (noce_can_force_operand): New function.
	(noce_emit_move_insn): Use it.
	(noce_try_sign_mask): Likewise.  Formatting fix.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97971
	* lra-constraints.c (process_alt_operands): For inline asm, don't call
	fatal_insn, but instead return false.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98331
	* cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
	a BARRIER.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/98853
	* config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
	%w0, %w1 and %2 instead of %0, %1 and %2.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/98681
	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
	Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
	and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/97301
	* config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/90248
	* match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
	X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
	simplifications.
	(X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
	X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98556
	* tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
	POINTER_DIFF_EXPR to be any integral type.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98474
	* wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type
	is unsigned and excess negative, append set bits after len until
	precision.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98353
	* gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before
	storing it into cref.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (struct gimplify_omp_ctx): Add has_depend member.
	(gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND
	appears on OMP_TASK.
	(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force
	GOVD_WRITTEN on shared variables if task construct has depend clause.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/98183
	* omp-low.c (lower_omp_target): Don't add OMP_RETURN for
	data regions.
	* omp-expand.c (expand_omp_target): Don't try to remove
	OMP_RETURN for data regions.
	(build_omp_regions_1, omp_make_gimple_edges): Don't expect
	OMP_RETURN for data regions.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/98205
	* omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/98100
	* cfgexpand.c (expand_gimple_basic_block): For vars with
	vector type, use TYPE_MODE rather than DECL_MODE.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit
	constants and only in dwarf-5 or later, where DW_FORM_data16 is
	available.  Otherwise use DW_FORM_block*/DW_FORM_exprloc with
	DW_OP_implicit_value to describe the constant.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/98063
	* config/i386/i386.c (ix86_expand_call): Handle non-plt
	CM_LARGE_PIC calls.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-11-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/97599
	* dwarf2out.c (gen_subprogram_die): Call
	gen_unspecified_parameters_die even if not early dwarf, but only
	if subr_die is a newly created DIE.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-11-02  Jakub Jelinek  <jakub@redhat.com>

	* wide-int.cc (wi::set_bit_large): Call canonize unless setting
	msb bit and clearing bits above it.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-10-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/97386
	* combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if
	they have different modes.

2021-04-20  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-10-16  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/97294
	* tree-cfg.c (move_block_to_fn): Call notice_special_calls on
	call stmts being moved into dest_cfun.
	* omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when
	adding __builtin_alloca_with_align call without gimplification.

2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
	frames larger than the SEH maximum frame size.

2021-04-15  Lili Cui  <lili.cui@intel.com>

	* common/config/i386/i386-common.c
	(processor_names): Add tigerlake.
	(processor_alias_table): Ditto.
	* config.gcc (x86_64_archs): Ditto.
	* config/i386/driver-i386.c
	(host_detect_local_cpu): Detect tigerlake, add "has_avx" to
	classify processor.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_TIGERLAKE.
	* config/i386/i386.c (m_TIGERLAKE): Define.
	(m_CORE_AVX512): Add m_TIGERLAKE.
	(processor_cost_table): Add skylake_cost for tigerlake.
	(processor_model): Add M_INTEL_COREI7_TIGERLAKE.
	(arch_names_table): Add tigerlake.
	(get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE.
	* config/i386/i386.h (TARGET_TIGERLAKE): Define.
	(enum processor_type): Add PROCESSOR_TIGERLAKE.
	(PTA_TIGERLAKE): Define.
	* doc/extend.texi (__builtin_cpu_is): Add tigerlake.
	* doc/invoke.texi (-march=cpu-type): Ditto.

2021-04-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	Backported from master:
	2020-02-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
		    Kugan Vivekandarajah  <kugan.vivekanandarajah@linaro.org>

	PR driver/47785
	* gcc.c (putenv_COLLECT_AS_OPTIONS): New function.
	(driver::main): Call putenv_COLLECT_AS_OPTIONS.
	* opts-common.c (parse_options_from_collect_gcc_options): New function.
	(prepend_xassembler_to_collect_as_options): Likewise.
	* opts.h (parse_options_from_collect_gcc_options): Declare prototype.
	(prepend_xassembler_to_collect_as_options): Likewise.
	* lto-opts.c (lto_write_options): Stream assembler options
	in COLLECT_AS_OPTIONS.
	* lto-wrapper.c (xassembler_options_error): New static variable.
	(get_options_from_collect_gcc_options): Move parsing options code to
	parse_options_from_collect_gcc_options and call it.
	(merge_and_complain): Validate -Xassembler options.
	(append_compiler_options): Handle OPT_Xassembler.
	(run_gcc): Append command line -Xassembler options to
	collect_gcc_options.
	* doc/invoke.texi: Add documentation about using Xassembler
	options with LTO.

2021-04-12  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-03-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99694
	* tree-ssa-sccvn.c (visit_phi): Ignore edges with the
	PHI result.

2021-04-12  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-02-24  Richard Biener  <rguenther@suse.de>

	PR c/99224
	* builtins.c (fold_builtin_next_arg): Avoid NULL arg.

2021-04-12  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-02-08  Richard Biener  <rguenther@suse.de>

	PR lto/96591
	* tree.c (walk_tree_1): Walk VECTOR_CST elements.

2021-04-08  Martin Jambor  <mjambor@suse.cz>

	Backported from master:
	2021-04-01  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/97009
	* tree-sra.c (access_or_its_child_written): New function.
	(propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
	test.

2021-04-01  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99856
	* tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
	precision to vector element precision.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	Backported from master:
	2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR ipa/99466
	* tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
	TLS declarations as public.

2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>

	Backported from master:
	2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>

	PR target/97329
	* config/rs6000/rs6000.c (power8_costs): Change l2 cache
	from 256 to 512.

2021-03-23  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2021-03-23  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99704
	* config/i386/cpuid.h (__cpuid): Add __volatile__.
	(__cpuid_count): Likewise.

2021-03-22  Kito Cheng  <kito.cheng@sifive.com>

	Backported from master:
	2021-03-22  Kito Cheng  <kito.cheng@sifive.com>

	PR target/99702
	* config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
	after type checking.

2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>

	Backported from master:
	2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
		    Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.c (riscv_block_move_straight): Change type
	to unsigned HOST_WIDE_INT for parameter and local variable with
	HOST_WIDE_INT type.
	(riscv_adjust_block_mem): Ditto.
	(riscv_block_move_loop): Ditto.
	(riscv_expand_block_move): Ditto.

2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
	to compare against CC_REG rather than NE.

2021-03-17  Martin Jambor  <mjambor@suse.cz>

	Backported from master:
	2021-03-05  Martin Jambor  <mjambor@suse.cz>

	PR ipa/98078
	* cgraph.c (cgraph_edge::set_call_stmt): Do not update all
	corresponding speculative edges if we are about to resolve
	speculation.  Make edge direct (and so resolve speculations) before
	removing it from call_site_hash.
	(cgraph_edge::make_direct): Relax the initial assert to allow calling
	the function on speculative direct edges.

2021-03-17  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-03-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98758
	* tree-data-ref.c (int_divides_p): Use lambda_int arguments.
	(lambda_matrix_right_hermite): Avoid undefinedness with
	signed integer abs and multiplication.
	(analyze_subscript_affine_affine): Use lambda_int.

2021-03-17  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98282
	* tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
	invariants as VN_NARY.

2021-03-17  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-01-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98117
	* tree-vect-loop-manip.c (vect_gen_vector_loop_niters):
	Properly handle degenerate niter when setting the vector
	loop IV range.

2021-03-17  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-03-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93964
	* graphite-isl-ast-to-gimple.c
	(gcc_expression_from_isl_ast_expr_id): Add intermediate
	conversion for pointer to integer converts.
	* graphite-scop-detection.c (assign_parameter_index_in_region):
	Relax assert.

2021-03-07  John David Anglin  <danglin@gcc.gnu.org>

	PR target/85074
	* config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
	hook_bool_const_tree_hwi_hwi_const_tree_true.
	(pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.

2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/99234
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	point back the hard frame pointer to its default location when the
	frame is larger than SEH_MAX_FRAME_SIZE.

2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/99234
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	point the hard frame pointer to the SSE register save area instead
	of the general register save area.  Perform only minimal adjustment
	for small frames if it is initially not correctly aligned.
	(ix86_expand_prologue): Remove early saves for a SEH target.
	* config/i386/winnt.c (struct seh_frame_state): Document constraint.

2021-02-23  Qian Jianhua  <qianjh@cn.fujitsu.com>

	Backported from master:
	2021-02-23  Qian Jianhua  <qianjh@cn.fujitsu.com>

	* config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
	* config/aarch64/aarch64.c (a64fx_addrcost_table): New.
	(a64fx_regmove_cost, a64fx_vector_cost): New.
	(a64fx_tunings): Use the new added cost tables.

2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.

2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
	the cold section, emit a nop before the directive if the previous
	active instruction can throw.

2021-02-05  Matthias Klose  <doko@ubuntu.com>

	Backported from master:
	2020-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97236
	* tree-vect-stmts.c (get_group_load_store_type): Keep
	VMAT_ELEMENTWISE for single-element vectors.

2021-02-03  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/97528
	* config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require
	first POST_MODIFY operand is a REG and is equal to the first operand
	of PLUS.

2021-01-29  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
		    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97627
	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
	Do not analyze fake edges.

2021-01-21  Wilco Dijkstra  <wdijkstr@arm.com>

	Backported from master:
	2019-10-16  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/98618
	* config/aarch64/aarch64.c (aarch64_classify_symbol):
	Apply reasonable limit to symbol offsets.

2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	Backported from master:
	2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* config.gcc [$target == *-*-gnu*]: Enable
	'default_gnu_indirect_function'.

2021-01-06  2019-07-10  Marc Glisse  <marc.glisse@inria.fr>

	PR testsuite/90806
	Backport from mainline
	* wide-int.h (wi::lshift): Reject negative values for the fast path.

2020-12-28  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/96793
	* config/i386/i386.c (ix86_expand_rint):
	Remove the sign of the intermediate value for flag_rounding_math.

2020-12-28  Piotr Kubaj  <pkubaj@FreeBSD.org>

	Backported from master:
	2020-12-16  Piotr Kubaj  <pkubaj@FreeBSD.org>

	* config.gcc (powerpc*le-*-freebsd*): Add.
	* configure.ac (powerpc*le-*-freebsd*): Ditto.
	* configure: Regenerate.
	* config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
	(DEFAULT_ASM_ENDIAN): Add little endian support.
	(LINK_OS_FREEBSD_SPEC64): Ditto.

2020-12-27  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/96793
	* config/i386/i386.c (ix86_expand_truncdf_32):
	Remove the sign of the intermediate value for flag_rounding_math.

2020-12-24  Roman Zhuykov  <zhroma@ispras.ru>

	Backported from master:
	2020-12-05  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/97421
	* modulo-sched.c (generate_prolog_epilog): Remove forward
	declaration, adjust last argument name and type.
	(const_iteration_count): Add bool pointer parameter to return
	whether count register is read in pre-header after its
	initialization.
	(sms_schedule): Fix count register initialization adjustment
	procedure according to what const_iteration_count said.

2020-12-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/96793
	* config/i386/i386.c (ix86_expand_floorceil):
	Remove the sign of the intermediate value for flag_rounding_math.
	(ix86_expand_floorceildf_32): Ditto.

2020-12-14  Wilco Dijkstra  <wdijkstr@arm.com>

	* config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native.
	* config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune.

2020-12-14  Sebastian Pop  <spop@amazon.com>

	* config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags.

2020-12-03  Uroš Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/98086
	* config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite
	zero-extension part to use convert_to_mode.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-07-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96075
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
	TYPE_SIZE_UNIT of the vector component type instead of DR_STEP
	for the misalignment calculation for negative step.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-07-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/96369
	* fold-const.c (fold_range_test): Special-case constant
	LHS for short-circuiting operations.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-11-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97812
	* tree-vrp.c (register_edge_assert_for_2): Extend the range
	according to its sign before seeing whether it fits.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-10-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97255
	* tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
	VIEW_CONVERT_EXPR.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97081
	* tree-vect-patterns.c (vect_recog_rotate_pattern): Use the
	precision of the shifted operand to determine the mask.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-08-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96579
	* tree-ssa-reassoc.c (linearize_expr_tree): If we expand
	rhs via special ops make sure to swap operands.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-07-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96370
	* tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
	code parameter and use it instead of picking it up from
	the stmt that is being rewritten.
	(reassociate_bb): Pass down the operation code.

2020-12-02  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-08-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96514
	* tree-if-conv.c (if_convertible_bb_p): If the last stmt
	is a call that is control-altering, fail.

2020-12-01  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-10-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/97554
	* sbitmap.c (sbitmap_vector_alloc): Use size_t for byte
	quantities to avoid overflow.

2020-11-30  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

	* config/arm/arm-protos.h: New function arm_gen_far_branch prototype.
	* config/arm/arm.c (arm_gen_far_branch): New function
	arm_gen_far_branch.
	* config/arm/arm.md: Update b<cond> for Thumb2 range checks.

2020-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/97939
	* config/sparc/predicates.md (arith_double_add_operand): Comment.
	* config/sparc/sparc.md (uaddvdi4): Use arith_double_operand.
	(addvdi4): Use arith_double_add_operand.
	(addsi3): Remove useless attributes.
	(addvsi4): Use arith_add_operand.
	(*cmp_ccv_plus): Likewise and add second alternative accordingly.
	(*cmp_ccxv_plus): Likewise.
	(*cmp_ccv_plus_set): Likewise.
	(*cmp_ccxv_plus_set): Likewise.
	(*cmp_ccv_plus_sltu_set): Likewise.
	(usubvdi4): Use arith_double_operand.
	(subvdi4): Use arith_double_add_operand.
	(subsi3): Remove useless attributes.
	(subvsi4): Use arith_add_operand.
	(*cmp_ccv_minus): Likewise and add second alternative accordingly.
	(*cmp_ccxv_minus): Likewise.
	(*cmp_ccv_minus_set): Likewise.
	(*cmp_ccxv_minus_set): Likewise.
	(*cmp_ccv_minus_sltu_set): Likewise.
	(negsi2): Use register_operand.
	(unegvsi3): Likewise.
	(negvsi3) Likewise.
	(*cmp_ccnz_neg): Likewise.
	(*cmp_ccxnz_neg): Likewise.
	(*cmp_ccnz_neg_set): Likewise.
	(*cmp_ccxnz_neg_set): Likewise.
	(*cmp_ccc_neg_set): Likewise.
	(*cmp_ccxc_neg_set): Likewise.
	(*cmp_ccc_neg_sltu_set): Likewise.
	(*cmp_ccv_neg): Likewise.
	(*cmp_ccxv_neg): Likewise.
	(*cmp_ccv_neg_set): Likewise.
	(*cmp_ccxv_neg_set): Likewise.
	(*cmp_ccv_neg_sltu_set): Likewise.

2020-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/96607
	* config/sparc/sparc-protos.h (eligible_for_call_delay): Delete.
	* config/sparc/sparc.c (eligible_for_call_delay): Likewise.
	* config/sparc/sparc.md (in_call_delay): Likewise.
	(tls_delay_slot): New attribute.
	(define_delay [call]): Use in_branch_delay.
	(tgd_call<P:mode>): Set type to call_no_delay_slot when
	tls_delay_slot is false.
	(tldm_call<P:mode>): Likewise.

2020-11-24  Jason Merrill  <jason@redhat.com>

	PR c++/97918
	* dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list
	after gen_scheduled_generic_parms_dies.

2020-11-17  Sebastian Pop  <spop@amazon.com>

	Backported from master:
	2020-11-17  Sebastian Pop  <spop@amazon.com>

	* config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64}
	as alias flags for --with-{cpu,arch,tune} on AArch64.
	* doc/install.texi: Document new flags for aarch64.

2020-11-17  Sebastian Pop  <spop@amazon.com>

	Backported from master:
	2020-11-17  Sebastian Pop  <spop@amazon.com>

	* config.gcc: Add --with-tune to AArch64 configure flags.

2020-11-17  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-10-27  Tamar Christina  <tamar.christina@arm.com>

	PR target/97535
	* config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned
	arithmetic in check.

2020-11-17  Monk Chiang  <monk.chiang@sifive.com>

	Backported from master:
	2020-11-14  Monk Chiang  <monk.chiang@sifive.com>

	PR target/97682
	* config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register
	to t0.
	(RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register.
	(RISCV_CALL_ADDRESS_TEMP): Use it for call instructions.
	* config/riscv/riscv.c (riscv_legitimize_call_address): Use
	RISCV_CALL_ADDRESS_TEMP.
	(riscv_compute_frame_info): Change temporary register to t0 form t1.
	(riscv_trampoline_init): Adjust comment.

2020-11-16  Cui,Lili  <lili.cui@intel.com>

	* config/i386/i386.h: Add PREFETCHW to march=broadwell.
	* doc/invoke.texi: Put PREFETCHW back to relation arch.

2020-11-11  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal):
	Handle PTA_CLDEMOTE, PTA_MOVDIRI, PTA_MOVDIR64B.
	* config/i386/i386.h (PTA_CLDEMOTE, PTA_MOVDIRI,
	PTA_MOVDIR64B.): Define.

2020-11-09  Lili Cui  <lili.cui@intel.com>

	PR target/97685
	* config/i386/i386.h:
	(PTA_BROADWELL): Delete PTA_PRFCHW.
	(PTA_SILVERMONT): Add PTA_PRFCHW.
	(PTA_KNL): Add PTA_PREFETCHWT1.
	(PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG.
	* doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm,
	skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake,
	cooperlake, tigerlake and sapphirerapids.
	Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont.
	Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont.
	Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont.
	Add KEYLOCKER and HREST for alderlake.
	Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids.
	Add KEYLOCKER for tigerlake.

2020-10-22  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backported from master:
	2020-10-22  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR rtl-optimization/97439
	* dfp.c (decimal_real_maxval): Set the sign flag in the
	generated number.

2020-10-16  Martin Liska  <mliska@suse.cz>

	Backported from master:
	2020-10-16  Martin Liska  <mliska@suse.cz>

	PR ipa/97404
	* ipa-prop.c (struct ipa_vr_ggc_hash_traits):
	Compare types of VRP as we can merge ranges of different types.

2020-10-15  Martin Liska  <mliska@suse.cz>

	Backported from master:
	2020-10-15  Martin Liska  <mliska@suse.cz>

	PR ipa/97295
	* profile-count.c (profile_count::to_frequency): Move part of
	gcc_assert to STATIC_ASSERT.
	* regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for
	a function that does not have count_max initialized.

2020-10-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (neoversen2_tunings): Define.
	* config/aarch64/aarch64-cores.def (neoverse-n2): Use it.

2020-10-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-10-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/97349
	* config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16,
	vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16):
	Fix argument type.

2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
	UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
	(aarch64_<frintnzs_op><mode>): New define_insn.
	* config/aarch64/aarch64.h (TARGET_FRINT): Define.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
	__ARM_FEATURE_FRINT when appropriate.
	* config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
	frint32x, frint64z, frint64x.
	* config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
	__rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
	* config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
	vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
	vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
	vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
	* config/aarch64/iterators.md (VSFDF): Define.
	(FRINTNZX): Likewise.
	(frintnzs_op): Likewise.

2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/97150
	* config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument
	signed.
	(vqrshlh_u16): Likewise.
	(vqrshls_u32): Likewise.
	(vqrshld_u64): Likewise.
	(vqshlb_u8): Likewise.
	(vqshlh_u16): Likewise.
	(vqshls_u32): Likewise.
	(vqshld_u64): Likewise.
	(vshld_u64): Likewise.

2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-10-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/96313
	* config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS
	qualifiers.
	* config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call.
	Remove unnecessary result cast.
	(vqmovun_s32): Likewise.
	(vqmovun_s64): Likewise.
	(vqmovunh_s16): Likewise.  Fix return type.
	(vqmovuns_s32): Likewise.
	(vqmovund_s64): Likewise.

2020-10-08  Alan Modra  <amodra@gmail.com>

	Backported from master:
	2020-10-01  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_address): Use
	gen_int_mode for high part of address constant.

2020-10-05  Alex Coplan  <alex.coplan@arm.com>

	* config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and
	part numbers.

2020-10-02  Alex Coplan  <alex.coplan@arm.com>

	* config/arm/arm-cpus.in (neoverse-n2): New.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* doc/invoke.texi: Document support for Neoverse N2.

2020-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (neoversev1_tunings): Define.
	* config/aarch64/aarch64-cores.def (zeus): Use it.
	(neoverse-v1): Likewise.

2020-10-02  Martin Liska  <mliska@suse.cz>

	Backported from master:
	2020-10-02  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/97193
	* coverage.c (coverage_init): GCDA note files should not be
	mangled and should end in output directory.

2020-10-02  Martin Liska  <mliska@suse.cz>

	Backported from master:
	2020-09-25  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/64636
	* value-prof.c (stream_out_histogram_value): Allow negative
	values for HIST_TYPE_IOR.

2020-10-02  Martin Liska  <mliska@suse.cz>

	Backported from master:
	2020-09-23  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/97069
	* profile.c (branch_prob): Line number must be at least 1.

2020-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-tuning-flags.def
	(PREFER_ADVSIMD_AUTOVEC): Define.
	* config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use
	it.
	(aarch64_autovectorize_vector_sizes): Likewise.

2020-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (zeus): Add AARCH64_FL_RNG to
	features.
	(neoverse-v1): Likewise.

2020-10-01  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-10-01  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
	fenv_var and old_fpc.  Formatting fixes.

2020-10-01  Alex Coplan  <alex.coplan@arm.com>

	* config/aarch64/aarch64-cores.def: Add Neoverse N2.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi: Document AArch64 support for Neoverse N2.

2020-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-option-extensions.def (rng): Add
	cpuinfo string.

2020-09-30  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2020-09-30  H.J. Lu  <hjl.tools@gmail.com>

	PR target/97184
	* config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
	(UNSPEC_MOVDIRI): This.
	(UNSPECV_MOVDIR64B): Renamed to ...
	(UNSPEC_MOVDIR64B): This.
	(movdiri<mode>): Use SET operation.
	(@movdir64b_<mode>): Likewise.

2020-09-29  Hongyu Wang  <hongyu.wang@intel.com>

	Backported from master:
	2020-09-29  Hongyu Wang  <hongyu.wang@intel.com>

	PR target/97231
	* config/i386/pconfigintrin.h: Add FSF copyright notes.
	* config/i386/wbnoinvdintrin.h: Ditto.

2020-09-29  Alex Coplan  <alex.coplan@arm.com>

	* config/arm/arm-cpus.in (neoverse-v1): New.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* doc/invoke.texi: Document AArch32 support for Neoverse V1.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vreinterpretq_f64_p128,
	vreinterpretq_p128_f64): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF
	for modes.  Remove explicit hf instantiation.
	* config/aarch64/arm_neon.h (vrndns_f32): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64,
	vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vldrq_p128): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vstrq_p128): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32,
	vclsq_u8, vclsq_u16, vclsq_u32): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define.

2020-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-09-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8,
	vaddq_p16, vaddq_p64, vaddq_p128): Define.

2020-09-27  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97073
	* optabs.c (expand_binop, expand_absneg_bit, expand_unop,
	expand_copysign_bit): Check reg_overlap_mentioned_p between target
	and operand(s) and if it returns true, force a pseudo as target.

2020-09-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/71233
	* config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS):
	Define.
	(aarch64_rndr): New define_insn.
	(aarch64_rndrrs): Likewise.
	* config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
	(TARGET_RNG): Likewise.
	* config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
	Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
	(aarch64_init_rng_builtins): Define.
	(aarch64_init_builtins): Call aarch64_init_rng_builtins.
	(aarch64_expand_rng_builtin): Define.
	(aarch64_expand_builtin): Use IGNORE argument, handle
	RNG builtins.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
	Define __ARM_FEATURE_RNG when TARGET_RNG.
	* config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.

2020-09-24  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2020-09-16  H.J. Lu  <hjl.tools@gmail.com>

	PR target/97032
	* cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm
	to true if the stack pointer is clobbered by asm statement.
	* emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm.
	* config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true
	if the stack pointer is clobbered by asm statement.

2020-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backported from master:
	2020-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
		    Andrea Corallo   <andrea.corallo@arm.com>

	PR target/71233
	* config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
	(aarch64_fjcvtzs): New define_insn.
	* config/aarch64/aarch64.h (TARGET_JSCVT): Define.
	* config/aarch64/aarch64-builtins.c (aarch64_builtins):
	Add AARCH64_JSCVT.
	(aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
	(aarch64_expand_builtin): Handle AARCH64_JSCVT.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
	__ARM_FEATURE_JCVT where appropriate.
	* config/aarch64/arm_acle.h (__jcvt): Define.
	* doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new
	target supports option.

2020-09-24  Alex Coplan  <alex.coplan@arm.com>

	* config/aarch64/aarch64-cores.def: Add Neoverse V1.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi: Document support for Neoverse V1.

2020-09-18  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/97053
	* gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER,
	START, FIRST_EARLIER and LAST_EARLIER arguments.  Return false if
	any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive
	has order in between FIRST_ORDER and LAST_ORDER and overlaps the to
	be merged store.
	(imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument.
	Adjust check_no_overlap caller.
	(imm_store_chain_info::coalesce_immediate_stores): Add first_earlier
	and last_earlier variables, adjust them during iterations.  Adjust
	check_no_overlap callers, call check_no_overlap even when extending
	overlapping stores by extra INTEGER_CST stores.

2020-09-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-04-29  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
	fenv_var and new_fenv_var.

2020-09-17  Segher Boessenkool  <segher@kernel.crashing.org>

	Backported from master:
	2020-04-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/94710
	* config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little
	endian byteshift_val calculation.

2020-09-17  liuhongt  <hongtao.liu@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET.
	(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/96729
	* dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment.
	(dwarf2out_var_location): Look for next_note only if next_real is
	non-NULL, in that case look for the first non-deleted
	NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96722
	* gimple.c (infer_nonnull_range): Formatting fix.
	(infer_nonnull_range_by_dereference): Return false for clobber stmts.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-08  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/93553
	* tree-nested.c (convert_nonlocal_omp_clauses): For
	OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR
	save info->new_local_var_chain around walks of the clause gimple
	sequences and declare_vars if needed into the sequence.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/96459
	* omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in
	for host teams.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-08-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/96426
	* tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT
	call with GIMPLE_NOP if there is no lhs.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/96174
	* config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
	_mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask,
	_mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask,
	_mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask,
	_mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask,
	_mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask,
	_mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask,
	_mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask,
	_mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask,
	_mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask,
	_mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask,
	_mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask,
	_mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask,
	_mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask,
	_mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask,
	_mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask,
	_mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded
	section.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95857
	* tree-cfg.c (group_case_labels_stmt): When removing an unreachable
	base_bb, remember all forced and non-local labels on it and later
	treat those as if they have NULL label_to_block.  Formatting fix.
	Fix a comment typo.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/95810
	* fold-const.c (fold_cond_expr_with_comparison): Optimize
	A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A).

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-05-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/95108
	* omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
	(ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
	entry block if info->after_stmt is NULL, otherwise add after that stmt
	and update it after adding each stmt.
	(ipa_simd_modify_function_body): Initialize info.after_stmt.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/95080
	* cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
	if the last insn is a note.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/94950
	* config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/94873
	* combine.c (combine_instructions): Don't optimize using REG_EQUAL
	note if SET_SRC (set) has side-effects.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-05-02  Jakub Jelinek  <jakub@redhat.com>

	* config/tilegx/tilegx.md
	(insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n>
	rather than just <n>.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/94832
	* config/i386/avx512bwintrin.h (_mm512_alignr_epi8,
	_mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands
	used in casts into parens.
	* config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph,
	_mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph,
	_mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph,
	_mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask,
	_mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask,
	_mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask,
	_mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise.
	* config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8,
	_mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8,
	_mm256_mask_cmp_epu8_mask): Likewise.
	* config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph,
	_mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise.
	* config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise.
	* config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/94832
	* config/i386/avx2intrin.h (_mm_mask_i32gather_pd,
	_mm256_mask_i32gather_pd, _mm_mask_i64gather_pd,
	_mm256_mask_i64gather_pd, _mm_mask_i32gather_ps,
	_mm256_mask_i32gather_ps, _mm_mask_i64gather_ps,
	_mm256_mask_i64gather_ps, _mm_i32gather_epi64,
	_mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
	_mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
	_mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
	_mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
	_mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
	_mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
	_mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
	_mm256_mask_i64gather_epi32): Surround macro parameter uses with
	parens.
	(_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd,
	_mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps,
	_mm_i64gather_ps, _mm256_i64gather_ps): Likewise.  Don't use
	as mask vector containing -1.0 or -1.0f elts, but instead vector
	with all bits set using _mm*_cmpeq_p? with zero operands.
	* config/i386/avx512fintrin.h (_mm512_i32gather_ps,
	_mm512_mask_i32gather_ps, _mm512_i32gather_pd,
	_mm512_mask_i32gather_pd, _mm512_i64gather_ps,
	_mm512_mask_i64gather_ps, _mm512_i64gather_pd,
	_mm512_mask_i64gather_pd, _mm512_i32gather_epi32,
	_mm512_mask_i32gather_epi32, _mm512_i32gather_epi64,
	_mm512_mask_i32gather_epi64, _mm512_i64gather_epi32,
	_mm512_mask_i64gather_epi32, _mm512_i64gather_epi64,
	_mm512_mask_i64gather_epi64, _mm512_i32scatter_ps,
	_mm512_mask_i32scatter_ps, _mm512_i32scatter_pd,
	_mm512_mask_i32scatter_pd, _mm512_i64scatter_ps,
	_mm512_mask_i64scatter_ps, _mm512_i64scatter_pd,
	_mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32,
	_mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64,
	_mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32,
	_mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64,
	_mm512_mask_i64scatter_epi64): Surround macro parameter uses with
	parens.
	* config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
	_mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd,
	_mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
	_mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd,
	_mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
	_mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
	_mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
	_mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
	_mm512_mask_prefetch_i64scatter_ps): Likewise.
	* config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps,
	_mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd,
	_mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps,
	_mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd,
	_mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32,
	_mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64,
	_mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32,
	_mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64,
	_mm_mmask_i64gather_epi64, _mm256_i32scatter_ps,
	_mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps,
	_mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd,
	_mm_mask_i32scatter_pd, _mm256_i64scatter_ps,
	_mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps,
	_mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd,
	_mm_mask_i64scatter_pd, _mm256_i32scatter_epi32,
	_mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32,
	_mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64,
	_mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64,
	_mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32,
	_mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32,
	_mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64,
	_mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64,
	_mm_mask_i64scatter_epi64): Likewise.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/94826
	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for first assignment to
	fenv_var, fenv_clear and old_fenv variables.  For fenv_addr
	take address of TARGET_EXPR of fenv_var with void_node initializer.
	Formatting fixes.

2020-09-16  Haijian Zhang  <z.zhanghaijian@huawei.com>

	Backported from master:
	2020-04-29  Haijian Zhang  <z.zhanghaijian@huawei.com>

	PR target/94820
	* config/aarch64/aarch64-builtins.c
	(aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of
	MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and
	new_fenv_var.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94809
	* tree.c (build_call_expr_internal_loc_array): Call
	process_call_operands.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/94780
	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for first assignment to
	sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/94710
	* optabs.c (expand_vec_perm_const): For shift_amt const0_rtx
	just return v2.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR c/94705
	* attribs.c (decl_attribute): Don't diagnose attribute exclusions
	if last_decl is error_mark_node or has such a TREE_TYPE.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR c/94641
	* stor-layout.c (place_field, finalize_record_size): Don't emit
	-Wpadded warning on TYPE_ARTIFICIAL rli->t.
	* ubsan.c (ubsan_get_type_descriptor_type,
	ubsan_get_source_location_type, ubsan_create_data): Set
	TYPE_ARTIFICIAL.
	* asan.c (asan_global_struct): Likewise.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/94618
	* cfgrtl.c (delete_insn_and_edges): Set purge not just when
	insn is the BB_END of its block, but also when it is only followed
	by DEBUG_INSNs in its block.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94621
	* tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN.
	Move id->adjust_array_error_bounds check first in the condition.

2020-09-16  Gustavo Romero  <gromero@linux.ibm.com>

	Backported from master:
	2020-04-15  Gustavo Romero  <gromero@linux.ibm.com>

	PR bootstrap/89494
	* dumpfile.c (selftest::temp_dump_context::temp_dump_context):
	Don't construct a dump_context temporary to call static method.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94524
	* tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is
	negative for signed TRUNC_MOD_EXPR, multiply with absolute value of
	op1 rather than op1 itself at the end.  Punt for signed modulo by
	most negative constant.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed
	modulo by most negative constant.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/94438
	* config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size
	1, 2, 4 and 8.

2020-09-16  Sylvia Taylor  <sylvia.taylor@arm.com>

	Backported from master:
	2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>

	* config/aarch64/aarch64-simd-builtins.def:
	(ld1x4): New.
	(st1x4): Likewise.
	* config/aarch64/aarch64-simd.md:
	(aarch64_ld1x4<VALLDIF:mode>): New pattern.
	(aarch64_st1x4<VALLDIF:mode>): Likewise.
	(aarch64_ld1_x4_<mode>): Likewise.
	(aarch64_st1_x4_<mode>): Likewise.
	* config/aarch64/arm_neon.h:
	(vld1_s8_x4): New function.
	(vld1q_s8_x4): Likewise.
	(vld1_s16_x4): Likewise.
	(vld1q_s16_x4): Likewise.
	(vld1_s32_x4): Likewise.
	(vld1q_s32_x4): Likewise.
	(vld1_u8_x4): Likewise.
	(vld1q_u8_x4): Likewise.
	(vld1_u16_x4): Likewise.
	(vld1q_u16_x4): Likewise.
	(vld1_u32_x4): Likewise.
	(vld1q_u32_x4): Likewise.
	(vld1_f16_x4): Likewise.
	(vld1q_f16_x4): Likewise.
	(vld1_f32_x4): Likewise.
	(vld1q_f32_x4): Likewise.
	(vld1_p8_x4): Likewise.
	(vld1q_p8_x4): Likewise.
	(vld1_p16_x4): Likewise.
	(vld1q_p16_x4): Likewise.
	(vld1_s64_x4): Likewise.
	(vld1_u64_x4): Likewise.
	(vld1_p64_x4): Likewise.
	(vld1q_s64_x4): Likewise.
	(vld1q_u64_x4): Likewise.
	(vld1q_p64_x4): Likewise.
	(vld1_f64_x4): Likewise.
	(vld1q_f64_x4): Likewise.
	(vst1_s8_x4): Likewise.
	(vst1q_s8_x4): Likewise.
	(vst1_s16_x4): Likewise.
	(vst1q_s16_x4): Likewise.
	(vst1_s32_x4): Likewise.
	(vst1q_s32_x4): Likewise.
	(vst1_u8_x4): Likewise.
	(vst1q_u8_x4): Likewise.
	(vst1_u16_x4): Likewise.
	(vst1q_u16_x4): Likewise.
	(vst1_u32_x4): Likewise.
	(vst1q_u32_x4): Likewise.
	(vst1_f16_x4): Likewise.
	(vst1q_f16_x4): Likewise.
	(vst1_f32_x4): Likewise.
	(vst1q_f32_x4): Likewise.
	(vst1_p8_x4): Likewise.
	(vst1q_p8_x4): Likewise.
	(vst1_p16_x4): Likewise.
	(vst1q_p16_x4): Likewise.
	(vst1_s64_x4): Likewise.
	(vst1_u64_x4): Likewise.
	(vst1_p64_x4): Likewise.
	(vst1q_s64_x4): Likewise.
	(vst1q_u64_x4): Likewise.
	(vst1q_p64_x4): Likewise.
	(vst1_f64_x4): Likewise.
	(vst1q_f64_x4): Likewise.

2020-09-15  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_init_builtin): Update V2DI_type_node
	and unsigned_V2DI_type_node definitions.

2020-09-15  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2020-09-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/97028
	* config/i386/sse.md (mul<mode>3<mask_name>_bcs,
	<avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of
	<<avx512bcst>>.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-05-07  Richard Biener  <rguenther@suse.de>

	PR ipa/94947
	* tree-ssa-structalias.c (refered_from_nonlocal_fn): Use
	DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible.
	(refered_from_nonlocal_var): Likewise.
	(ipa_pta_execute): Likewise.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-05-05  Richard Biener  <rguenther@suse.de>

	PR ipa/94947
	* tree-ssa-structalias.c (ipa_pta_execute): Use
	varpool_node::externally_visible_p ().
	(refered_from_nonlocal_var): Likewise.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-05-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/94964
	* cfgloopmanip.c (create_preheader): Require non-complex
	preheader edge for CP_SIMPLE_PREHEADERS.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-05-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/95049
	* tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
	between different constants.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-05-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/95133
	* gimple-ssa-split-paths.c
	(find_block_to_duplicate_for_splitting_paths): Check for
	normal edges.

2020-09-11  Richard Biener  <rguenther@suse.de>

	Backported from master:
	2020-06-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/95717
	* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
	Move BB SSA updating before exit/latch PHI current def copying.

2020-09-02  Kewen Lin  <linkw@linux.ibm.com>

	Backported from master:
	2019-12-30  Peter Bergner  <bergner@linux.ibm.com>

	PR target/92923
	* config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR):
	Delete.
	(EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS,
	NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS,
	NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS,
	ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI,
	VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF,
	VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI,
	VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF,
	VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI,
	VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF,
	VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI,
	VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF,
	VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI,
	VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF,
	VXOR_V2DF): Add definitions.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins)
	<ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR,
	ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove.
	<ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF,
	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
	ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI,
	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI,
	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS,
	ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF,
	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
	ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI,
	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI,
	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
	ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF,
	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
	ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS,
	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
	ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF,
	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
	ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI,
	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add
	definitions.
	<P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI,
	P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI,
	P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI,
	P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI,
	P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS
	definition names.
	* config/rs6000/rs6000.c
	(rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
	ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS,
	ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
	ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS,
	ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF,
	ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
	ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS,
	ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
	ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS,
	ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF,
	ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS,
	P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS,
	P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI,
	ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI,
	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI,
	ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI,
	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI,
	ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF,
	P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS,
	P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS,
	P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS,
	ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS,
	ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF,
	ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS,
	ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS,
	ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF,
	ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names.
	(builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS,
	ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS,
	ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS,
	ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS,
	ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS,
	ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS,
	ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS,
	P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS,
	P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS,
	P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS,
	P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS,
	P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS,
	P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS,
	P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned
	builtins.

2020-08-27  Christophe Lyon  <christophe.lyon@linaro.org>

	Backported from master:
	2020-08-24  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/94538
	PR target/94538
	* config/arm/thumb1.md: Disable set-constant splitter when
	TARGET_HAVE_MOVT.
	(thumb1_movsi_insn): Fix -mpure-code
	alternative.

2020-08-21  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-08-21  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/extend.texi: Update links to Arm docs.
	* doc/invoke.texi: Likewise.

2020-08-21  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-08-03  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/driver-aarch64.c (readline): Check return value fgets.

2020-08-21  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-07-17  Tamar Christina  <tamar.christina@arm.com>

	* doc/sourcebuild.texi (dg-set-compiler-env-var,
	dg-set-target-env-var): Document.

2020-08-21  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-07-17  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.

2020-08-21  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-07-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/driver-aarch64.c (host_detect_local_cpu):
	Add GCC_CPUINFO.

2020-08-21  Tamar Christina  <tamar.christina@arm.com>

	Backported from master:
	2020-07-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/driver-aarch64.c (INCLUDE_SET): New.
	(parse_field): Use std::string.
	(split_words, readline, find_field): New.
	(host_detect_local_cpu): Fix truncation issues.

2020-08-18  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/96536
	* config/i386/i386.md (restore_stack_nonlocal):
	Add missing compare RTX.

2020-08-07  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-08-06  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/96191
	* config/arm/arm.md (arm_stack_protect_test_insn): Zero out
	operand 2 after use.
	* config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise.

2020-08-07  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/96191
	* config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the
	CC register directly, instead of a GPR.  Replace the original GPR
	destination with an extra scratch register.  Zero out operand 3
	after use.
	(stack_protect_test): Update accordingly.

2020-08-07  Qian Jianhua  <qianjh@cn.fujitsu.com>

	Backported from master:
	2020-08-03  Qian jianhua  <qianjh@cn.fujitsu.com>

	* config/aarch64/aarch64-cores.def (a64fx): New core.
	* config/aarch64/aarch64-tune.md: Regenerated.
	* config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New.
	* doc/invoke.texi: Add a64fx to the list.

2020-08-07  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-04-16  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/94605
	* early-remat.c (early_remat::process_block): Handle insns that
	set multiple candidate registers.

2020-08-07  Richard Sandiford  <richard.sandiford@arm.com>

	Backported from master:
	2020-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/95114
	* tree.h (virtual_method_call_p): Add a default-false parameter
	that indicates whether the function is being called from dump
	routines.
	(obj_type_ref_class): Likewise.
	* tree.c (virtual_method_call_p): Likewise.
	* ipa-devirt.c (obj_type_ref_class): Likewise.  Lazily add ODR
	type information for the type when the parameter is false.
	* tree-pretty-print.c (dump_generic_node): Update calls to
	virtual_method_call_p and obj_type_ref_class accordingly.

2020-08-04  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
	New declaration.
	* config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
	stub registers class.
	(aarch64_class_max_nregs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_sls_shared_thunks): Global array to store stub labels.
	(aarch64_sls_emit_function_stub): New.
	(aarch64_create_blr_label): New.
	(aarch64_sls_emit_blr_function_thunks): New.
	(aarch64_sls_emit_shared_blr_thunks): New.
	(aarch64_asm_file_end): New.
	(aarch64_indirect_call_asm): New.
	(TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
	(TARGET_ASM_FUNCTION_EPILOGUE): Use
	aarch64_sls_emit_blr_function_thunks.
	* config/aarch64/aarch64.h (STB_REGNUM_P): New.
	(enum reg_class): Add STUB_REGS class.
	(machine_function): Introduce `call_via` array for
	function-local stub labels.
	* config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
	aarch64_indirect_call_asm to emit code when hardening BLR
	instructions.
	* config/aarch64/constraints.md (Ucr): New constraint
	representing registers for indirect calls.  Is GENERAL_REGS
	usually, and STUB_REGS when hardening BLR instruction against
	SLS.
	* config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
	is also a general register.

2020-08-04  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
	* config/aarch64/aarch64.c (aarch64_output_casesi): Emit
	speculation barrier after BR instruction if needs be.
	(aarch64_trampoline_init): Handle ptr_mode value & adjust size
	of code copied.
	(aarch64_sls_barrier): New.
	(aarch64_asm_trampoline_template): Add needed barriers.
	* config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
	(TARGET_SB): New.
	(TRAMPOLINE_SIZE): Account for barrier.
	* config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
	simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
	Emit barrier if needs be, also account for possible barrier using
	"sls_length" attribute.
	(sls_length): New attribute.
	(length): Determine default using any non-default sls_length
	value.

2020-08-04  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
	New.
	(aarch64_harden_sls_blr_p): New.
	* config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
	New.
	(aarch64_harden_sls_retbr_p): New.
	(aarch64_harden_sls_blr_p): New.
	(aarch64_validate_sls_mitigation): New.
	(aarch64_override_options): Parse options for SLS mitigation.
	* config/aarch64/aarch64.opt (-mharden-sls): New option.
	* doc/invoke.texi: Document new option.

2020-08-03  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2020-08-03  Jonathan Wakely  <jwakely@redhat.com>

	* doc/cpp.texi (Variadic Macros): Use the exact ... token in
	code examples.

2020-07-23  David Edelsohn  <dje.gcc@gmail.com>

	Backported from master:
	2020-03-06  David Edelsohn  <dje.gcc@gmail.com>

	PR target/94065
	* config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for
	cmodel=large.
	(TARGET_NO_FP_IN_TOC): Same.
	* config/rs6000/aix71.h: Same.
	* config/rs6000/aix72.h: Same.

2020-07-17  Romain Naour  <romain.naour@gmail.com>

	Backported from master:
	2020-07-17  Romain Naour  <romain.naour@gmail.com>

	* Makefile.in (SELFTEST_DEPS): Move before including language makefile
	fragments.

2020-07-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backported from master:
	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
	__ARM_FEATURE_PAC_DEFAULT support.

2020-07-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backported from master:
	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94891
	* doc/extend.texi: Update the text for  __builtin_return_address.

2020-07-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backported from master:
	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94891
	* config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
	Disable return address signing if __builtin_eh_return is used.

2020-07-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backported from master:
	2020-07-13  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94891
	PR target/94791
	* config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare.
	* config/aarch64/aarch64.c (aarch64_return_addr_rtx): New.
	(aarch64_return_addr): Use aarch64_return_addr_rtx.
	* config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.

2020-07-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	Backported from master:
	2020-06-16  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* config.in: Regenerate.
	* config/s390/s390.c (print_operand): Emit vector alignment hints
	for target z13, if AS accepts them.  For other targets the logic
	stays the same.
	* config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define
	macro.
	* configure: Regenerate.
	* configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13.

2020-07-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* config/rs6000/altivec.h (vec_vmsumudm): New define.
	* config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec.
	  (altivec_vmsumudm): New define_insn.
	* config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3
	  entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	  entries for ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum.
	* doc/extend.texi: Add document for vmsumudm behind vmsum.

2020-07-10  Bin Cheng  <bin.cheng@linux.alibaba.com>

	Backported from master:
	2020-07-09  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/95804
	* tree-loop-distribution.c (break_alias_scc_partitions): Force
	negative post order to reduction partition.

2020-07-10  Bin Cheng  <bin.cheng@linux.alibaba.com>

	Backported from master:
	2020-06-20  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/95638
	* tree-loop-distribution.c (pg_edge_callback_data): New field.
	(loop_distribution::break_alias_scc_partitions): Record and restore
	postorder information.  Fix memory leak.

2020-07-06  Will Schmidt  <will_schmidt@vnet.ibm.com>

	PR target/94954
	* config/rs6000/altivec.h (vec_pack_to_short_fp32): Update.
	* config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec.
	(convert_4f32_8f16): New define_expand
	* config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define
	and overload.
	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New
	overloaded builtin entry.
	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec.
	(vsx_xvcvsphp): New define_insn.

2020-06-30  Alex Coplan  <alex.coplan@arm.com>

	Backported from master:
	2020-05-18  Alex Coplan  <alex.coplan@arm.com>

	* config/arm/arm.c (output_move_double): Fix codegen when loading into
	a register pair with an odd base register.

2020-06-25  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2020-06-25  H.J. Lu  <hjl.tools@gmail.com>

	PR target/95874
	* config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB.
	(PTA_ICELAKE_SERVER): Add PTA_CLWB.

2020-06-17  Thomas Schwinge  <thomas@codesourcery.com>

	Backported from master:
	2020-06-17  Thomas Schwinge  <thomas@codesourcery.com>

	* hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
	NULL_TREE' check earlier.

2020-06-12  Martin Liska  <mliska@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/95634
	* asan.c (asan_emit_stack_protection): Fix emission for ilp32
	by using Pmode instead of ptr_mode.

2020-06-12  Martin Liska  <mliska@suse.cz>

	PR sanitizer/94910
	* asan.c (asan_emit_stack_protection): Emit
	also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release
	a stack frame.

2020-06-06  Carl Love  <cel@us.ibm.com>

	PR target/94833
	* config/rs6000/vsx.md (define_expand): Fix instruction generation for
	first_match_index_<mode>.

2020-06-05  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake
	processor families.

2020-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (zeus): Define.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options): Document zeus -mcpu option.

2020-05-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and
	__ILP32__ for 32-bit targets.

2020-05-29  Alex Coplan  <alex.coplan@arm.com>

	PR target/94591
	* config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
	identity permutation.

2020-05-29  Dong JianQiang  <dongjianqiang2@huawei.com>

	PR gcov-profile/95332
	* gcov-io.c (gcov_var::endian): Move field.
	(from_file): Add IN_GCOV_TOOL check.
	* gcov-io.h (gcov_magic): Ditto.

2020-05-26  Alexandre Oliva  <oliva@adacore.com>

	PR target/94812
	* config/rs6000/rs6000.md (rs6000_mffsl): Copy result to
	output operand in emulation.  Don't overwrite pseudos.

2020-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/95258
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	AVX512VPOPCNTDQ.

2020-05-22  Bin Cheng  <bin.cheng@linux.alibaba.com>

	Backport from master
	PR tree-optimization/94969
	2020-05-13  Bin Cheng  <bin.cheng@linux.alibaba.com>

	* tree-data-ref.c (constant_access_functions): Rename to...
	(invariant_access_functions): ...this.  Add parameter.  Check for
	invariant access function, rather than constant.
	(build_classic_dist_vector): Call above function.
	* tree-loop-distribution.c (pg_add_dependence_edges): Add comment.

2020-05-21  Martin Liska  <mliska@suse.cz>

	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
	Use MASK_OUTLINE_ATOMICS for x_target_flags.

2020-05-21  Martin Liska  <mliska@suse.cz>

	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
	Handle OPT_moutline_atomics.
	* config/aarch64/aarch64.c: Add outline-atomics to
	aarch64_attributes.
	* doc/extend.texi: Document the newly added target attribute.

2020-05-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline.
	2020-04-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94748
	* config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove
	the check for NOTE_INSN_DELETED_LABEL.

2020-05-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline.
	2020-04-23  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94697
	* config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap
	bti c and bti j handling.

2020-05-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline.
	2020-04-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/94515
	* dwarf2cfi.c (struct GTY): Add ra_mangled.
	(cfi_row_equal_p): Check ra_mangled.
	(dwarf2out_frame_debug_cfa_window_save): Remove the argument,
	this only handles the sparc logic now.
	(dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for
	the aarch64 specific logic.
	(dwarf2out_frame_debug): Update to use the new subroutines.
	(change_cfi_row): Check ra_mangled.

2020-05-12  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2020-04-08  Clement Chigot  <clement.chigot@atos.net>

        * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128.
        * config/rs6000/aix71.h (LIB_SPEC): Likewise.
        * config/rs6000/aix72.h (LIB_SPEC): Likewise.

2020-05-12  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline
	2020-05-04  Clement Chigot  <clement.chigot@atos.net>
		    David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_init_builtins): Override explicit
	for fmodl, frexpl, ldexpl and modfl builtins.

2020-05-11  Xiong Hu Luo  <luoxhu@linux.ibm.com>

	Backport from master.
	2020-04-27  Xiong Hu Luo  <luoxhu@linux.ibm.com>

	PR target/91518
	* config/rs6000/rs6000.c (frame_pointer_needed_indeed):
	New variable.
	(rs6000_emit_prologue_components):
	Check with frame_pointer_needed_indeed.
	(rs6000_emit_epilogue_components): Likewise.
	(rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Set frame_pointer_needed_indeed.

2020-05-07 Uroš Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for the first assignments to
	fenv_var and new_fenv_var.

2020-05-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2020-04-30  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/constraints.md ("j>f", "jb4"): New constraints.
	* config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix
	macro definitions.
	* config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a
	separate expander.
	("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst.
	Change constraint for vlrl/vstrl to jb4.

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
	("popcountv2di2_vx"): Use simplify_gen_subreg.

2020-05-04  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2020-04-20  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/94613
	* config/s390/s390-builtin-types.def: Add 3 new function modes.
	* config/s390/s390-builtins.def: Add mode dependent low-level
	builtin and map the overloaded builtins to these.
	* config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ...
	("vsel<V_HW"): ... this and rewrite the pattern with bitops.

2020-05-04  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/93674
	Backport from master
	2020-04-09  Bin Cheng  <bin.cheng@linux.alibaba.com>

	* tree-ssa-loop-ivopts.c (langhooks.h): New include.
	(add_iv_candidate_for_use): For iv_use of non integer or pointer type,
	or non-mode precision type, add candidate in unsigned type with the
	same precision.

2020-05-01  Alan Modra	 <amodra@gmail.com>

	PR target/94145
	Backport from master
	2020-03-27  Alan Modra	 <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile
	for PLT16_LO.
	* config/rs6000/rs6000.md (UNSPEC_PLT16_LO): Remove.
	(UNSPECV_PLT16_LO): Define.
	(pltseq_plt16_lo_): Use unspec_volatile.

2020-04-30  Carl Love  <cel@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment.

2020-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from master
	2020-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/93654
	* config/i386/i386.c (ix86_set_indirect_branch_type): Allow
	-fcf-protection with -mindirect-branch=thunk-extern and
	-mfunction-return=thunk-extern.
	* doc/invoke.texi: Update notes for -fcf-protection=branch with
	-mindirect-branch=thunk-extern and -mindirect-return=thunk-extern.

2020-04-21  Martin Jambor  <mjambor@suse.cz>

	Backport from master
	2020-04-09  Martin Jambor  <mjambor@suse.cz>
	            Richard Biener  <rguenther@suse.de>

	PR tree-optimization/94482
	* tree-sra.c (create_access_replacement): Dump new replacement with
	TDF_UID.
	(sra_modify_expr): Fix handling of cases when the original EXPR writes
	to only part of the replacement.
	* tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify
	the first operand of combinations into REAL/IMAGPART_EXPR and
	BIT_FIELD_REF.

2020-04-20  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from master
	2020-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/94556
	* config/i386/i386.c (ix86_expand_epilogue): Restore the frame
	pointer in word_mode for eh_return epilogues.

2020-04-20  Andrea Corallo  <andrea.corallo@arm.com>

	Backport from mainline.
	2020-04-15  Andrea Corallo  <andrea.corallo@arm.com>

	PR target/94530
	* config/aarch64/falkor-tag-collision-avoidance.c
	(valid_src_p): Check for aarch64_address_info type before
	accessing base field.

2020-04-20  Tamar Christina  <tamar.christina@arm.com>

	Backport from mainline.
	2020-04-03  Tamar Christina  <tamar.christina@arm.com>

	PR target/94396
	* common/config/aarch64/aarch64-common.c
	(aarch64_get_extension_string_for_isa_flags): Handle default flags.

2020-04-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2020-04-17  Martin Liska  <mliska@suse.cz>
		    Jonathan Yong <10walls@gmail.com>

	PR gcov-profile/94570
	* coverage.c (coverage_init): Use separator properly.

2020-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from master
	2020-04-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/94417
	* config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR at
	function entry if function will be called indirectly.

2020-04-17  Kewen Lin  <linkw@gcc.gnu.org>

	Backport from mainline
	2020-04-03  Kewen Lin  <linkw@gcc.gnu.org>

	PR tree-optimization/94443
	* tree-vect-loop.c (vectorizable_live_operation): Use
	gsi_insert_seq_before to replace gsi_insert_before.

2020-04-17  Kewen Lin  <linkw@gcc.gnu.org>

	Backport from mainline
	2020-04-01  Kewen Lin  <linkw@gcc.gnu.org>

	PR tree-optimization/94043
	* tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed
	phi for vec_lhs and use it for lane extraction.

2020-04-16  Michael Meissner  <meissner@linux.ibm.com>

	PR target/94557
	* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Fix
	regression caused by PR target/93932 backport.  Mask variable
	vector extract index so it does not go beyond the vector when
	extracting a vector element from memory.

2020-04-16  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-04-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/94479
	* gimplify.c (gimplify_addr_expr): Also consider generated
	MEM_REFs.

2020-04-15  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline.
	2020-04-14  Max Filippov  <jcmvbkbc@gmail.com>

	PR target/94584
	* config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2)
	(extendhisi2_internal): Add %v1 before the load instructions.

2020-04-15  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline.
	2019-09-26  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
	loop instruction into new basic block before the loop when basic
	block that precedes the loop is empty.

2020-04-15  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/94603
	* config/i386/i386-builtin.def (__builtin_ia32_movq128):
	Require OPTION_MASK_ISA_SSE2.

2020-04-11  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/94494
	* config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2
	condition for V4SI, V8HI and V16QI modes.

2020-04-10  Claudiu Zissulescu  <claziss@synopsys.com>

	Backport from trunk
	2020-0-31  Vineet Gupta <vgupta@synopsys.com>
	* config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700.

2020-04-09  Michael Meissner  <meissner@linux.ibm.com>

	Back port from trunk
	2020-02-26  Michael Meissner  <meissner@linux.ibm.com>

	PR target/93932
	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
	Split the insn into two parts.  This insn only does variable
	extract from a register.
	(vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do
	variable extract from memory.
	(vsx_extract_v4sf_var): Split the insn into two parts.  This insn
	only does variable extract from a register.
	(vsx_extract_v4sf_var_load): New insn, do variable extract from
	memory.
	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn
	into two parts.  This insn only does variable extract from a
	register.
	(vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn,
	do variable extract from memory.

2020-04-07  Will Schmidt  <will_schmidt@vnet.ibm.com>

	Backport from mainline.
	2020-03-23  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000-call.c altivec_init_builtins(): Remove
	code to skip defining builtins based on builtin_mask.

2020-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/94509
	* config/i386/i386.c (expand_vec_perm_pshufb): Fix the check
	for inter-lane permutation for 64-byte modes.

	PR target/94488
	* config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3,
	ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT.
	Assume it is a REG after that instead of testing it and doing FAIL
	otherwise.  Formatting fix.

	Backported from mainline
	2020-04-04  Hannes Domani  <ssbssa@yahoo.de>
		    Jakub Jelinek  <jakub@redhat.com>

	PR debug/94459
	* dwarf2out.c (gen_subprogram_die): Look through references, pointers,
	arrays, pointer-to-members, function types and qualifiers when
	checking if in-class DIE had an 'auto' or 'decltype(auto)' return type
	to emit type again on definition.

	2020-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/94460
	* config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3,
	avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do
	second half of first lane from first lane of second operand and
	first half of second lane from second lane of first operand.

	2020-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/94423
	* tree-object-size.c (pass_object_sizes::execute): Don't call
	replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead
	call replace_call_with_value.

	2020-03-31  Marc Glisse  <marc.glisse@inria.fr>
		    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/94412
	* fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use
	ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P.

	2020-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/93069
	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use
	<store_mask_constraint> instead of m in output operand constraint.
	(vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of
	%{%3%}.

	2020-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94329
	* tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt
	on the last stmt in a bb, make sure gsi_prev isn't done immediately
	after gsi_last_bb.

	2020-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/94303
	* varasm.c (output_constructor_array_range): If local->index
	RANGE_EXPR doesn't start at the current location in the constructor,
	skip needed number of bytes using assemble_zeros or assert we don't
	go backwards.

	2020-03-25  Richard Biener  <rguenther@suse.de>
		    Jakub Jelinek  <jakub@redhat.com>

	PR debug/94283
	* tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards.

	2020-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/94283
	* tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set
	GF_PLF_2, but don't add them to worklist.  Don't add an assigment to
	worklist or set GF_PLF_2 just because it is used in a debug stmt in
	another bb.  Formatting improvements.

	PR debug/94277
	* cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and
	non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC
	regardless of whether TREE_NO_WARNING is set on it or whether
	warn_unused_function is true or not.

	2020-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94211
	* tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq
	instead of estimate_num_insns for bb_seq (middle_bb).  Rename
	emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust
	all uses.

2020-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/94518
	2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
	memmodel index.

2020-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/94500
	* config/i386/i386.c (emit_reduc_half): For V{64QI,32HI}mode
	handle i < 64 using avx512bw_lshrv4ti3.  Formatting fixes.

2020-04-02  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/93435
	* params.def (PARAM_SRA_MAX_PROPAGATIONS): New parameter.
	* tree-sra.c (propagation_budget): New variable.
	(budget_for_propagation_access): New function.
	(propagate_subaccesses_across_link): Use it.
	(propagate_all_subaccesses): Set up and destroy propagation_budget.
	* doc/invoke.texi (sra-max-propagations): New.

2020-04-03  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2020-04-03  Martin Liska  <mliska@suse.cz>

	PR ipa/94445
	* ipa-icf-gimple.c (func_checker::compare_gimple_call):
	  Compare type attributes for gimple_call_fntypes.

2020-04-02  Fritz Reese  <foreese@gcc.gnu.org>

	Backport from master.
	2020-04-02  Fritz Reese  <foreese@gcc.gnu.org>

	PR fortran/85982
	* fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into
	attribute checking used by TYPE.

2020-04-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-03-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/94103
	* tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
	punning when the mode precision is not sufficient.

	2020-03-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/94206
	* gimple-fold.c (gimple_fold_builtin_memset): Avoid using
	partial int modes or not mode-precision integer types for
	the store.

2020-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/94435
	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For
	y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode.

2020-04-01  Zackery Spytz  <zspytz@gmail.com>

	* doc/extend.texi: Fix a typo in the documentation of the
	copy function attribute.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2020-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR target/94368
	* config/aarch64/constraints.md (Uph): New constraint.
	* config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.
	(@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's
	constraint.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2020-01-17  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/92692
	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
	Use epilogue_completed rather than reload_completed.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.opt (-moutline-atomics): New.
	* config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
	(aarch64_ool_cas_names, aarch64_ool_swp_names): New.
	(aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
	(aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
	(aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
	* config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
	(atomic_<atomic_op><ALLI>): Likewise.
	(atomic_fetch_<atomic_op><ALLI>): Likewise.
	(atomic_<atomic_op>_fetch<ALLI>): Likewise.
	* doc/invoke.texi: Document -moutline-atomics.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
	strong_zero_p for aarch64_track_speculation; unify some code paths;
	use aarch64_gen_compare_reg instead of open-coding.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
	for NE comparison of TImode values.
	(aarch64_emit_load_exclusive): Add support for TImode.
	(aarch64_emit_store_exclusive): Likewise.
	(aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
	* config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
	Change iterator from ALLI to ALLI_TI.
	(@atomic_compare_and_swap<JUST_TI>): New.
	(@atomic_compare_and_swap<JUST_TI>_lse): New.
	(aarch64_load_exclusive_pair): New.
	(aarch64_store_exclusive_pair): New.
	* config/aarch64/iterators.md (JUST_TI): New.

2020-04-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-19  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
	registers with %R.

2020-03-31  Carl Love  <cel@us.ibm.com>

	Backport of:
	  commit e97929e20b2f52e6cfc046c1302324d1b24d95e3
	  Author: Carl Love <carll@us.ibm.com>
	  Date:   Wed Mar 25 18:33:37 2020 -0500

	PR target/93819
        * gcc/config/rs6000/altivec.h:
        Fixed swapped arguments for vec_rlnm define.

2020-03-31  Carl Love  <cel@us.ibm.com>

	Backport from mainline
	  commit 68dd57808f7c0147acdb5ca72c88ff655afcb0ce
	  Author: Carl Love <carll@us.ibm.com>
	  Date:   Fri Mar 20 18:15:05 2020 -0500
	with ChangeLog typo fixed.

	PR target/87583
	* gcc/config/rs6000/rs6000.c (rs6000_option_override_internal):
	Add check for TARGET_FPRND for Power 7 or newer.

2020-03-24  John David Anglin  <danglin@gcc.gnu.org>

	PR lto/94249
	* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__.

2020-03-24  Tamar Christina  <tamar.christina@arm.com>

	PR target/94052
	* config/aarch64/aarch64-simd.md (mov<mode>): Remove paradoxical
	subregs of VSTRUCT modes.

2020-03-24  Bin Cheng  <bin.cheng@linux.alibaba.com>

	Backport from mainline
	2020-03-16  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/94125
	* tree-loop-distribution.c
	(loop_distribution::break_alias_scc_partitions): Update post order
	number for merged scc.

2020-03-23  Will Schmidt  <will_schmidt@vnet.ibm.com>

	Backport from mainline
	2020-03-10  Will Schmidt  <will_schmidt@vnet.ibm.com>

	PR target/90763
	    * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	    Add clause to handle P9V_BUILTIN_VEC_LXVL with const arguments.

2020-03-23  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from master.
	2020-03-22  Iain Sandoe  <iain@sandoe.co.uk>

	* config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove
	references to Darwin.
	* config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this
	unconditionally and comment on why.

2020-03-19  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2020-01-13  Jonathan Wakely  <jwakely@redhat.com>

	PR driver/92757
	* doc/invoke.texi (Warning Options): Add caveat about some warnings
	depending on optimization settings.

2020-03-19  Jiufu Guo  <guojiufu@linux.ibm.com>

	PR target/93709
	* gcc/config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check
	NAN and SIGNED_ZEROR for smax/smin.

2020-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/94189
	* builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would
	emit a warning if it was enabled and don't depend on TREE_NO_WARNING
	for code-generation.

	Backported from mainline
	2020-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR debug/94167
	* tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands
	DEBUG_STMTs.

	2020-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93566
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle {,in_,task_}reduction clauses
	with C/C++ array sections.

	2020-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/94121
	* config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
	instead of GEN_INT.

	2020-03-12  Jakub Jelinek  <jakub@redhat.com>

	* doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change
	ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL
	and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL.
	* doc/tm.texi: Regenerated.

	PR tree-optimization/94130
	* tree-ssa-dse.c: Include gimplify.h.
	(increment_start_addr): If stmt has lhs, drop the lhs from call and
	set it after the call to the original value of the first argument.
	Formatting fixes.
	(decrement_count): Formatting fix.

	2020-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/94134
	* config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section
	at the start to switch to data section.  Don't print extra newline if
	.globl directive has not been emitted.

	PR target/94121
	* config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi
	instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT.

	PR middle-end/94111
	* dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
	is rvc_normal, otherwise use real_to_decimal to print the number to
	string.

	PR tree-optimization/94114
	* tree-loop-distribution.c (generate_memset_builtin): Call
	rewrite_to_non_trapping_overflow even on mem.
	(generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even
	on dest and src.

	2020-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93399
	* tree-pretty-print.h (pretty_print_string): Declare.
	* tree-pretty-print.c (pretty_print_string): Remove forward
	declaration, no longer static.  Change nbytes parameter type
	from unsigned to size_t.
	* print-rtl.c (print_value) <case CONST_STRING>: Use
	pretty_print_string and for shrink way too long strings.

	2020-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR debug/93888
	* tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag.

	PR tree-optimization/94001
	* tree-tailcall.c (process_assignment): Before comparing op1 to
	*ass_var, verify *ass_var is non-NULL.

2020-03-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/94163
	* tree-ssa-pre.c (create_expression_by_pieces): Check
	whether alignment would be zero.

2020-03-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/94119
	* resource.h (clear_hashed_info_until_next_barrier): Declare.
	* resource.c (clear_hashed_info_until_next_barrier): New function.
	* reorg.c (add_to_delay_list): Fix formatting.
	(relax_delay_slots): Call clear_hashed_info_until_next_barrier on
	the next instruction after removing a BARRIER.

2020-03-12  Bill Schmidt  <wschmidt@linux.ibm.com>

	Backport from master
	2020-03-02  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/87560
	* rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
	* rs6000.c (rs6000_disable_incompatible_switches): Add table entry
	for OPTION_MASK_ALTIVEC.

2020-03-12  Richard Earnshaw  <rearnsha@arm.com>

	Backport from master
	2020-02-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/91913
	* config/arm/arm.md (movsi_compare0): Allow SP as a source register
	in Thumb state and also as a destination in Arm state.  Add T16
	variants.

2020-03-12  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2020-03-09  Martin Liska  <mliska@suse.cz>

	PR target/93800
	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Remove set of str_align_loops and str_align_jumps as these
	should be set in previous 2 conditions in the function.

2020-03-12  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 9.3.1.

2020-03-12  Release Manager

	* GCC 9.3.0 released.

2020-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/94046
	* config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of
	SRC and MASK arguments to __m128 from __m128d.
	(_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256
	from __m256d.
	(_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128
	from __m128d.
	* config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C
	argument to __m128i from __m128d.
	(_mm256_permute2_pd): Fix first cast of C argument to __m256i from
	__m256d.
	(_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128.
	(_mm256_permute2_ps): Fix first cast of C argument to __m256i from
	__m256.

2020-03-05  Richard Earnshaw  <rearnsha@arm.com>

	PR target/90311
	Backport from master
	2019-07-18  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/predicates.md (arm_borrow_operation): New predicate.
	* config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
	(arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
	(subdi_zesidi_zesidi): Likewise.
	(negdi2_compare, negdi2_insn): Likewise.
	(negdi_extensidi): Likewise.
	(negdi_zero_extendsidi): Likewise.
	(arm_cmpdi_insn): Likewise.
	(subsi3_carryin): Use arm_borrow_operation.
	(subsi3_carryin_const): Likewise.
	(subsi3_carryin_const0): Likewise.
	(subsi3_carryin_compare): Likewise.
	(subsi3_carryin_compare_const): Likewise.
	(subsi3_carryin_compare_const0): Likewise.
	(subsi3_carryin_shift): Likewise.
	(rsbsi3_carryin_shift): Likewise.
	(negsi2_carryin_compare): Likewise.

2020-03-04  Marek Polacek  <polacek@redhat.com>

	Backport from mainline
	2020-01-26  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/93436
	* sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
	null DECL_NAME.

2020-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/94002
	* explow.c (plus_constant): Punt if cst has VOIDmode and
	get_pool_mode is different from mode.

2020-03-02  Jason Merrill  <jason@redhat.com>

	PR c++/92601
	* tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING
	of complete types.

2020-02-29  Peter Bergner <bergner@linux.ibm.com>

	Revert
	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>

	PR target/93658
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
	vector modes.

	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>

	PR target/93568
	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
	to use "mem".

	Backport from master
	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (get_vector_offset): New helper function
	to calculate the offset in memory from the start of a vector of a
	particular element.  Add code to keep the element number in
	bounds if the element number is variable.
	(rs6000_adjust_vec_address): Move calculation of offset of the
	vector element to get_vector_offset.
	(rs6000_split_vec_extract_var): Do not do the initial AND of
	element here, move the code to get_vector_offset.

	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
	Use 'Q' for doing vector extract from memory.
	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
	memory.
	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
	doing vector extract from memory.
	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
	extract from memory.

2020-02-28  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2020-02-28  Martin Liska  <mliska@suse.cz>

	PR other/93965
	* configure.ac: Improve detection of ld_date by requiring
	either two dashes or none.
	* configure: Regenerate.

2020-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR c/93949
	* gimplify.c (gimplify_init_constructor): Don't promote readonly
	DECL_REGISTER variables to TREE_STATIC.

2020-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/93945
	* tree-ssa-sccvn.c (vn_reference_lookup_3): For memset with non-zero
	second operand, require ref->size to be a multiple of BITS_PER_UNIT.

2020-02-26  Carl Love  <cel@us.ibm.com>

	PR target/91276
	* doc/extend.texi (PowerPC AltiVec Built-in Functions  Available on ISA
	3.0): The builtin-function name __builtin_crypto_vpmsumb is only for
	the vector unsigned short arguments.  It is also listed as the name of
	the built-in for arguments vector unsigned short,
	vector unsigned int and vector unsigned long long built-ins.  The
	name of the builtins for these arguments should be:
	__builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and
	__builtin_crypto_vpmsumd respectively.

2020-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/92003
	* symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has
	non-zero address even if weak and not yet defined.

2020-02-26  Jiufu Guo  <guojiufu@linux.ibm.com>

	PR target/93047
	* config/rs6000/rs6000.md (untyped_call): Add emit_clobber.

2020-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/93820
	* gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE
	argument to ALL_INTEGER_CST_P boolean.
	(imm_store_chain_info::try_coalesce_bswap): Adjust caller.
	(imm_store_chain_info::coalesce_immediate_stores): Likewise.  Handle
	adjacent INTEGER_CST store into merged_store->only_constants like
	overlapping one.

2020-02-25  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline
	2020-02-25  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.md (required_for_purecode): New attribute.
	(enabled): Handle required_for_purecode.
	* config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to
	work with -mpure-code.

2020-02-25  Christophe Lyon  <christophe.lyon@linaro.org>

	Backport from mainline
	2019-12-17  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype.
	* config/arm/arm.c (arm_option_check_internal): Remove restriction
	on MOVT for -mpure-code.
	(thumb1_gen_const_int): New function.
	(thumb1_legitimate_address_p): Support -mpure-code.
	(thumb1_rtx_costs): Likewise.
	(thumb1_size_rtx_costs): Likewise.
	(arm_thumb1_mi_thunk): Likewise.
	* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise.
	* config/arm/thumb1.md (thumb1_movsi_symbol_ref): New.
	(*thumb1_movhf): Support -mpure-code.
	* doc/invoke.texi (-mpure-code): Remove restriction on MOVT.

2020-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/93908
	* combine.c (find_split_point): For store into ZERO_EXTRACT, and src
	with mask.

2019-02-25  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.

2020-02-25  Roman Zhuykov  <zhroma@ispras.ru>

	Backport from master
	2020-02-24  Roman Zhuykov  <zhroma@ispras.ru>

	* doc/install.texi (--enable-checking): Properly document current
	behavior.
	(--enable-stage1-checking): Minor clarification about bootstrap.

2020-02-24  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2020-02-19  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/93767
	* tree-vect-data-refs.c (vect_compile_time_alias): Remove the
	access-size bias from the offset calculations for negative strides.

2020-02-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* collect2.c (tool_cleanup): Avoid calling not signal-safe
	functions.
	(maybe_run_lto_and_relink): Avoid possible signal handler
	access to unintialzed memory (lto_o_files).

2020-02-23  Peter Bergner <bergner@linux.ibm.com>

	Backport from master
	2020-02-20  Peter Bergner  <bergner@linux.ibm.com>

	PR target/93658
	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
	vector modes.

2020-02-23  Peter Bergner <bergner@linux.ibm.com>

	Backport from master
	2020-02-05  Michael Meissner  <meissner@linux.ibm.com>

	PR target/93568
	* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
	to use "mem".

	Backport from master
	2020-02-03  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (get_vector_offset): New helper function
	to calculate the offset in memory from the start of a vector of a
	particular element.  Add code to keep the element number in
	bounds if the element number is variable.
	(rs6000_adjust_vec_address): Move calculation of offset of the
	vector element to get_vector_offset.
	(rs6000_split_vec_extract_var): Do not do the initial AND of
	element here, move the code to get_vector_offset.

2020-02-23  Peter Bergner <bergner@linux.ibm.com>

	Backport from master
	2020-01-06  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
	Use 'Q' for doing vector extract from memory.
	(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
	memory.
	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
	doing vector extract from memory.
	(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
	extract from memory.

2020-02-21  John David Anglin  <danglin@gcc.gnu.org>

	* gcc/config/pa/pa.c (pa_function_value): Fix check for word and
	double-word size when handling aggregate return values.
	* gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
	that homogeneous SFmode and DFmode aggregates are passed and returned
	in general registers.

2020-02-20  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/93828
	* config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
	to destination operand for shufps alternative.
	(*vec_extractv2si_1): Ditto.

2020-02-20  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from master
	2020-02-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/93656
	* config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
	the target function entry.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-12-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/92768
	* tree-core.h (OEP_BITWISE): New flag.
	* fold-const.c (operand_compare::operand_equal_p): Handle it.
	* tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/90313
	* tree-tailcall.c (find_tail_calls): Reject calls that might
	read from an escaped RESULT_DECL.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/93434
	* tree-predcom.c (split_data_refs_to_components): Record which
	components have had aliasing loads removed.  Prevent store-store
	commoning for all such components.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-11-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/92710
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Reject
	vector mask arguments.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/92420
	* tree-vect-stmts.c (get_negative_load_store_type): Move further
	up file.
	(get_group_load_store_type): Use it for reversed SLP accesses.

2020-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/90724
	* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
	in reg if it fails aarch64_plus_operand predicate.

2020-02-14 Hongtao Liu  <hongtao.liu@intel.com>

	PR target/93724
	* config/i386/avx512vbmi2intrin.h
	(_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
	_mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
	_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
	_m512_shrdi_epi64, _m512_mask_shrdi_epi64,
	_m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
	_mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
	_mm512_shldi_epi32, _mm512_mask_shldi_epi32,
	_mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
	_mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
	of lacking a closing parenthesis.
	* config/i386/avx512vbmi2vlintrin.h
	(_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
	_mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
	_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
	_m256_shrdi_epi64, _m256_mask_shrdi_epi64,
	_m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
	_mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
	_mm256_shldi_epi32, _mm256_mask_shldi_epi32,
	_mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
	_mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
	_mm_shrdi_epi16, _mm_mask_shrdi_epi16,
	_mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
	_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
	_mm_shrdi_epi64, _mm_mask_shrdi_epi64,
	_m_maskz_shrdi_epi64, _mm_shldi_epi16,
	_mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
	_mm_shldi_epi32, _mm_mask_shldi_epi32,
	_mm_maskz_shldi_epi32, _mm_shldi_epi64,
	_mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.

2020-02-16  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/93743
	* config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
	(atan2<mode>3): Update operand order in the call to gen_atan2xf3.

2020-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/93744
	* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For
	GENERIC, make sure @2 in the first and @1 in the other patterns has no
	side-effects.

2020-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/93704
	* config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
	conjunction with TARGET_GNU_TLS in early return.

2020-02-14  Alexander Monakov  <amonakov@ispras.ru>

	Backport from mainline
	PR rtl-optimization/88879
	* sel-sched.c (sel_target_adjust_priority): Remove assert.

2020-02-14  Richard Biener  <rguenther@suse.de>

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

	PR middle-end/90648
	* genmatch.c (dt_node::gen_kids_1): Emit number of argument
	checks before matching calls.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-01-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93381
	* tree-ssa-structalias.c (find_func_aliases): Assume offsetting
	throughout, handle all conversions the same.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/93439
	* tree-parloops.c (create_loop_fn): Move clique bookkeeping...
	* tree-cfg.c (move_sese_region_to_fn): ... here.
	(verify_types_in_gimple_reference): Verify used cliques are
	tracked.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-01-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/93054
	* gimplify.c (gimplify_expr): Deal with NOP definitions.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2020-01-20  Richard Biener  <rguenther@suse.de>

	PR debug/92763
	* dwarf2out.c (prune_unused_types): Unconditionally mark
	called function DIEs.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-11-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92704
	* tree-if-conv.c (combine_blocks): Deal with virtual PHIs
	in loops performing only loads.

2020-02-14  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-11-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/92674
	* tree-inline.c (expand_call_inline): Delay purging EH/abnormal
	edges and instead record blocks in bitmap.
	(gimple_expand_calls_inline): Adjust.
	(fold_marked_statements): Delay EH cleanup until all folding is
	done.
	(optimize_inline_calls): Do EH/abnormal cleanup for calls after
	inlining finished.

2020-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/93696
	* config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
	_mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
	_mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
	_mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
	pass __A to the builtin followed by __W instead of __A followed by
	__B.
	* config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
	_mm512_mask_popcnt_epi64): Likewise.
	* config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
	_mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
	_mm256_mask_popcnt_epi64): Likewise.

	PR target/93673
	* config/i386/sse.md (k<code><mode>): Drop mode from last operand and
	use const_0_to_255_operand predicate instead of immediate_operand.
	(avx512dq_fpclass<mode><mask_scalar_merge_name>,
	avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
	vgf2p8affineinvqb_<mode><mask_name>,
	vgf2p8affineqb_<mode><mask_name>): Drop mode from
	const_0_to_255_operand predicated operands.

	Backported from mainline
	2020-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/93670
	* config/i386/sse.md (VI48F_256_DQ): New mode iterator.
	(avx512vl_vextractf128<mode>): Use it instead of VI48F_256.  Remove
	TARGET_AVX512DQ from condition.
	(vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
	instead of <mask_mode512bit_condition> in condition.  If
	TARGET_AVX512DQ is false, emit vextract*64x4 instead of
	vextract*32x8.
	(vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
	from condition.

	2020-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/93637
	* config/i386/sse.md (VI_256_AVX2): New mode iterator.
	(vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
	Change condition from TARGET_AVX2 to TARGET_AVX.

	2020-02-08  Uroš Bizjak  <ubizjak@gmail.com>
		    Jakub Jelinek  <jakub@redhat.com>

	PR target/65782
	* config/i386/i386.h (CALL_USED_REGISTERS): Make
	xmm16-xmm31 call-used even in 64-bit ms-abi.

	2020-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/93515
	* omp-low.c (use_pointer_for_field): For nested constructs, also
	look for map clauses on target construct.
	(scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
	taskreg_nesting_level.

	PR libgomp/93515
	* gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
	shared clause, call omp_notice_variable on outer context if any.

	2020-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93555
	* omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
	simd_clone_create failed when i == 0, adjust clone->nargs by
	clone->inbranch.

	2020-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93505
	* combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
	rotate counts.

	2020-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/93418
	* config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
	-1 or is_vshift is true, use new_vector with number of elts npatterns
	rather than new_unary_operation.

	2020-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/93402
	* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
	USE insns.

2020-02-11  Tamar Christina  <tamar.christina@arm.com>

	Backport from mainline
	2020-01-31  Tamar Christina  <tamar.christina@arm.com>

	PR rtl-optimization/91838
	* simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
	to truncate if allowed or reject combination.

2020-02-07  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline
	2020-02-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/85667
	* config/i386/i386.c (function_arg_ms_64): Add a type argument.
	Don't return aggregates with only SFmode and DFmode in SSE
	register.
	(ix86_function_arg): Pass type to function_arg_ms_64.

2020-01-30  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
	without a DECL in .data.rel.ro.local.

2020-01-30  Kito Cheng  <kito.cheng@sifive.com>

	Backport from mainline
	2020-01-21  Kito Cheng  <kito.cheng@sifive.com>

	PR target/93304
	* config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
	* config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
	* config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.

2020-01-29  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline
	2020-01-21  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/92424
	* config/aarch64/aarch64.c (aarch64_declare_function_name): Set
	cfun->machine->label_is_assembled.
	(aarch64_print_patchable_function_entry): New.
	(TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
	* config/aarch64/aarch64.h (struct machine_function): New field,
	label_is_assembled.

2020-01-27  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/92692
	* config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
	Add assert to ensure prolog has been emitted.
	(aarch64_split_atomic_op): Likewise.
	* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
	Use epilogue_completed rather than reload_completed.
	(aarch64_atomic_exchange<mode>): Likewise.
	(aarch64_atomic_<atomic_optab><mode>): Likewise.
	(atomic_nand<mode>): Likewise.
	(aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
	(atomic_fetch_nand<mode>): Likewise.
	(aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
	(atomic_nand_fetch<mode>): Likewise.

2020-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/93335
	* config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
	gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
	predicate, not whenever it is CONST_INT.  Otherwise, force_reg it.
	Call force_reg on high_in2 unconditionally.

	PR target/91298
	* output.h (assemble_name_resolve): Declare.
	* varasm.c (assemble_name_resolve): New function.
	(assemble_name): Use it.
	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.

	Backported from mainline
	2020-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/93333
	* config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
	the last two operands are CONST_INT_P before using them as such.

	PR target/93073
	* config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
	compare_mode other than SFmode or DFmode.

	2020-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/93009
	* config/i386/sse.md
	(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
	*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
	*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
	*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
	just a single alternative instead of two, make operands 1 and 2
	commutative.

	2020-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/93202
	* config/riscv/riscv.c (riscv_print_operand_reloc): Use
	output_operand_lossage instead of gcc_unreachable.
	* doc/md.texi (riscv f constraint): Fix typo.

	2020-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/93088
	* loop-iv.c (find_single_def_src): Punt after looking through
	128 reg copies for regs with single definitions.  Move definitions
	to first uses.

	2020-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/93087
	* predict.c (compute_function_frequency): Don't call
	warn_function_cold on functions that already have cold attribute.

2020-01-20  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	PR middle-end/93246
	* alias.c (record_component_aliases): Take superset to record
	into, recurse for alias-set zero fields.
	(record_component_aliases): New oveerload wrapping around the above.

2020-01-19  Eric S. Raymond <esr@thyrsus.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	Backport from mainline:

	2020-01-19  Eric S. Raymond <esr@thyrsus.com>

	* doc/contribute.texi: Update for SVN -> Git transition.
	* doc/install.texi: Likewise.

2020-01-15  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/93254
	* config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
	alternatives 9 and 10.  Do not require SSE2 ISA for alternatives
	14 and 15.

2020-01-14  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2020-01-13  Martin Jambor  <mjambor@suse.cz>

	PR ipa/93223
	* ipa-cp.c (devirtualization_time_bonus): Check whether isummary is
	NULL.

2020-01-10  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2019-12-17  Martin Jambor  <mjambor@suse.cz>

        PR ipa/92971
        * Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
          definition of values, release memory on exit.

2020-01-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	Backport from trunk
	PR target/93188
	* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
	armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
	when only building rm-profile multilibs.

2020-01-10  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

	Backport from trunk
	* config/arm/t-multilib: Use arm->thumb multilib reuse rules
	on a-profile.

2020-01-09  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-12-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
	of execution of function call parameters.

2020-01-08  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2020-01-08 trunk r279995.

	Add -nodevicespecs option for avr.

	PR target/93182
	* config/avr/avr.opt (-nodevicespecs): New driver option.
	* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
	"-specs=device-specs/..." if that option is not set.
	* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.

2020-01-06  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md: Revert change to use ordered_comparison_operator
	instead of cmpib_comparison_operator in cmpib patterns.
	* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
	of cmpib_comparison_operator.  Revise comment.

2020-01-01  John David Anglin  <danglin@gcc.gnu.org>

	PR target/67834
	* config/pa/pa.c (pa_elf_select_rtx_section): New.  Put references to
	COMDAT group function labels in .data.rel.ro.local section.
	* config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.

	PR target/93111
	* config/pa/pa.md (scc): Use ordered_comparison_operator instead of
	comparison_operator in B and S integer comparisons.  Likewise, use
	ordered_comparison_operator instead of cmpib_comparison_operator in
	cmpib patterns.
	* config/pa/predicates.md (cmpib_comparison_operator): Remove.

2019-12-25 Iain Sandoe <iain@sandoe.co.uk>

	Backport from mainline.
	2019-12-14 Iain Sandoe <iain@sandoe.co.uk>

	* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
	bundle spec. (DARWIN_BUNDLE1_SPEC): New.
	(STARTFILE_SPEC): Use darwin bundle spec.
	* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
	(DARWIN_DYLIB1_SPEC): Delete duplicate.

2019-12-20  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/92756
	* omp-low.c (check_omp_nesting_restrictions): If lang_GNU_Fortran,
	diagnose teams not closely nested inside of target.

	Backported from mainline
	2019-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/92357
	* ipa-fnsummary.c (ipa_fn_summary_write): Use
	lto_symtab_encoder_iterator with lsei_start_function_in_partition and
	lsei_next_function_in_partition instead of walking all cgraph nodes
	in encoder.

	PR tree-optimization/92930
	* ipa-pure-const.c (special_builtin_state): Don't handle
	BUILT_IN_APPLY.

	2019-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/92904
	* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
	not need_temp, decrease alignment of the read because the GPR save
	area only guarantees 8-byte alignment.

	2019-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/92723
	* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
	vect_internal_def, use oprnd1 as is, without trying to cast it.
	Formatting fix.

	2019-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR debug/92664
	* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".

	2019-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/92644
	* tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
	next to INTEGER_CST checks.

	2019-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/92615
	* config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
	GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
	register_operand, force x into register before storing it into dest.
	Formatting fix.

2019-12-20  Roman Zhuykov  <zhroma@ispras.ru>

	Backport from mainline
	2019-12-13  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/92591
	* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
	for history > 0 case.
	* params.def (sms-dfa-history): Limit to 16.

2019-12-19  Georg-Johann Lay  <avr@gjlay.de>

	Backport support for some AVR devices from avrxmega3 family
	from SVN trunk r279309, r278387, r278389, r278478.

	PR target/92545
	* config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
	* config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
	* config/avr/avr-mcus.def (AVR_MCU): Add respective field.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
	<*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
	for spec definitions.
	* config/avr/gen-avr-mmcu-texi.c: Rewrite.
	* doc/avr-mmcu.texi: Regenerate.

2019-12-17  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2019-12-16  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/92950
	* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
	and lhrl with llc.

2019-12-12  Vineet Gupta  <vgupta@synopsys.com>

	Backport from mainline
	* config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
	helps codegen generate exceptions even for quiet NaN.
	* config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
	(get_arc_condition_code): Likewise.
	(arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
	* config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
	* config/arc/predicates.md (proper_comparison_operator): Likewise.
	* config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
	(cmpdf_fpu_trap): Likewise.

2019-12-12  Claudiu Zissulescu  <claziss@synopsys.com>

	Backport from mainline
	* config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
	(cstoredi4): Use TARGET_HARD_FLOAT.

2019-12-10  Kewen Lin  <linkw@gcc.gnu.org>

	Backport from mainline
	2019-11-27  Kewen Lin  <linkw@gcc.gnu.org>

	PR tree-optimization/91790
	* gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted DR for
	vect_setup_realignment when first_stmt_info is different from
	first_stmt_info_for_drptr.

2019-12-09  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute
	TYPE_CANONICAL from the element type only if it is true.  Remove a few
	obsolete lines and adjust recursive call.
	(fld_process_array_type): Adjust call to build_array_type_1.
	(build_array_type): Likewise.
	(build_nonshared_array_type): Likewise.

2019-12-02  Sandra Loosemore  <sandra@codesourcery.com>

	Fix bugs relating to flexibly-sized objects in nios2 backend.
	
	PR target/92499
	* config/nios2/nios2.c (nios2_in_small_data_p): Do not consider
	objects of flexible types to be small if they have internal linkage
	or are declared extern.
	* config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with...
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this.  Use targetm.in_small_data_p
	instead of the size of the object initializer.
	* tree.c (flexible_array_type_p): Move from C front end, and
	generalize to handle fields in non-C structures.
	* tree.h (flexible_array_type_p): Declare.

2019-12-02  Li Jia He  <helijia@linux.ibm.com>

	Partial backport from mainline
	PR target/92098
	2019-11-08  Kewen Lin  <linkw@gcc.gnu.org>

	PR target/92132
	* config/rs6000/predicates.md
	(signed_or_equality_comparison_operator): New predicate.
	(unsigned_or_equality_comparison_operator): Likewise.
	* config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
	(one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
	* config/rs6000/vector.md
	(vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
	(vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
	(vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.

2019-11-27  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92222
	* tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
	(_slp_oprnd_info::second_pattern): Likewise.
	(_slp_oprnd_info::any_pattern): New.
	(vect_create_oprnd_info): Adjust.
	(vect_get_and_check_slp_defs): Compute whether any stmt is
	in a pattern.
	(vect_build_slp_tree_2): Avoid building up a node from scalars
	if any of the operand defs, not just the first, is in a pattern.

2019-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91355
	* tree-ssa-sink.c (select_best_block): Use >= rather than >
	for early_bb scaled count with best_bb count comparison.

2019-11-21  Richard Biener  <rguenther@suse.de>

	Revert
	2019-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91790
	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
	use the correct DR for setting up realignment.

2019-11-20  Peter Bergner <bergner@linux.ibm.com>

	Backport from mainline
	2019-11-07  Peter Bergner <bergner@linux.ibm.com>

	PR other/92090
	* config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
	modes for integer constants.

2019-11-20  Michael Matz  <matz@suse.de>

	Backport from mainline
	PR middle-end/90796
	* gimple-loop-jam.c (any_access_function_variant_p): New function.
	(adjust_unroll_factor): Use it to constrain safety, new parameter.
	(tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.

2019-11-20  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (-Wc11-c2x-compat): Document.

2019-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/90840
	* expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
	and has a mode that doesn't have corresponding integral type.

	PR target/90867
	* config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
	clear opts->x_ix86_isa_flags{,2} here...
	(ix86_valid_target_attribute_inner_p): ... but here when seeing
	arch=.  Also clear opts->x_ix86_isa_flags{,2}_explicit.

	PR c/90898
	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
	assertion.
	(insert_clobbers_for_var): Fix a typo in function comment.

2019-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91450
	* internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
	operand is negative and one non-negative, compare the non-negative
	one against 0 rather than comparing s1 & s2 against 0.  Otherwise,
	don't compare (s1 & s2) == 0, but compare separately both s1 == 0
	and s2 == 0, unless one of them is known to be negative.  Remove
	tem2 variable, use tem where tem2 has been used before.

2019-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.

2019-11-18  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-11-12  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
	hexadecimal literal.

2019-11-15  Tamar Christina  <tamar.christina@arm.com>

	Backport from mainline
	2019-09-24  Stamatis Markianos-Wright  <stam.markianos-wright@arm.com>

	* config/aarch64/aarch64-option-extensions.def (fp16fml):
	Update hwcap string for fp16fml.

2019-11-15  Ilya Leoshkevich  <iii@linux.ibm.com>

	Backport from mainline
	PR rtl-optimization/92430
	* cfgcleanup.c (pass_jump_after_combine::gate): New function.
	(pass_jump_after_combine::execute): Free
	dominance info at the beginning.

2019-11-13  Claudiu Zissulescu <claziss@gmail.com>

	Backport from mainline
	* config/arc/arc.md (movsi_ne): Reorder instruction variants and
	use new register constraint letters.
	* config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
	as well, if interesting recover the symbol and re-legitimize the
	pic address.

2019-11-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-11-14  Martin Liska  <mliska@suse.cz>

	PR target/92389
	* config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
	PTA_ICELAKE_CLIENT which is later interited by
	PTA_ICELAKE_SERVER and PTA_TIGERLAKE.

2019-11-13  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	Backport from mainline
	* config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
	instead of asserting its value.

2019-11-11  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-06-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90930
	* tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
	into parallel form in the last pass instance.

2019-11-11  H.J. Lu  <hjl.tools@gmail.com>

	Backport from trunk:
	PR target/87833
	* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
	-fPIC and -shared the last to create offload image.

2019-11-11  Thomas Schwinge  <thomas@codesourcery.com>

	Backport from trunk:
	* gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
	of 'offset'.

	Backport from trunk:
	* Makefile.in (LANG_CONFIGUREFRAGS): Define.
	(config.status): Use/depend on it.
	* configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
	* configure: Regenerate.

2019-11-09  John David Anglin  <danglin@gcc.gnu.org>

	Backport from mainline
	2019-11-07  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
	Enhance comment.
	(memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
	insn patterns using ldcw instruction.
	(memory_barrier): Remove insn pattern using sync instruction.
	* config/pa/pa.opt (coherent-ldcw): New option.
	(ordered): New option.

2019-11-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/92384
	* function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
	copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
	slot.
	(assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
	force creation of a unique data.stack_parm slot.

	Backported from mainline
	2019-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/92231
	* tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
	DECL_BUILT_IN in comment.  Remove redundant ()s around return
	argument.
	* tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
	before calling fndecl_built_in_p.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
	TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
	fndecl_built_in_p on it.

	PR c++/90947
	* tree.h (type_initializer_zero_p): Remove.
	* tree.c (type_initializer_zero_p): Remove.

	2019-10-29  Jakub Jelinek  <jakub@redhat.com>

	* doc/install.texi (--enable-offload-targets): Fix up a typo in the
	example, use actual names of supported offload targets.

2019-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/92095
	* config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
 	change.
	(got_helper_needed): New static variable.
	(output_load_pcrel_sym): New function.
	(get_pc_thunk_name): Remove after inlining...
	(load_got_register): ...here.  Rework the initialization of the GOT
	register and of the GOT helper.
	(save_local_or_in_reg_p): Test the REGNO of the GOT register.
	(sparc_file_end): Test got_helper_needed to decide whether the GOT
	helper must be emitted.  Use output_asm_insn instead of fprintf.
	(sparc_init_pic_reg): In PIC mode, always initialize the PIC register
	if optimization is enabled.
	* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
	by calling output_load_pcrel_sym.

2019-11-06  Ilya Leoshkevich  <iii@linux.ibm.com>

	Backport from mainline
	* config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
	(*op0, 1) instead of XEXP (*op1, 0).

2019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-10-24  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
	(uavg<mode>3_ceil): ... This.
	(altivec_vavgs<VI_char>): Rename to...
	(avg<mode>3_ceil): ... This.
	* config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
	VAVGUW, VAVGSW): Adjust.

2019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-10-26  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/91289
	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an
	immediate to r0; use r11 instead.  Save and restore r11 to r0 around
	this.

2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_vector_alignment): Check if the value
	fits into uhwi before using it.

2019-11-01  John David Anglin  <danglin@gcc.gnu.org>

	Backport from mainline
	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
	(pa_attr_length_call): Adjust length for 64-bit plabel sequence.

2019-11-01  John David Anglin  <danglin@gcc.gnu.org>

	Backport from mainline
	2019-10-03  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_indirection_name): Rework the
	function to emit linker-visible symbols only for indirections
	in the data section.  Clean up the code and update comments.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_override_options): Make the check for
	Objective-C ABI version more specific for 64bit code.

	Backport from mainline
	2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_override_options): Adjust objective-c
	ABI version error messages to avoid punctuation and contracted
	negations.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
	(STARTFILE_SPEC): Split crt3 into a separate spec.
	(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
	(DARWIN_CRT2_SPEC): New.
	(DARWIN_CRT3_SPEC): New.
	(MIN_LD64_OMIT_STUBS): Revise to 62.1.
	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
	(DARWIN_CRT3_SPEC): New.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
	spec.

	Backport from mainline
	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h (ENDFILE_SPEC): New.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_emit_unwind_label): New.
	(darwin_override_options): Set darwin_emit_unwind_label as needed.

2019-10-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-08-13 Iain Sandoe <iain@sandoe.co.uk>

	* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
	flag.
	(darwin_override_options): Likewise.
	* config/darwin.h: Likewise.
	* config/darwin.opt: Likewise.
	* config/i386/i386.c (output_pic_addr_const): Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
	* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
	... this TARGET_MACHO_SYMBOL_STUBS.
	(FUNCTION_PROFILER):Likewise.
	* config/i386/i386.h: Likewise.

	Backport from mainline
	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_indirect_call_target): Use renamed
	darwin_picsymbol_stubs to decide on output.
	(darwin_override_options): Handle darwin_picsymbol_stubs.
	* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
	(LD64_VERSION): Revise default.
	* config/darwin.opt: (mpic-symbol-stubs): New option.
	(darwin_picsymbol_stubs): New variable.
	* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
	rename to TARGET_MACHO_PICSYM_STUBS.
	* config/i386/i386.c (output_pic_addr_const): Likewise.
	* config/i386/i386.h Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
	darwin_picsymbol_stubs.

2019-10-30  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	Backport from mainline
	2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
	for both call instructions.

2019-10-30  Thomas Schwinge  <thomas@codesourcery.com>

	Backport from trunk:

	2019-05-06  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (mem_loc_descriptor): Initialize int_mode.

2019-10-28  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/92225
	* config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
	condition for V2DImode.

2019-10-28  Ilya Leoshkevich  <iii@linux.ibm.com>

	Backport from mainline
	PR rtl-optimization/92007
	* cfgcleanup.c (thread_jump): Add an assertion that we don't
	call it after reload if hot/cold partitioning has been done.
	(class pass_postreload_jump): Rename to
	pass_jump_after_combine.
	(make_pass_postreload_jump): Rename to
	make_pass_jump_after_combine.
	* passes.def(pass_postreload_jump): Move before reload, rename
	to pass_jump_after_combine.
	* tree-pass.h (make_pass_postreload_jump): Rename to
	make_pass_jump_after_combine.

2019-10-28  Peter Bergner <bergner@linux.ibm.com>
	    Jiufu Guo  <guojiufu@linux.ibm.com>

	PR target/70010
	* config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
	the callee explicitly disables some isa_flags the caller is using.

2019-10-27  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/65342
	* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
	(movdi_low_st): Delete.
	* config/rs6000/rs6000.c
	(darwin_rs6000_legitimate_lo_sum_const_p): New.
	(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
	* config/rs6000/rs6000.md (movsi_low): Delete.

2019-10-27  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/67183
	* config/darwin.c (machopic_indirection): New field to flag
	non-lazy-symbol-pointers in the data section.
	(machopic_indirection_name): Compute if an indirection should
	appear in the data section.
	(machopic_output_data_section_indirection): New callback split
	from machopic_output_indirection.
	(machopic_output_stub_indirection): Likewise.
	(machopic_output_indirection): Retain the code for non-lazy
	symbol pointers in their regular section.
	(machopic_finish): Use the new callbacks to order the indirection
	output.

2019-10-27  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-protos.h (machopic_finish): Delete.
	* config/darwin.c (machopic_finish): Make static.

	Backport from mainline
	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_indirect_data_reference): Set flag to
	indicate that the new symbol is an indirection.
	(machopic_indirect_call_target): Likewise.
	* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
	(MACHO_SYMBOL_INDIRECTION_P): New.
	(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.

	Backport from mainline
	2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_indirect_data_reference): Check for
	required indirections before making direct access to defined
	values.
	(machopic_output_indirection): Place the indirected pointes for
	required indirections into the non-lazy symbol pointers section.
	(darwin_encode_section_info):
	* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
	(MACHO_SYMBOL_MUST_INDIRECT_P): New.

	Backport from mainline
	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_output_indirection): Don't put
	hidden symbol indirections into the .data section, use the
	non-lazy symbol pointers section as normal.
	(darwin_encode_section_info): Record if a symbol is hidden.
	* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
	(MACHO_SYMBOL_HIDDEN_VIS_P): New.

	Backport from mainline
	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
	predicates instead of accessing bits directly.
	(machopic_indirect_call_target): Likewise.
	(machopic_output_indirection): Likewise.
	(darwin_encode_section_info): Improve description.  Use renamed
	symbol flags.  Use predicate macros for variables and functions.
	* config/darwin.h:
	Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
	Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
	Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
	(MACHO_SYMBOL_VARIABLE_P): New.
	(MACHO_SYMBOL_DEFINED_P):New.
	(MACHO_SYMBOL_STATIC_P): New.
	* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
	(SYMBOL_FLAG_SUBT_DEP): New.
	* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.

2019-10-25  Jan Hubicka  <hubicka@ucw.cz>

	Backport from mainline
	2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
	* gimple-streamer-out.c (output_gimple_stmt): Add explicit function
	parameter.
	* lto-streamer-out.c: Include tree-dfa.h.
	(output_cfg): Do not use cfun.
	(lto_prepare_function_for_streaming): New.
	(output_function): Do not push cfun; do not initialize loop optimizer.
	* lto-streamer.h (lto_prepare_function_for_streaming): Declare.
	* passes.c (ipa_write_summaries): Use it.
	(ipa_write_optimization_summaries): Do not modify bodies.
	* tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
	* tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
	* tree-ssa-dse.c (pass_dse::execute): Update use of
	renumber_gimple_stmt_uids.
	* tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.

	2019-10-12  Jan Hubicka  <hubicka@ucw.cz>
	* lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
	so non-virutal are before virutals.
	(output_function): Avoid body modifications.

2019-10-25  Richard Earnshaw  <rearnsha@arm.com>

	Backport from mainline
	2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
	    Richard Earnshaw  <rearnsha@arm.com>
	PR target/88167
	* config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
	function.
	(thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
	(thumb1_compute_save_core_reg_mask): Don't force a spare work
	register if both the epilogue and prologue can use call-clobbered
	regs.
	(thumb1_unexpanded_epilogue): Use
	thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
	picking temporaries for restoring high regs to match that of the
	prologue where possible.
	(thumb1_expand_prologue): Add any usable call-clobbered low registers to
	the list of work registers.  Detect if the return address is still live
	at the end of the prologue and avoid using it for a work register if so.
	If the return address is not live, add LR to the list of pushable regs
	after the first pass.

2019-10-25  Jan Hubicka  <hubicka@ucw.cz>

	Backport from mainline
	2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
	* symbols-summary.h (fast_function_summary<T *, V>::release,
	fast_call_summary<T *, V>::release): Free m_vector.

2019-10-25  Jan Hubicka  <hubicka@ucw.cz>

	Backport from mainline

	2019-10-18  Jakub Jelinek  <jakub@redhat.com>
	PR middle-end/92153
	* ggc-page.c (release_pages): Read g->alloc_size before free rather
	than after it.

	2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
	* ggc-page.c (release_pages): Output statistics when !quiet_flag.
	(ggc_collect): Dump later to not interfere with release_page dump.
	(ggc_trim): New function.
	* ggc-none.c (ggc_trim): New.
	* ggc.h (ggc_trim): Declare.

2019-10-24  Mihail Ionescu  <mihail.ionescu@arm.com>

	Backport from mainline
	2019-10-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/t-multilib: Add new multilib variants and new
	mappings.

2019-10-24  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-23  Iain Sandoe  <iain@sandoe.co.uk>
	* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
	against out of range max skip or log values.

2019-10-23  Peter Bergner  <bergner@linux.ibm.com>

	Backport from mainline
	2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>

	* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
	LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
	MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.

2019-10-23  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-09-26  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/91885
	* tree-vectorizer.c (try_vectorize_loop_1):
	Add TODO_update_ssa_only_virtuals similarly to what slp
	pass does.

2019-10-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/92131
	* tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
	range would be symbolic, drop to varying for any explicit overflow
	in the constant part or if neither range is a singleton.

2019-10-23  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-10-17  Richard Biener  <rguenther@suse.de>

	PR debug/91887
	* dwarf2out.c (gen_formal_parameter_die): Also try to match
	context_die against a DW_TAG_GNU_formal_parameter_pack parent.

2019-10-21  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-10-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/92056
	* tree-object-size.c (cond_expr_object_size): Return early if then_
	processing resulted in unknown size.

	2019-10-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91734
	* generic-match-head.c: Include fold-const-call.h.
	* match.pd (sqrt(x) cmp c): Check the boundary value and
	in case inexact computation of c*c affects comparison of the boundary,
	turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
	or GT_EXPR into GE_EXPR.  Punt for sqrt comparisons against NaN and
	for -frounding-math.  For c2, try the next smaller or larger floating
	point constant depending on comparison code and if it has the same
	sqrt as c2, use it instead of c2.

	2019-09-29  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/90543
	* optc-save-gen.awk: Fix up printing string option differences.

	2019-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91920
	* gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
	variables as shared.

	2019-09-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91723
	* tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
	instead of pointer equality when checking if argument vectypes are
	the same.

	2019-09-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91665
	* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
	incompatible with the type of PHI result.

	2019-09-06  Jakub Jelinek  <jakub@redhat.com>

	* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
	before testing TYPE_TRANSPARENT_AGGR.
	* calls.c (initialize_argument_information, load_register_parameters):
	Likewise.

	2019-09-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91001
	PR middle-end/91105
	PR middle-end/91106
	* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
	types, use type of their first field instead of type of
	args[i].tree_value.

	2019-09-02  Jakub Jelinek  <jakub@redhat.com>

	PR go/91617
	* fold-const.c (range_check_type): For enumeral and boolean
	type, pass 1 to type_for_size langhook instead of
	TYPE_UNSIGNED (etype).  Return unsigned_type_for result whenever
	etype isn't TYPE_UNSIGNED INTEGER_TYPE.
	(build_range_check): Don't call unsigned_type_for for pointer types.
	* match.pd (X / C1 op C2): Don't call unsigned_type_for on
	range_check_type result.

	2019-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91623
	* optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
	EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
	zeros or negative elements and use NE_EXPR instead of LT_EXPR against
	zero vector.

	PR lto/91572
	* tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
	GIMPLE_ASM TREE_LIST operands.

	2019-08-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91351
	* tree-cfg.c (generate_range_test): Use range_check_type instead of
	unsigned_type_for.
	* tree-cfgcleanup.c (convert_single_case_switch): Punt if
	range_check_type returns NULL.
	* tree-switch-conversion.c (switch_conversion::build_one_array):
	Use range_check_type instead of unsigned_type_for, don't perform
	linear opt if it returns NULL.
	(bit_test_cluster::find_bit_tests): Formatting fix.
	(bit_test_cluster::emit): Use range_check_type instead of
	unsigned_type_for.
	(switch_decision_tree::try_switch_expansion): Punt if range_check_type
	returns NULL.

2019-10-18  Georg-Johann Lay  <avr@gjlay.de>

	Backport from 2019-10-18 trunk r277143.

	PR target/86040
	* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.

2019-10-18  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/59888
	* config/darwin.c (darwin_rodata_section): Add relocation flag,
	choose const_data section for constants with relocations.
	(machopic_select_section): Pass relocation flag to
	darwin_rodata_section ().

2019-10-18  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_legitimize_pic_address): Check
	for lra, rather than reload.

2019-10-17  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.

2019-10-17  Richard Earnshaw  <rearnsha@arm.com>

	Backport from mainline
	2019-05-03  Richard Earnshaw  <rearnsha@arm.com>

	PR target/89400
	* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
	Restrict 'all' variant to 32-bit configurations.
	(unaligned_loadhiu): Likewise.
	(unaligned_storehi): Likewise.
	(unaligned_storesi): Likewise.
	(unaligned_loadhis): Disable when compiling for thumb1.

2019-10-16  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/87243
	* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
	(darwin_driver_init): Use the sysroot provided by SDKROOT when that
	is available and the user has not set one on the command line.

2019-10-16  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
	(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
	(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
	clauses.
	(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
	DARWIN_NOPIE_SPEC.

	Backport from mainline
	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
	and DARWIN_NOPIE_SPEC.
	(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
	(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
	(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
	(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
	(DARWIN_EXPORT_DYNAMIC): Delete.
	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
	and pie options processing to  darwin.h.
	* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h

2019-10-16  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-10-04  Richard Biener  <rguenther@suse.de>

	PR lto/91968
	* tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
	BLOCK_VARS.

	2019-09-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91812
	* tree-ssa-phiprop.c (propagate_with_phi): Do not replace
	volatile loads.

	2019-09-17  Richard Biener  <rguenther@suse.de>

	PR debug/91772
	* dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
	was missing generate locations only once.

	2019-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91790
	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
	use the correct DR for setting up realignment.

2019-10-14  Will Schmidt  <will_schmidt@vnet.ibm.com>

	Backport from trunk
	2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
	LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
	LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
	LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
	LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
	LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
	LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
	LD_ELEMREV_V16QI): Use the PURE attribute.

2019-10-10  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/92022
	* config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.

2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/88630
	* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
	* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
	also for TARGET_FPU_SH4_300.
	(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
	TARGET_SH4_300.
	* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
	(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
	(*negsf2_i): Split into ...
	(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
	(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
	(**abssf2_i): Split into ...
	(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
	(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
	(*negdf2_i): Split into ...
	(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
	(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
	(**abssf2_i): Split into ...
	(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.

2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>

	* common/config/s390/s390-common.c (PF_ARCH13): Rename to...
	(PF_Z15): ... this.
	* config.gcc: Add z15 as option for --with-arch and --with-tune
	configure switches.
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
	error reporting for unsupported builtins.
	* config/s390/s390-opts.h (enum processor_type): Rename
	PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
	* config/s390/8561.md: Rename arch13 to z15 throughout the file.
	* config/s390/driver-native.c (s390_host_detect_local_cpu):
	Likewise.
	* config/s390/s390-builtins.def: Likewise.
	* config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
	(s390_expand_builtin): Add missing check for unsupported builtins.
	(s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
	(s390_rtx_costs): Likewise.
	(s390_get_sched_attrmask): Rename arch13 to z15.
	(s390_get_unit_mask): Likewise.
	(s390_is_fpd): Likewise.
	(s390_is_fxd): Likewise.
	* config/s390/s390.h (enum processor_flags): Likewise.
	* config/s390/s390.md: Likewise.
	* config/s390/vector.md: Likewise.
	* config/s390/vx-builtins.md: Likewise.
	* config/s390/s390.opt: Add z15 to processor_type value.

2019-10-07  Bill Schmidt  <wschmidt@linux.ibm.com>

	Backport from mainline
	2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/91275
	* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
	vpmsumd.

2019-10-05  Andrea Corallo  <andrea.corallo@arm.com>

	Backport from mainline
	2019-10-03  Andrea Corallo  <andrea.corallo@arm.com>
	* gcc/ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum
	when finished.
	* ipa-prop.c (ipcp_free_transformation_sum): New function.
	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

2019-10-04  Dragan Mladjenovic <dmladjenovic@wavecomp.com>

	Backport from mainline
	2019-10-03  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	PR target/91769
	* config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
	instead of REGNO equality check on addr.reg.

2019-10-04  Dragan Mladjenovic <dmladjenovic@wavecomp.com>

	Backport from mainline
	2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_split_move): Zero-initialize addr
	and check whether addr.reg is nonnull before using it.

2019-10-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Backport from mainline

	2019-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR fortran/91716
	* trans-array.c (gfc_conv_array_initializer): Always assign the
	array type of the field to the string constant.

2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline

	2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/88562
	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
	sh_check_add_incdec_notes to preserve REG_INC notes when replacing
	a memory access insn.


2019-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (mov<mode>): Don't call
	aarch64_split_dimode_const_store on volatile MEM.

2019-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-09-26  Matt Turner  <mattst88@gmail.com>

	PR driver/69471
	* config/aarch64/aarch64.opt (march=): Add Negative(march=).
	(mtune=): Add Negative(mtune=).
	(mcpu=): Add Negative(mcpu=).
	* config/arm/arm.opt: Likewise.

2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/86805
	* config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.

2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	Backport from mainline
	2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/80672
	* config/sh/sh.c (parse_validate_atomic_model_option): Use
	std::string::compare instead of std::string::find.

2019-09-25  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

	Backport from mainline
	2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

	* config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
	intrinsics if __ARM_FP.
	Use __ARM_FEATURE_CRC32 ifdef guard.

2019-09-23  Max Filippov  <jcmvbkbc@gmail.com>

	Backport from mainline
	2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
	pointer adjustment for the case of no callee-saved registers and
	stack frame bigger than 128 bytes.

2019-09-22  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.opt (prebind, noprebind, seglinkedit,
	noseglinkedit): Add RejectNegative.

	Backport from mainline
	2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.opt: Add RejectNegative where needed, reorder
	and add minimal functional descriptions.

2019-09-20  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_trampoline_init): Remove spurious extended
	character.

2019-09-20  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR rtl-optimization/88751
	* ira.c (ira): Use the number of the actually referenced registers
	when calculating the threshold.

2019-09-20  Kito Cheng  <kito.cheng@sifive.com>

	Backport from mainline
	2019-09-18  Jim Wilson  <jimw@sifive.com>

	PR target/91683
	* config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
	(riscv_move_integer): Likewise.
	* config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
	riscv_move_integer arg.
	(riscv_legitimize_move): Likewise.
	(riscv_force_temporary): New parameter in_splitter.  Don't call
	force_reg if true.
	(riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
	arg.
	(riscv_add_offset): Likewise.
	(riscv_split_symbol): New parameter in_splitter.  Pass to
	riscv_force_temporary.
	(riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
	arg.
	(riscv_move_integer): New parameter in_splitter.  New local
	can_create_psuedo.  Don't call riscv_split_integer or force_reg when
	in_splitter TRUE.
	(riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
	riscv_split_symbol, and riscv_force_temporary args.
	* config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
	riscv_move_integer arg.
	(low<mode>+2): Pass TRUE for new riscv_split_symbol arg.

2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/91269
	* config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.

2019-09-19  Kito Cheng  <kito.cheng@sifive.com>

	Backport from mainline
	2019-09-05  Jakub Jelinek  <jakub@redhat.com>
		    Jim Wilson  <jimw@sifive.com>

	PR target/91635
	* config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
	extend<SHORT:mode><SUPERQI:mode>2): Don't split if
	paradoxical_subreg_p (operands[0]).
	(*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
	use as intermediate value.

2019-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/89795
	* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
	inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.

2019-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/87853
	* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
	instead of __v16qs.

	PR target/91704
	* config/i386/avxintrin.h (__v32qs): New typedef.
	* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
	instead of __v32qi.

2019-09-04  Wilco Dijkstra  <wdijkstr@arm.com>

	Backport from mainline
	2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/81800
	* gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
	operand is larger than a long int.

2019-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91597
	* tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
	BIT_AND_EXPR optimization for pointers, even if both operand
	ranges don't include NULL, the result can be NULL.

2019-09-02  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-09-02  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/91601
	* gcov.c (path_contains_zero_cycle_arc): Rename to ...
	(path_contains_zero_or_negative_cycle_arc): ... this and handle
	also negative edges.
	(circuit): Handle also negative edges as they can happen
	in some situations.

2019-09-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/91472
	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
	during LRA/reload in PIC mode if the PIC register hasn't been used yet.
	(sparc_pic_register_p): Test reload_in_progress for consistency's sake.

2019-08-31  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR pch/61250
	* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
	and issue any diagnostics needed before collecting the pre-PCH
	state.

2019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/91481
	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
	and UNSPEC_DARN_RAW.
	(unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
	UNSPECV_DARN_RAW.
	(darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
	(darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
	(darn): Use an unspec_volatile, and UNSPECV_DARN.

2019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
	UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
	* config/rs6000/rs6000.md (unspec): ... here.
	* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
	cmpeqb, *cmpeqb_internal): Delete, move to...
	* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
	cmpeqb, *cmpeqb_internal): ... here.

2019-08-30  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90278
	* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
	EH on comparison simplification.

2019-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91568
	* tree-vectorizer.h (_slp_tree::max_nunits): Add.
	(vect_update_max_nunits): Add overload for poly_uint64.
	* tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
	(vect_build_slp_tree): Record max_nunits into the subtree
	and merge it upwards.
	(vect_print_slp_tree): Print max_nunits.

2019-08-28  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-05-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90637
	* tree-ssa-sink.c (statement_sink_location): Honor the
	computed sink location for single-uses.

2019-08-26  Xiong Hu Luo  <luoxhu@linux.ibm.com>

	Backport r274411 from trunk to gcc-9-branch.
	2019-08-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>

	PR lto/91287
	* builtins.c (builtin_with_linkage_p): New function.
	* builtins.h (builtin_with_linkage_p): New function.
	* symtab.c (write_symbol): Remove redundant assert.
	* lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
	Remove FIXME and use builtin_with_linkage_p.

2019-08-25  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/91533
	Backport from mainline
	2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
	* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
	Use CODE_FOR_ssse3_absv8qi2.
	(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
	(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.

2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>

	Backport from mainline
	2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>

	* config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
	machine mode for unspec_volatile operand.

2019-08-23  Martin Liska  <mliska@suse.cz>

	PR ipa/91508
	Backport from mainline
	2019-08-15  Martin Liska  <mliska@suse.cz>

	PR ipa/91438
	* cgraph.c (cgraph_node::remove): When setting
	n->origin = NULL for all nested functions, reset
	also next_nested.

2019-08-23  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-08-15  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::verify_node): Verify origin, nested
	and next_nested.

2019-08-23  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-08-15  Martin Liska  <mliska@suse.cz>

	PR ipa/91404
	* passes.c (order): Remove.
	(uid_hash_t): Likewise).
	(remove_cgraph_node_from_order): Remove from set
	of pointers (cgraph_node *).
	(insert_cgraph_node_to_order): New.
	(duplicate_cgraph_node_to_order): New.
	(do_per_function_toporder): Register all 3 cgraph hooks.
	Skip removed_nodes now as we know about all of them.

2019-08-21  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
	for cpu and machine.  Factor 64/32b builtins.

2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/91347
	* dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
	before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.

2019-08-19  Richard Earnshaw  <rearnsha@arm.com>

	Backport from mainline
	2019-09-09  Richard Earnshaw  <rearnsha@arm.com>

	PR target/91386
	* config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
	to preserve the contents of the original insns.

2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	Backport from mainline
	2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR tree-optimization/91109
	* lra-int.h (lra_need_for_scratch_reg_p): Declare.
	* lra.c (lra): Use lra_need_for_scratch_reg_p.
	* lra-spills.c (lra_need_for_scratch_reg_p): New function.

	2019-08-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR tree-optimization/91109
	* lra-remat.c (update_scratch_ops): Remove assignment of the
	hard register.

2019-08-15  Steve Ellcey  <sellcey@marvell.com>

	Backport from mainline
	2019-08-02  Steve Ellcey  <sellcey@marvell.com>

	* omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
	build_distinct_type_copy.
	(simd_clone_adjust_argument_types): Ditto.
	(simd_clone_adjust): Call build_distinct_type_copy here.
	(expand_simd_clones): Ditto.

2019-08-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91445
	Backport from mainline
	2019-07-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91091
	* tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
	(get_continuation_for_phi): New tbaa_p parameter and pass
	it down.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-pre.c (translate_vuse_through_block): Likewise.
	* tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
	Likewise.
	* tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
	(vn_reference_lookup_3): Handle and pass down tbaa_p flag.
	(vn_reference_lookup_pieces): Adjust.
	(vn_reference_lookup): Remove alias-set altering, instead pass
	down false as tbaa_p.

	2019-07-04  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
	argument.
	* tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
	globals into...
	(struct vn_walk_cb_data): New callback data struct.
	(vn_reference_lookup_2): Adjust.
	(vn_reference_lookup_3): Likewise.
	(vn_reference_lookup_pieces): Likewise.
	(vn_reference_lookup): Likewise, get last_vuse_ptr argument.
	(visit_reference_op_load): Adjust.

2019-08-14  Martin Sebor  <msebor@redhat.com>

	Backport from mainline

	2019-08-01  Martin Sebor  <msebor@redhat.com>

	PR c++/90947
	* tree.c (type_initializer_zero_p): Define.
	* tree.h (type_initializer_zero_p): New function.

	2019-08-05  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (Common Variable Attributes): Document alias
	attribute.

2019-08-12  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-08-12  Richard Biener  <rguenther@suse.de>

	PR lto/91375
	* tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
	flag_devirtualize.

	2019-08-12  Richard Biener  <rguenther@suse.de>

	PR driver/91130
	* lto-wrapper.c (get_options_from_collect_gcc_options): Remove
	lang_mask option, always use CL_DRIVER.
	(find_and_merge_options): Adjust.
	(run_gcc): Likewise.

	2019-08-07  Richard Earnshaw  <rearnsha@arm.com>

	PR driver/91130
	* lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
	processing COLLECT_GCC_OPTIONS.
	(run_gcc): Likewise.

2019-08-12  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 9.2.1.

2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-08-05  Kito Cheng  <kito.cheng@sifive.com>

	Backport from mainline
	2019-08-05  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.c (riscv_promote_function_mode): New.
	(TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.

2019-08-05  Alan Modra  <amodra@gmail.com>

	PR target/91349
	* config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
	(LINK_GCC_C_SEQUENCE_SPEC): Undef.

2019-08-04  Segher Boessenkool  <segher@kernel.crashing.org>

	Backport from trunk
	2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
	correct numbers for TFHAR, TFIAR, TEXASR.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>

	PR bootstrap/87030
	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.

	PR bootstrap/87030
	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
	* config/i386/darwin32-biarch.h .. to here.
	* config/i386/darwin64-biarch.h: Adjust comments.
	* config/rs6000/darwin32-biarch.h: Likewise.
	* config/rs6000/darwin64-biarch.h: Likewise.
	* config.gcc: Missed commit from r273746
	(*-*-darwin*): Don't include CPU t-darwin here.
	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
	an error message if i686-darwin configuration is attempted for
	Darwin >= 18.

	Backport from mainline
	2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR bootstrap/87030
	* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
	an error message if i686-darwin configuration is attempted for
	Darwin >= 18.
	(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
	(powerpc-*-darwin*): Use biarch files where needed.
	(powerpc64-*-darwin*): Likewise.
	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
	arch case.
	* config/i386/darwin32-biarch.h: New.
	* config/i386/darwin64.h: Rename.
	* gcc/config/i386/darwin64-biarch.h: To this.
	* config/i386/t-darwin: Rename.
	* gcc/config/i386/t-darwin32-biarch: To this.
	* config/i386/t-darwin64: Rename.
	* gcc/config/i386/t-darwin64-biarch: To this.
	* config/rs6000/darwin32-biarch.h: New.
	* config/rs6000/darwin64.h: Rename.
	* config/rs6000/darwin64-biarch.h: To this.
	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
	arch case.
	* config/rs6000/t-darwin8: Rename.
	* config/rs6000/t-darwin32-biarch: To this.
	* config/rs6000/t-darwin64 Rename.
	* config/rs6000/t-darwin64-biarch: To this.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_override_options): Make a final check on PIC
	options.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
	* config/darwin.c (darwin_override_options): Don't jam symbol stubs
	on for kernel code.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>

	* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
	override on extra_headers.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
	user-specified float mode choice for kernel mode code.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
	use longcall for 64b code.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h: Handle GCC target pragma.

2019-08-03  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/darwin.h: (__PPC__, __PPC64__): New.

2019-08-02  Martin Sebor  <msebor@redhat.com>

	Backport from mainline
	2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/90989
	* tree-ssa-strlen.c (handle_char_store): Constrain a single character
	optimization to just single character stores.

2019-08-02  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
	in computing the number of options to be moved.

	Backport from mainline
	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-driver.c (validate_macosx_version_min): New.
	(darwin_default_min_version): Cleanup and validate supplied version.
	(darwin_driver_init): Likewise and push cleaned version into opts.

2019-08-02  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>

	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.

2019-08-02  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-c.c (darwin_register_objc_includes): Do not
	prepend the sysroot when building gnu-runtime header search
	paths.

2019-08-02  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline
	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (darwin_file_end): Use switch_to_section ()
	instead of direct output of the asm.

2019-08-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91280
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Decompose MEM_REF manually for offset handling.

	2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91293
	* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
	of reduction stmts.

2019-08-02  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91178
	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
	Use tail-recursion.

	2019-07-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91178
	* tree-ssa.c (release_defs_bitset): Iterate from higher to
	lower SSA names to avoid quadratic behavior in the common case.
	* tree-data-ref.c (split_constant_offset): Add limit argument
	and pass it down.  Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
	(split_constant_offset_1): Add limit argument and use it to
	limit SSA def walking.  Optimize the common plus/minus case.

	2019-07-12  Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
	* params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
	* tree-vrp.c (vrp_prop::check_mem_ref): Use
	PARAM_SSA_NAME_DEF_CHAIN_LIMIT.

2019-08-01  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91301
	* gimplify.c (gimplify_omp_for): If for class iterator on
	distribute parallel for there is no data sharing clause
	on inner_for_stmt, look for private clause on combined
	parallel too and if found, move it to inner_for_stmt.

	2019-07-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/91216
	* omp-low.c (global_nonaddressable_vars): New variable.
	(use_pointer_for_field): For global decls, if they are non-addressable,
	remember it in the global_nonaddressable_vars bitmap, if they are
	addressable and in the global_nonaddressable_vars bitmap, ignore their
	TREE_ADDRESSABLE bit.
	(omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
	vars in global_nonaddressable_vars bitmap.
	(execute_lower_omp): Free global_nonaddressable_vars bitmap.

	PR target/91150
	* config/i386/i386.c (expand_vec_perm_blend): Change mask type
	from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
	comparison to unsigned HOST_WIDE_INT before shifting it left.

	2019-07-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91157
	* tree-vect-generic.c (expand_vector_comparison): Handle lhs being
	a vector boolean with scalar mode.
	(expand_vector_condition): Handle first operand being a vector boolean
	with scalar mode.
	(expand_vector_operations_1): For comparisons, don't bail out early
	if the return type is vector boolean with scalar mode, but comparison
	operand type is not.

2019-08-01  Alan Modra  <amodra@gmail.com>

	PR target/91135
	* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
	define.
	* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
	GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
	(GNU_USER_TARGET_D_OS_VERSIONS): Don't define.

2019-07-31  Jonathan Wakely  <jwakely@redhat.com>

	Backport from mainline
	2019-06-24  Jonathan Wakely  <jwakely@redhat.com>

	* ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
	(FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
	(DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.

2019-07-31  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91200
	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
	no PHI nodes in middle-bb.

	2019-07-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/91162
	* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
	node make sure to replace all uses with something valid.

	2019-07-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91145
	* tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
	chain check.

	2019-07-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/91131
	* gimplify.c (gimplify_compound_literal_expr): Force a temporary
	when the object is volatile and we have not cleared it even though
	there are no nonzero elements.

	2019-07-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91126
	* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
	native encoding offset for BYTES_BIG_ENDIAN.
	(vn_reference_lookup_3): Likewise.

2019-07-30  Jan Hubicka  <jh@suse.cz>

	Backport from mainline
	2019-07-23  Jan Hubicka  <hubicka@ucw.cz>

	* i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
	* config/i386/znver1.md: Enable patterns for znver2 and add store
	variants which use extra AGU unit.

2019-07-30  Jan Hubicka  <jh@suse.cz>

	Backport from mainline
	2019-07-23  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.c (ix86_option_override_internal): Default
	PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
	* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
	for ZNVER2.

2019-07-30  Jan Hubicka  <jh@suse.cz>

	Backport from mainline
	2019-07-23  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune-costs.h (znver2_memcpy): Update.
	(znver2_costs): Update 256 bit SSE costs and multiplication.

2019-07-24  Bin Cheng  <bin.cheng@linux.alibaba.com>

	Backport from mainline
	2019-07-18  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/91137
	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
	(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
	Init, use and fini the above new field.
	(determine_base_object_1): New function.
	(determine_base_object): Reimplement using walk_tree.

2019-07-23  Matthew Beliveau  <mbelivea@redhat.com>
	
	Backported from mainline
	2019-07-16  Jeff Law  <law@redhat.com>
	
	PR rtl-optimization/91173
	* tree-ssa-address.c (addr_for_mem_ref): If the base is an
	SSA_NAME with a constant value, fold its value into the offset
	and clear the base before calling gen_addr_rtx.
	* g++.dg/pr91173.C: New test.

2019-07-23  Richard Biener  <rguenther@suse.de>

	PR debug/91231
	* lto-streamer-in.c (input_function): Drop inline-entry markers
	that ended up with an unknown location block.

2019-07-22  Paul A. Clarke  <pc@us.ibm.com>

	Backport from mainline
	* config/rs6000/smmintrin.h (_mm_blend_epi16): New.
	(_mm_blendv_epi8): New.

2019-07-22  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-07-22  Martin Liska  <mliska@suse.cz>

	PR driver/91172
	* opts-common.c (decode_cmdline_option): Decode
	argument of -Werror and check it for a wrong language.
	* opts-global.c (complain_wrong_lang): Remove such case.

2019-07-22  Claudiu Zissulescu  <claziss@synopsys.com>

	Backport from mainline.
	* config/arc/arc.c (prepare_move_operands): Always use an
	intermediate register when storing a TLS symbols.

2019-07-20  Richard Sandiford  <richard.sandiford@arm.com>

	Backport from mainline
	2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const.c (fold_relational_const): Fix folding of
	vector-to-scalar NE_EXPRs.
	(test_vector_folding): Add more tests.

2019-07-19  Jason Merrill  <jason@redhat.com>

	PR c++/82081 - tail call optimization breaks noexcept
	* tree-tailcall.c (find_tail_calls): Don't turn a call from a
	nothrow function to a might-throw function into a tail call.

2019-07-18  Kito Cheng  <kito.cheng@sifive.com>

	Backport from mainline
	2019-07-08  Andrew Waterman  <andrew@sifive.com>
		    Jim Wilson  <jimw@sifive.com>

	* config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
	bitsize	instead of BITS_PER_WORD.
	gcc/testsuite/

2019-07-17  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
	data into data section when generating PIC code.
	(pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
	(pa_reloc_rw_mask): Return 3 when generating PIC code and when
	generating code for SOM targets earlier than HP-UX 11.  Otherwise,
	return 2 for SOM and 0 for other targets.
	 
2019-07-17  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backport from mainline
	2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vector.md: Fix shift count operand printing.

2019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>

	Backport from mainline
	2019-05-30  Wilco Dijkstra  <wdijkstr@arm.com>

	PR driver/90684
	* gcc/opts.c (parse_and_check_align_values): Allow 4 alignment values.

2019-07-14  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/78884
	* gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
	(gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
	loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
	(gimplify_adjust_omp_clauses): Add safelen (1) clause if
	ctx->add_safelen1 is set.

	PR rtl-optimization/90756
	* explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
	for VECTOR_TYPE_P.

2019-07-12  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/91063
	* tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
	stmt from stmts sequence before calling vect_init_vector_1.
	Formatting fix.

	2019-07-04  Richard Biener  <rguenther@suse.de>

	PR ipa/91062
	* tree-pass.h (execute_all_ipa_transforms): Add a flag
	parameter whether to disable GC collection.
	* passes.c (execute_one_ipa_transform_pass): Likewise, and
	honor it.
	(execute_all_ipa_transforms): Likewise and pass it down.
	* cgraph.c (cgraph_node::get_body): Do not invoke garbage
	collection from applying IPA transforms.
	* cgraphunit.c (cgraph_node::expand): Allow garbage collection
	from applying IPA transforms.

	2019-06-26  Richard Biener  <rguenther@suse.de>

	PR ipa/90982
	* tree-inline.c (remap_ssa_name): Copy SSA range info.

	2019-06-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90972
	* tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
	in common code, dealing with STRING_CST properly.

	2019-06-21  Richard Biener  <rguenther@suse.de>

	PR debug/90914
	* dwarf2out.c (prune_unused_types_walk): Always consider
	function-local extern declarations as used.

	2019-06-18  Richard Biener  <rguenther@suse.de>

	PR debug/90900
	* cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
	as if optimized away.

	2019-05-07  Richard Biener  <rguenther@suse.de>

	PR lto/90369
	* lto-wrapper.c (debug_objcopy): Use the original filename
	including archive offset for the filename used for -save-temps.

2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/91136
	* df-core.c (ACCESSING REFS): Fix typos in comment.
	* resource.c (mark_target_live_reg): Add artificial defs that occur at
	the beginning of the block to the initial set of live registers.

2019-07-11  Uroš Bizjak  <ubizjak@gmail.com>

	Backport from mainline
	2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/sse.md (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.

2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Handle
	Modula-2.

2019-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91108
	* tree-ssa-sccvn.c: Include builtins.h.
	(vn_reference_lookup_3): Use only alignment constraints to
	verify same-valued store disambiguation.

2019-07-05  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	Backport from mainline
	2019-06-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
	(aarch64_asm_output_external): Declare.
	* config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
	(aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
	(aarch64_asm_output_alias): New.
	(aarch64_asm_output_external): New.
	* config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
	(ASM_OUTPUT_EXTERNAL): Define.

	2019-06-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
	const.
	* config/aarch64/aarch64.c (aarch64_asm_output_external): Call
	default_elf_asm_output_external.

2019-07-04  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-07-03  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/90892
	* builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
	in string constants.

2019-07-04  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-07-03  Martin Liska  <mliska@suse.cz>

	PR middle-end/90899
	* multiple_target.c (create_dispatcher_calls): Add to comdat
	group only if set for ifunc.

2019-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
	if it has the DW_AT_data_member_location attribute.

2019-07-02  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline:
	2019-07-02  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
	with inlined save and restore.

2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/64242
	* config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
	Add frame clobber and schedule blockage.

2019-06-29  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-06-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/91024
	* gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
	statements.

	2019-06-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/90991
	* config/i386/sse.md
	(*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
	vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
	insns if operands[2] is misaligned_operand.

	2019-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/90760
	* symtab.c (symtab_node::set_section): Allow being called on aliases
	as long as they aren't analyzed yet.

2019-06-28  Jeff Law  <law@redhat.com>

	Backport from mainline
	2019-06-21  Jeff Law  <law@redhat.com>

	PR tree-optimization/90949
	* tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
	* tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.

2019-06-28  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline:
	2019-05-22  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.

2019-06-26  Martin Jambor  <mjambor@suse.cz>

	Backport from mainline
	2019-06-25  Martin Jambor  <mjambor@suse.cz>

	PR ipa/90939
	* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.

2019-06-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	Backport from mainline
	2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
	alternative Solaris 11.4 format.
	* configure: Regenerate.

2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>

	Backport from mainline
	2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_symbol_binds_local_p): New function.
	(arc_legitimize_pic_address): Simplify and cleanup the function.
	(SYMBOLIC_CONST): Remove.
	(prepare_pic_move): Likewise.
	(prepare_move_operands): Handle complex mov cases here.
	(arc_legitimize_address_0): Remove call to
	arc_legitimize_pic_address.
	(arc_legitimize_address): Remove call to
	arc_legitimize_tls_address.
	* config/arc/arc.md (movqi_insn): Allow Cm3 match.
	(movhi_insn): Likewise.

2019-06-25  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline
	2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn-run.c (main): Set a non-zero return value if the
	kernel does not exit cleanly.
	* config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.

2019-06-25  Andrew Stubbs  <ams@codesourcery.com>

	Backport from mainline
	2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
	for lo-part.

2019-06-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90930
	* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
	flag on new stmts to avoid re-processing them.

2019-06-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90930
	PR tree-optimization/90316
	* tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
	decrement of limit.

2019-06-16  Jeff Law  <law@redhat.com>

	Backport from mainline
	2019-06-16  Prachi Godbole  <prachi.godbole@imgtec.com>
		    Robert Suchanek  <robert.suchanek@mips.com>
	* config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
	and 3rd operands of the fmadd/fmsub/maddv builtin.

2019-06-16  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/64242
	* config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
	frame clobbers and schedule block.
	(builtin_longjmp): Likewise.

2019-06-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/90811
	* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
	instead of and.u%d.

2019-06-07  John David Anglin  <danglin@gcc.gnu.orig>

	PR target/90751
	* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
	Call pa_output_function_label.
	(TARGET_ASM_FUNCTION_PROLOGUE): define.
	* config/pa/pa-protos.h (pa_output_function_label): Declare.
	* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
	to declaration.
	(pa_linux_output_function_prologue): Declare.
	(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
	(pa_output_function_label): New.
	(pa_output_function_prologue): Revise to use pa_output_function_label.
	(pa_linux_output_function_prologue): New.
	* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.

2019-06-06  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-05-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90450
	* tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
	(mem_ref_hasher::equal): Check it.
	(mem_ref_alloc): Initialize it.
	(gather_mem_refs_stmt): Set it.

	2019-05-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90402
	* tree-if-conv.c (tree_if_conversion): Value number only
	the loop body by making the latch an exit of the region
	as well.
	* tree-ssa-sccvn.c (process_bb): Add flag whether to skip
	processing PHIs.
	(do_rpo_vn): Deal with multiple edges into the entry block
	that are not backedges inside the region by skipping PHIs
	of the entry block.

	2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90328
	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
	is valid in the loop nest before using it.
	(initialize_data_dependence_relation): Adjust.
	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
	loop as loop-nest to dr_may_alias_p.

2019-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
	multiplication by a power-of-two value.
	(fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
	and turn the modulo operation into a masking operation.

2019-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/90733
	* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
	with VOIDmode inner operands.

2019-06-05  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline.
	2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
	* doc/sourcebuild.texi: Document mfentry target support.

2019-05-30  Jakub Jelinek  <jakub@redhat.com>

	* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
	to length.

2019-05-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline.
	2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>

	* config/i386/darwin.h: Reject -mfentry*.

2019-05-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline.
	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/82920
	* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
	Darwin.

2019-05-30  Iain Sandoe  <iain@sandoe.co.uk>

	Backport from mainline.
	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/82920
	* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
	(ix86_output_indirect_branch_via_reg): Use output mechanism
	accounting for __USER_LABEL_PREFIX__.
	(ix86_output_indirect_branch_via_push): Likewise.
	(ix86_output_function_return): Likewise.
	(ix86_output_indirect_function_return): Likewise.

2019-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/90329
	* lto-streamer.h (LTO_minor_version): Bump to 1.

	Backported from mainline
	2019-05-16  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/90329
	* tree-core.h (struct tree_decl_common): Document
	decl_nonshareable_flag for PARM_DECLs.
	* tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
	* calls.c (expand_call): Don't try tail call if caller
	has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
	passed on the stack and callee needs to pass any arguments on the
	stack.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
	else if instead of series of mutually exclusive ifs.  Handle
	DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.

2019-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/90543
	* optc-save-gen.awk: In cl_optimization_print, use correct condition
	for var_opt_string printing.  In cl_optimization_print_diff, print
	(null) instead of invoking undefined behavior if one of the
	var_opt_string pointers is NULL and use && instead of first || in the
	guarding condition.  For var_target_other options, handle const char *
	target variables similarly to const char * optimize node variables.

2019-05-28  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
	and DW_OP_GNU_const_index opcodes.

2019-05-24  John David Anglin  <danglin@gcc.gnu.org>

	PR target/90530
	* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
	DImode to SImode in floating-point registers on 64-bit target.
	* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
	register_operand in xmpyu patterns.

2019-05-24  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-05-23  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90570
	* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
	expression similarly to gimplify_decl_expr.

2019-05-22  Uroš Bizjak  <ubizjak@gmail.com>

	Backported from mainline
	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
	%ebx and %ecx bafore calling cpuid with leaf 1 or
	non-constant leaf argument.

	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/90547
	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
	Avoid calling gen_lowpart with CONST operand.

2019-05-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	Backported from mainline
	2019-05-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M
	multilibs.

2019-05-20  Jeff Law  <law@redhat.com>

	Backported from mainline
	2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

	* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
	TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
	and fpxx modes.

2019-05-17  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-05-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/90484
	* tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
	sz0 is equal to sz1, instead return false in that case.

	* omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
	has non-constant expression, force sctx.lane and use two
	argument IFN_GOMP_SIMD_LANE instead of single argument.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
	two argument IFN_GOMP_SIMD_LANE without lhs.
	* tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
	member.
	(LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
	Define.
	(LOOP_REQUIRES_VERSIONING): Or in
	LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
	simd_if_cond.
	(vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
	* tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
	from simd if clause if needed.

	2019-05-15  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
	max_vf to 1.
	* omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
	safelen_int and set loop->dont_vectorize.

	2019-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/90385
	* tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
	arguments of the exit phis.

	PR c++/90383
	* tree-inline.h (struct copy_body_data): Add do_not_fold member.
	* tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
	id->do_not_fold.
	(copy_tree_body_r): Likewise.
	(copy_fn): Set id.do_not_fold to true.

	2019-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/90303
	* ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
	TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.

2019-05-17  Richard Biener  <rguenther@suse.de>

	Backport from mainline
	2019-05-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-alias.h (get_continuation_for_phi): Take walking
	limit by reference.
	(walk_non_aliased_vuses): Take walking limit argument.
	* tree-ssa-alias.c (maybe_skip_until): Take limit and abort
	walking if it is reached instead of just counting.
	(get_continuation_for_phi): Likewise.
	(walk_non_aliased_vuses): Likewise, instead of leaving counter
	limiting to the callback.
	* tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
	(vn_reference_lookup_3): Likewise.
	(vn_reference_lookup_pieces): Likewise.
	(vn_reference_lookup): Likewise.
	* tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
	* tree-ssa-scopedtables.c (vuse_eq): Adjust.
	(avail_exprs_stack::lookup_avail_expr): Likewise.

	2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
	compute target on demand.
	(get_continuation_for_phi): Remove code walking stmts to
	get to a target virtual operand which could end up being
	quadratic.

2019-05-15  Li Jia He  <helijia@linux.ibm.com>

	Backport from mainline.
	2019-05-07  Li Jia He  <helijia@linux.ibm.com>

	* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
	detection.

2019-05-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-05-13  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/90416
	* tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
	string instead of passing the second part as va_arg argument.

2019-05-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-05-13  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/90380
	* gcov.c (handle_cycle): Do not support zero cycle count,
	it should not be possible.
	(path_contains_zero_cycle_arc): New function.
	(circuit): Ignore zero cycle arc counts.

2019-05-14  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-05-13  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/90380
	* gcov.c (enum loop_type): Remove the enum and
	the operator.
	(handle_cycle): Assert that we should not reach
	a negative count.
	(circuit): Use loop_found instead of a tri-state loop_type.
	(get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
	happen.

2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>

	Backport from mainline.
	2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>

	PR target/90357
	* config/mips/mips.c (mips_split_move): Skip forward SRC into
	next insn when the SRC reg is dead.

2019-05-11  Andreas Tobler <andreast@gcc.gnu.org>

	Backport from mainline.
	2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>

	* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
	* config/i386/t-freebsd64: New file.
	* config.gcc: Add the t-freebsd64 for multilib support.

2019-05-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	Backport from mainline.
	2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/89765
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
	to compute vector element selector for both constant and variable
	operands.

2019-05-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
	(do_rpo_vn): Initialize next_value_id.

2019-05-09  Thomas Schwinge  <thomas@codesourcery.com>

	* cif-code.def (CHKP): Remove.

2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	Backport from mainline.
	2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/89424
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
	handling of V1TImode.

2019-05-06  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-05-06  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90312
	* config/i386/i386-options.c (ix86_option_override_internal): Error only
	when -mabi is selected to a non-default version.

2019-05-04  Michael Meissner  <meissner@linux.ibm.com>

	* ChangeLog.ibm: Delete unintentional commit on the wrong branch.
	* REVISION: Likewise.

2019-05-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
	before running VN.

2019-05-03  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 9.1.1.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Backport from mainline.
	2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	PR target/86538
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
	Define __ARM_FEATURE_ATOMICS.

2019-04-30  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-04-30  Martin Liska  <mliska@suse.cz>

	PR translation/90274
	* opts.c (print_filtered_help): Wrap string in _(...).

2019-04-30  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2019-04-27  Martin Liska  <mliska@suse.cz>

	PR middle-end/90258
	* opt-suggestions.c (option_proposer::build_option_suggestions):
	When get_valid_option_values returns empty values, add the
	misspelling candidate.

2019-04-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90273
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
	useless debug stmts.

2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
	varasm.h, and netbsd-protos.h.

2019-04-26  Segher Boessenkool  <segher@kernel.crashing.org>

	PR other/90257
	Revert the revert:
	2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/90178
	Revert:
	2018-11-21  Uros Bizjak  <ubizjak@gmail.com>

	Revert the revert:
	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>

	Revert:
	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-spills.c (lra_final_code_change): Remove useless move insns.

2019-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/90240
	Revert:
	2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
 
	PR tree-optimization/90078
	* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
	checks for infinite_cost overflow.

2019-04-25  Jakub Jelinek  <jakub@redhat.com>

	* DEV-PHASE: Set to prerelease.

2019-04-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/89765
	* gimplify.c (gimplify_expr): Avoid turning a lvalue
	VIEW_CONVERT_EXPR into one operating on an rvalue.

2019-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89929
	* config/i386/i386.c (feature_priority): Moved to file scope.
	(processor_features): Likewise.
	(processor_model): Likewise.
	(_arch_names_table): Likewise.
	(arch_names_table): Likewise.
	(_feature_list): Removed.
	(feature_list): Likewise.
	(_isa_names_table): Moved to file scope.  Add priority.
	(isa_names_table): Likewise.
	(get_builtin_code_for_version): Replace feature_list with
	isa_names_table.  Update error message for P_ZERO priority.

2019-04-25  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (make_pass_phi_only_cprop): Remove.
	* timevar.def (TV_TREE_PHI_CPROP): Likewise.

2019-04-24  Jeff Law  <law@redhat.com>

	PR tree-optimization/90037
	* Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
	* passes.def: Replace all instance of phi-only cprop with the
	lattice propagator.  Move propagation pass from after erroneous
	path isolation to before erroneous path isolation.
	* tree-ssa-phionlycprop.c: Remove.

2019-04-24  Richard Biener  <rguenther@suse.de>

	PR middle-end/90213
	* gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
	by size and BITS_PER_UNIT on poly-wide-ints.

2019-04-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/90194
	* match.pd: Add pattern to simplify view-conversion of an
	empty constructor.

2019-04-24  Clement Chigot  <clement.chigot@atos.net>

	* config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
	OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
	for Go on 32 bit AIX.
	* config/rs6000/aix72.h: Likewise.

2019-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/90193
	* rtl.c (classify_insn): Return JUMP_INSN for asm goto.
	* emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.

2019-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/89952
	* config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
    	from FPRs in reverse order.  Generate REG_CFA_DEF_CFA note also
    	for restored hard frame pointer.
	(s390_sched_dependencies_evaluation): Implement new target hook.
	(TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.

2019-04-24  Claudiu Zissulescu  <claziss@sysnopsys.com>

	* config/arc/arc-options.def: Fix typos and spelling mistakes.
	* config/arc/arc.c (arc_init): Cleanup warning message.
	(arc_override_options): Likewise.

2019-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/90187
	* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
	a register if both if_true and if_false are MEMs.

	PR tree-optimization/90208
	* tree-cfg.c (remove_bb): Move forced labels from removed bbs
	after labels of new_bb, not before them.

	PR tree-optimization/90211
	* tree-parloops.c (try_create_reduction_list): Ignore phi arguments
	which are not SSA_NAMEs.

2018-04-23  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
	AArch64.
	(aarch64_file_end_indicate_exec_stack): Add gnu note section.

2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/87979
	* modulo-sched.c (sms_schedule): Start ii value "mii" should
	not equal zero.

2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/84032
	* modulo-sched.c (ps_insn_find_column): Change condition so that
	branch will always be the last insn in a row inside partial
	schedule.

2019-04-23  Richard Biener  <rguenther@suse.de>

	PR debug/90131
	* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
	dest_single_pred_p argument.
	(remove_forwarder_block): Adjust.
	(remove_forwarder_block_with_phi): Likewise.

2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/89093
	* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
	if used with general-regs-only.
	(arm_conditional_register_usage): Don't add non-general regs if
	general-regs-only.
	(arm_valid_target_attribute_rec): Handle general-regs-only.
	* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
	general-regs-only.
	(TARGET_HARD_FLOAT_SUB): Define.
	(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
	(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
	(TARGET_REALLY_IWMMXT2): Likewise.
	* config/arm/arm.opt: Add -mgeneral-regs-only.
	* doc/extend.texi: Document ARM general-regs-only target.
	* doc/invoke.texi: Document ARM -mgeneral-regs-only.

2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/90078
	* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
	checks for infinite_cost overflow.

2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/90021
	* tree-chrec.c (evolution_function_is_univariate_p): New parameter
	and check univariate against it.
	* tree-chrec.h (evolution_function_is_univariate_p): New parameter.
	* tree-data-ref.c (add_other_self_distances): Pass new argument.

2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/90178
	Revert:
	2018-11-21  Uros Bizjak  <ubizjak@gmail.com>

	Revert the revert:
	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>

	Revert:
	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-spills.c (lra_final_code_change): Remove useless move insns.

2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* config/rs6000/rs6000.md (group_end_nop): Emit insn register
	names using operand format, rather than hard-wired.
	(speculation_barrier): Likewise.

2019-04-19  Segher Boessenkool  <segher@kernel.crashing.org>

	PR tree-optimization/88055
	* tree-call-cdce.c (comparison_code_if_no_nans): New function.
	(gen_one_condition): Use it if !HONOR_NANS.

2019-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/90139
	* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
	assign_temp instead of gen_reg_rtx.

2019-04-19  Christophe Lyon  <christophe.lyon@linaro.org>

	PR translation/90118
	* config/aarch64/aarch64.c (aarch64_override_options_internal):
	Add missing space before %<.

2019-04-18  Peter Bergner  <bergner@linux.ibm.com>

	PR rtl-optimization/87871
	* ira-lives.c (make_object_dead): Don't add conflicts to
	TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.

2019-04-18  Martin Sebor  <msebor@redhat.com>

	PR middle-end/89797
	* tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
	* config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
	assuming type size fits in SHWI.

2019-04-18  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/85051
	* ipa-inline.c (flatten_function): New parameter UPDATE.
	(ipa_inline, early_inliner): Use it.

2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>

	* fold-const.c (int_const_binop): Return early on failure.

2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/85164
	* combine.c (force_int_to_mode): Cast the argument rather than
	the result of known_alignment.
	* rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.

2019-04-18  Richard Biener  <rguenther@suse.de>

	PR debug/90131
	* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
	out from ...
	(remove_forwarder_block): ... here.
	(remove_forwarder_block_with_phi): Also move debug stmts here.

2019-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR translation/79183
	* gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
	inform where appropriate.

2019-04-18  Richard Biener  <rguenther@suse.de>

	* tree.c (get_qualified_type): Put found type variants at the
	head of the variant list.

2018-04-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.

2019-04-17  Hongtao Liu  <hongtao.liu@intel.com>

	PR target/90125
	* config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
	_mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
	_mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
	_mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
	_mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.

2019-04-17  Peter Bergner  <bergner@linux.ibm.com>

	* ira-conflicts.c (print_allocno_conflicts): Always print something,
	even for allocno's with no conflicts.
	(print_conflicts): Print an extra newline.

2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* auto-inc-dec.c (attempt_change): Set the alignment of the
	temporary memory to that of the original.

2019-04-17  Joao Moreira  <jmoreira@suse.de>

	* targhooks.c (default_print_patchable_function_entry): Emit
	__patchable_function_entries section with writable flags to allow
	relocation resolution.

2019-04-17  Jonny Grant  <jg@jguk.org>

	* collect2.c (main): Change gcc.gnu.org URL to HTTPS.

2019-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/90095
	* internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
	on lowpart SUBREGs.

2019-04-17  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_init): Format diagnostic string.
	(arc_override_options): Likewise.
	(check_if_valid_regno_const): Likewise.
	(arc_reorg): Likewise.

2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/17108
	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
	name.
	(rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
	name.
	* config/rs6000/rs6000.md (bits): Add entries for SF and DF.
	(*movdi_update1): Use Pmode.
	(movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
	(movdi_<mode>_update_stack): Rename to ...
	(movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
	use Pmode.
	(*movsi_update1): Use Pmode.
	(*movsi_update2): Use Pmode.
	(movsi_update): Rename to ...
	(movsi_<mode>_update): ... this.  Use Pmode.
	(movsi_update_stack): Fix condition.
	(*movhi_update1): Use Pmode.  Fix argument to
	avoiding_indexed_address_p.
	(*movhi_update2): Ditto.
	(*movhi_update3): Ditto.
	(*movhi_update4): Ditto.
	(*movqi_update1): Ditto.
	(*movqi_update2): Ditto.
	(*movqi_update3): Ditto.
	(*movsf_update1, *movdf_update1): Merge, rename to...
	(*mov<mode>_update1): This.  Use Pmode.  Fix argument to
	avoiding_indexed_address_p.  Add "size" attribute.
	(*movsf_update2, *movdf_update2): Merge, rename to...
	(*mov<mode>_update2): This.  Ditto.
	(*movsf_update3): Use Pmode.  Fix argument to
	avoiding_indexed_address_p.
	(*movsf_update4): Ditto.
	(allocate_stack): Simplify condition.  Adjust pattern names.

2019-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/89093
	* config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
	whitespace at the start of target attribute string.

2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>

	PR target/84369
	* config/rs6000/power9.md: Add store forwarding bypass.

2019-04-16  Alexandre Oliva <aoliva@redhat.com>

	PR debug/89528
	* valtrack.c (dead_debug_insert_temp): Reset debug references
	to the return value of a call being removed.

2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_register_move_cost): Remove.
	* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
	implement target hook.
	(arc_memory_move_cost): New function.
	(TARGET_REGISTER_MOVE_COST): Define.
	(TARGET_MEMORY_MOVE_COST): Likewise.
	* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
	(MEMORY_MOVE_COST): Likewise.

2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (sibcall_insn): Use Rcd constraint.
	(sibcall_value_insn): Likewise.
	* config/arc/constraints.md (Rs5): Remove.

2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
	for last two fake registers.
	(arc_conditional_register_usage): Make sure fake frame and arg
	pointer regs are in general regs class.
	(FRAME_POINTER_MASK): Remove.
	(RETURN_ADDR_MASK): Remove.
	(arc_must_save_register): Use hard frame regnum.
	(frame_restore_reg): Use hard_frame_pointer_rtx.
	(arc_save_callee_saves): Likewise.
	(arc_restore_callee_saves): Likewise.
	(arc_save_callee_enter): Likewise.
	(arc_restore_callee_leave): Likewise.
	(arc_save_callee_milli): Likewise.
	(arc_eh_return_address_location): Likewise.
	(arc_check_multi): Use hard frame regnum.
	(arc_can_eliminate): Likewise.
	* config/arc/arc.h (FIXED_REGISTERS): Make FP register available
	for register allocator.
	(REG_CLASS_CONTENTS): Update GENERAL_REGS.
	(REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
	(FRAME_POINTER_REGNUM): Change it to a fake register.
	(HARD_FRAME_POINTER_REGNUM): Defined.
	(ARG_POINTER_REGNUM): Change it to a new fake register.
	(ELIMINABLE_REGS): Update.
	(REGISTER_NAMES): Update names.
	* config/arc/arc.md (LP_START): Remove.
	(LP_END): Likewise.
	(shift_si3_loop): Update pattern.

2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
	to avoid delay slot scheduling.
	(arc_must_save_register): Don't save SP.
	* config/arc/arc.md (stack_tie): Remove.
	(UNSPEC_ARC_STKTIE): Likewise.

2019-04-16  Kito Cheng  <kito.cheng@gmail.com>
	    Shiva Chen  <shiva0217@gmail.com>

	* config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
	code gen with large shift amount.

2019-04-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
	subreg.

2019-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/90096
	* config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
	print -m64/-mx32/-m32 if it is true.
	(ix86_debug_options, ix86_function_specific_print): Pass true as
	ADD_ABI_P to ix86_target_string.
	(ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
	ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
	or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.

	PR rtl-optimization/90082
	* dce.c (can_delete_call): New function.
	(deletable_insn_p, mark_insn): Use it.

	PR tree-optimization/90090
	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
	throw internally.
	(is_division_by_square): Likewise.  Formatting fix.

2019-04-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/56049
	* tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
	equality check if alias-set zero will prevail.

2019-04-15  Jeff Law  <law@redhat.com>

	* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
	size and alignment as unsigned.
 
2019-04-15  Richard Biener  <rguenther@suse.de>

	PR debug/90074
	* tree-loop-distribution.c (destroy_loop): Preserve correct
	debug info.

2019-04-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90071
	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
	abnormal operands from def stmts.

2019-04-15  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/89794
	* combine.c (count_auto_inc): New function.
	(try_combine): Count how many auto_inc expressions there were in the
	original instructions.  Ensure we have the same number in the new
	instructions.  Remove the code that tried to ensure auto_inc side
	effects on i1 and i0 are not lost.

2019-04-15  Richard Biener  <rguenther@suse.de>

	PR ipa/88936
	* tree.h (auto_var_p): Declare.
	* tree.c (auto_var_p): New function, split out from ...
	(auto_var_in_fn_p): ... here.
	* tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
	member.
	(new_var_info): Initialize it.
	(set_uids_in_ptset): Also set the shadow variable uid if required.
	(ipa_pta_execute): Postprocess points-to solutions assigning
	shadow variable uids for locals that may reach their containing
	function recursively.
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
	assert but instead check whether the points-to solution is
	a singleton.

2019-04-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/pr89693
	* cgraph.c (clone_of_p): Loop over clone chain for each step in
	the thunk chain.

2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>

	* config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.

2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
	    Kito Cheng  <kito.cheng@gmail.com>
	    Shiva Chen  <shiva0217@gmail.com>

	* config/nds32/nds32-md-auxiliary.c
	(nds32_legitimize_pic_address): Use new PIC pattern.
	(nds32_legitimize_tls_address): Use new TLS pattern.
	(nds32_output_symrel): New.
	* config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
	(nds32_alloc_relax_group_id): Ditto.
	* config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
	(nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
	relax_group_id.
	(nds32_group_tls_insn): Ditto.
	(nds32_group_float_insns): Ditto.
	* config/nds32/nds32.md (tls_le): New.
	(sym_got): Ditto.

2019-04-15  Chung-Ju Wu  <jasonwucj@gmail.com>

	* configure: Add nds32 target for dwarf2 debug_line checking.
	* configure.ac: Regenerated.

2019-04-14  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/89358
	* ipa-devirt.c (skip_in_fields_list_p): New.
	(odr_types_equivalent_p): Use it.

2019-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/89093
	* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
	instead of strncmp when checking for thumb and arm.  Formatting fixes.

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* doc/install.texi: Document --with-target-system-zlib.

2019-04-12  Martin Sebor  <msebor@redhat.com>

	PR c/88383
	PR c/89288
	PR c/89798
	PR c/89797
	* targhooks.c (default_vector_alignment): Avoid assuming
	argument fits in SHWI.
	* tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
	a shift expression.
	* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89965
	* dce.c: Include rtl-iter.h.
	(struct check_argument_load_data): New type.
	(check_argument_load): New function.
	(find_call_stack_args): Check for loads from stack slots still tracked
	in sp_bytes and punt if any is found.

	* config/mips/loongson-mmiintrin.h: Fix up #error message.

2019-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
	* doc/invoke.texi (max-lto-streaming-paralellism): New --param.

2019-04-12  Martin Liska  <mliska@suse.cz>

	PR middle-end/89970
	* multiple_target.c (create_dispatcher_calls): Wrap ifunc
	in error message.
	(separate_attrs): Handle multiple 'default's.
	(expand_target_clones): Rework error handling code.

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/87532
	* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
	mode of vector rather than mode of destination for move instruction.
	* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
	Use QI inner mode with V16QI vector mode.

2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/52726
	* config/tilepro/tilepro.c (tilepro_print_operand): Use just
	"invalid %%t operand" in output_operand_lossage message.

2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/predicates.md (permute_pattern_operand): New
	predicate.
	* config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
	operand for the permute pattern.
	("*vec_perm<mode>"): New insn definition.
	("bswap<mode>"): Generate the permute pattern operand in the
	expander and perform the operand reloads for pre arch13 level
	already.
	("*bswap<mode>_emu"): Rename to ...
	("*bswap<mode>"): ... this. And make the splitter vxe2 only.
	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
	Add the USE operand for the permute pattern.
	("*vec_set_bswap_vec<mode>"): Likewise.

2019-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/89946
	* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
	and gcc_unreachable if it fails, just call tree_to_uhwi which
	verifies that too.  Test TREE_CHAIN instead of list_length > 1.
	Start warning message with a lower-case letter.  Formatting fixes.

	PR rtl-optimization/90026
	* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
	successors, look for BARRIERs inside of the whole BB_FOOTER chain
	rather than just at the start of it.  If e->src BB_FOOTER is not NULL
	in cfglayout mode, use emit_barrier_after_bb.

2018-04-11  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
	New Instruction.

2019-04-11  Tom de Vries  <tdevries@suse.de>

	* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
	max macro using statement expression.

2019-04-11  David Edelsohn  <dje.gcc@gmail.com>

	* xcoffout.h (xcoff_private_rodata_section_name): Declare.
	* xcoffout.c (xcoff_private_rodata_section_name): Define.
	* config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
	read_only_private_data_section using xcoff_private_rodata_section_name.
	(rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.

2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/90016
	* config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.

2019-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89965
	* dce.c (sp_based_mem_offset): New function.
	(find_call_stack_args): Use sp_based_mem_offset.

2019-04-11  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.

2019-04-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90020
	* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
	* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
	* tree-ssa-pre.c (compute_avail): Use it to not put
	possibly trapping references after a call that might not
	return into EXP_GEN.
	* gcse.c (compute_hash_table_work): Do not elide
	marking a block containing a call if the call might not
	return.

2019-04-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90018
	* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
	Test both SLP and interleaving variants.

2019-04-11  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/8561.md: New file.
	* config/s390/driver-native.c (s390_host_detect_local_cpu):
	Add arch13 cpu model.
	* config/s390/s390-opts.h (enum processor_type): Likewise.
	* config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
	(s390_get_unit_mask): Likewise.
	(s390_is_fpd): Likewise.
	(s390_is_fxd): Likewise.
	* config/s390/s390.h (s390_tune_attr): Likewise.
	* config/s390/s390.md: Include arch13 pipeline description.
	* config/s390/s390.opt: Add arch13.

2018-04-10  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
	New prototype.
	* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
	New function.
	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
	New instruction.
	(*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
	(*aarch64_bfi<GPI:mode>4_noand): Ditto.
	(*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
	(*aarch64_bfi<GPI:mode>4_noshift): Ditto.

2019-04-10  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Optimize Options): Change "Nevertheless" to
	"Although" in -fipa-icf documentation.

	* doc/invoke.texi (Debugging Options): Explicitly state the semantics
	of using multiple -g options.

2019-04-10  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/89959
	* doc/gcov.texi: Make documentation of -x option
	more precise.

2019-04-10  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
	member.
	(DR_GROUP_SAME_DR_STMT): Remove.
	* tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
	replace with assert.
	(vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
	(vect_record_grouped_load_vectors): Remove unreachable code.

2019-04-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/90016
	* config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
	obsolete reference to N.

2019-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/90025
	* expr.c (store_expr): Set properly size on the MEM passed to
	clear_storage.

	PR c++/90010
	* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
	with strlen in between hostsz-3 and hostsz-1 inclusive when no
	translation is needed, and when translation is needed, only append
	... if the string length is hostsz or more bytes long.  Avoid using
	strncpy or strcat.

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR target/90024
	* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
	* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
	into three.
	* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
	differences directly.
	(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.

2019-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR translation/90011
	* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
	from diagnostics.
	* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
	diagnostics.
	* config/riscv/freebsd.h (LINK_SPEC): Likewise.
	* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
	* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
	trailing space from -gsplit-dwarf diagnostics.

	PR tree-optimization/89998
	* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
	instead of integer_type_node if possible, don't add ranges if return
	type is not compatible with int.
	* gimple-fold.c (gimple_fold_builtin_sprintf,
	gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
	integer_type_node.

2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Use GENERATOR_CFLAGS for all generators.
	* doc/install.texi: Document the new config.

2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
	use gimple_expr_type for load and store calls.  Skip over the
	condition argument in a conditional internal function.
	Protect use of TREE_INT_CST_LOW.

2019-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/90015
	* config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
	(riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
	trailing period from it too.

2019-04-08  wu yuan  <wuyuan5@huawei.com>

	* config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
	* config/aarch64/aarch64.md : Add "tsv110.md"
	* config/aarch64/tsv110.md: New file.

2019-04-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90006
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
	calls like lrint.

2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>

	PR target/83033
	* config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
	construction.
	(fma_root_node): Likewise.
	(func_fma_steering): Likewise.

2019-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89865
	* config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.

	PR rtl-optimization/89865
	* config/i386/i386.md
	(SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
	numbers not to clash with the additional operands[4].
	(peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
	with extra register copy in the middle.

2019-04-08  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/89961
	* doc/gcov.texi: Document data_file.
	* gcov.c (generate_results): Add data_info into JSON output.

2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/89725
	* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
	loop's chrec as invariant symbol.
	* tree-chrec.h (chrec_contains_symbols): New parameter.
	* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
	(build_classic_dist_vector_1, add_other_self_distances): Bypass access
	function of loops not in DDR's loop_nest.
	* tree-data-ref.h (index_in_loop_nest): Add unreachable check.

2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>

	PR target/89623
	* config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
	Mask.

2019-04-07  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89945
	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
	Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.

2019-04-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* sched-deps.c (sched_macro_fuse_insns): Check return value of
	targetm.fixed_condition_code_regs.

2019-04-05  Richard Biener  <rguenther@suse.de>

	PR debug/89892
	PR debug/89905
	* tree-cfgcleanup.c (remove_forwarder_block): Always move
	debug bind stmts but reset them if they are not valid at the
	destination.

2019-04-05  Martin Liska  <mliska@suse.cz>

	PR translation/89936
	* collect-utils.c (collect_execute): Use %< and %>, or %qs in
	order to wrap keywords or arguments.
	* collect2.c (main): Likewise.
	(scan_prog_file): Likewise.
	(scan_libraries): Likewise.
	* common/config/riscv/riscv-common.c
	(riscv_subset_list::parsing_subset_version): Likewise.
	(riscv_subset_list::parse_std_ext): Likewise.
	* config/aarch64/aarch64.c (aarch64_override_options_internal):
	Likewise.
	* config/arm/arm.c (arm_option_override): Likewise.
	* config/cris/cris.c (cris_print_operand): Likewise.
	* config/darwin-c.c (darwin_pragma_options): Likewise.
	(darwin_pragma_unused): Likewise.
	(darwin_pragma_ms_struct): Likewise.
	* config/ft32/ft32.c (ft32_print_operand): Likewise.
	* config/i386/i386.c (print_reg): Likewise.
	(ix86_print_operand): Likewise.
	* config/i386/xm-djgpp.h: Likewise.
	* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
	* config/m32c/m32c.c (m32c_option_override): Likewise.
	* config/msp430/msp430.c (msp430_option_override): Likewise.
	* config/nds32/nds32.c (nds32_option_override): Likewise.
	* config/nvptx/mkoffload.c (main): Likewise.
	* config/rx/rx.c (rx_print_operand): Likewise.
	(valid_psw_flag): Likewise.
	* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
	(vms_pragma_nomember_alignment): Likewise.
	(vms_pragma_extern_model): Likewise.
	* lto-wrapper.c (compile_offload_image): Likewise.
	* omp-offload.c (oacc_parse_default_dims): Likewise.
	* symtab.c (symtab_node::verify_base): Likewise.
	* tlink.c (recompile_files): Likewise.
	(start_tweaking): Likewise.
	* tree-profile.c (parse_profile_filter): Likewise.

2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/89956
	* tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
	multiple negates of the same value.

2019-04-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/89957
	PR middle-end/89911
	* builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
	have the same precision since the function crashes otherwise.
	* calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
	has non-zero arguments.

2019-04-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/89934
	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
	out if the number of arguments is less than expected.

2019-04-04  Jeff Law  <law@redhat.com>

	PR rtl-optimization/89399
	* ree.c (combine_set_extension): Use single_set rather than
	digging into PATTERN for items on the candidate list.
	(combine_reaching_defs): Likewise.

2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/46590
	* loop-invariant.c (find_defs): Move df_remove_problem and
	df_process_deferred_rescans to move_invariants.
	Move df_live_add_problem and df_live_set_all_dirty calls
	to move_invariants.
	(move_invariants): Likewise.
	(move_loop_invariants): Likewise, making the df_live calls
	conditional on -O.  Remove the problem again if we added it
	locally.

2019-04-03  qing zhao  <qing.zhao@oracle.com>

	PR tree-optimization/89730
	* ipa-inline.c (can_inline_edge_p): Delete the checking for
	-flive-patching=inline-only-static.
	(can_inline_edge_by_limits_p): Add the checking for
	-flive-patching=inline-only-static and grant always_inline
	even when -flive-patching=inline-only-static is specified.

2019-04-03  Jeff Law  <law@redhat.com>

	PR rtl-optimization/81025
	* reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.

2019-04-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84101
	* tree-vect-stmts.c: Include explow.h for hard_function_value,
	regs.h for hard_regno_nregs.
	(cfun_returns): New helper.
	(vect_model_store_cost): When vectorizing a store to a decl
	we return and the function ABI returns in a multi-reg location
	account for the possible spilling that will happen.

2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_legitimate_address_p): Reject long
	displacement addresses for vector mode operands.

2019-04-03  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (GMASK_LEN): Define.
	(arc_restore_callee_saves): Restore first blink when
	!optimize_size.

2019-04-03  Sudakshina Das  <sudi.das@arm.com>

	* doc/extend.texi: Add deprecated comment on sign-return-address
	function attribute and add mbranch-protection.
	* doc/invoke.texi: Add bti to the options for mbranch-protection.

2019-04-03  Richard Biener  <rguenther@suse.de>

	PR lto/89896
	* lto-wrapper.c (run_gcc): Avoid implicit rules making
	the all target phony.

2019-04-02  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89902
	PR target/89903
	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
	Return false for variable DImode shifts.
	(dimode_scalar_chain::compute_convert_gain): Do not handle
	register count operand in variable DImode shifts.
	(dimode_scalar_chain::make_vector_copies): Remove support to copy
	count argument of a variable shift instruction to a vector register.
	(dimode_scalar_chain::convert_reg): Remove support to convert
	count argument of a variable shift instruction.

2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/84206
	* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
	iterating over loop headers.

2019-04-02  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/85876
	* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
	beyond the original fence.

2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* config.gcc: Mark spu* targets as deprecated/obsolete.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions. Remove unused types.
	* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
	(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
	(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
	overloaded builtins.
	(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
	(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
	* config/s390/vecintrin.h (vec_float): New builtin macro definition.
	(vec_double, vec_signed, vec_unsigned): Define to use the new
	overloaded builtins.
	* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
	Remove expanders.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: New builtin function type
	definitions.
	* config/s390/s390-builtins.def (s390_vec_search_string_cc)
	(s390_vec_search_string_until_zero_cc): New overloaded builtins.
	(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
	(s390_vstrszh, s390_vstrszf): New low-level builtins.
	* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
	constant definitions.
	* config/s390/vecintrin.h (vec_search_string_cc)
	(vec_search_string_until_zero_cc): New builtin name definitions.
	* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
	expanders.
	("vec_vstrs<mode>"): New insn definition.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function
	types.
	* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
	New overloaded builtins.
	(s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
	s390_vsrd.
	* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
	(UNSPEC_VEC_SLDBYTE): ... this.
	(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
	* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
	definitions.
	* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
	Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
	("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
	New insn definition.
	* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
	* config/s390/vector.md (V_HW_HSD): ... here.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
	* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
	("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
	("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
	New insn definitions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function type.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_reve and low-level builtins for s390_vler and s390_vster.
	* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
	* config/s390/vecintrin.h (vec_reve): New builtin name definition.
	* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
	("eltswap<mode>"): New expander.
	("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
	insn definitions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new builtin function types.
	* config/s390/s390-builtins.def: Add overloaded builtin
	s390_vec_revb. Add low-level builtins for vlbr and vstbr
	instructions.
	* config/s390/vecintrin.h (vec_revb): New builtin name definition.
	* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
	("bswap<mode>"): New expander.
	("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
	vector builtin version number in __VEC__.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
	iterators.
	(SFSI): New mode attribute.
	("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
	("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
	rename to ...
	("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
	("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
	("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
	("floatsi<mode>2"): Add wcefb instruction.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("xde"): Extend mode attribute to vector types.
	* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
	mode iterators.
	("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
	("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
	support 32 bit fp-int conversions. Rename to ...
	("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
	("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
	("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
	... to these.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
	if-then-else constructs if we can use the select instruction.
	* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.md ("*popcountdi_arch13_cc")
	("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
	definition.
	("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
	Append _z196 to make it ...
	("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
	("popcounthi2_z196"): ... this.
	("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
	("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_canonicalize_comparison): Convert
	certain compares for arch13 in order to make use of the condition
	code result produced by the new instructions.
	(s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
	nxrk, and nxgrk instruction patterns.
	* config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
	(inv_no): Add new code iterator together with some attributes.
	("*andc_split_<mode>"): Disable splitter for arch13.
	("*<ANDOR:bitops_name>c<GPR:mode>_cc")
	("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
	("*<ANDOR:bitops_name>c<GPR:mode>")
	("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
	("*n<ANDOR:inv_bitops_name><mode>_cconly")
	("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
	("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.

2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): New
	entry for arch13.
	* config.gcc: Support arch13 with the --with-arch= configure flag.
	* config/s390/driver-native.c (s390_host_detect_local_cpu):
	* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
	* config/s390/s390.c (s390_get_sched_attrmask)
	(s390_get_unit_mask): Add PROCESSOR_ARCH13.
	* config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
	* config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
	(TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
	(TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
	definitions.
	* config/s390/s390.opt: Support arch13 as processor type in
	command line options.

2019-04-02  Martin Liska  <mliska@suse.cz>

	PR translation/89912
	* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
	Fix param description of graphite-max-arrays-per-scop.

2019-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
	(ASAN_CC1_SPEC): Use it in 64-bit mode.
	* config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/85412
	* sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
	sel_sched_region_1, not after.

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/86928
	* sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
	compute_live if necessary.
	(sel_redirect_edge_and_branch): Likewise.

2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89865
	* ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
	register if it is a part of small class.

2019-04-01  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/87273
	* sel-sched-ir.c (merge_fences): Remove assert.

2019-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/46590
	* domwalk.h (dom_walker::dom_walker): Consolidate constructors.
	(dom_walker::m_reachability): Add in place of...
	(dom_walker::m_skip_unreachable_blocks): ...this.
	* domwalk.c (dom_walker::dom_walker): Consoliate constructors.
	Move complex initialization ...
	(dom_walker::walk): Here.  Especially compute m_bb_to_rpo
	lazily and initialize edge flags on each invocation.
	(dom_walker::bb_reachable): Use m_reachability.

2019-04-01  Martin Liska  <mliska@suse.cz>

	PR driver/89861
	* opt-suggestions.c (option_proposer::build_option_suggestions):
	Add variant without any argument in order to provide better
	hints.

2019-04-01  Richard Biener  <rguenther@suse.de>

	PR c/71598
	* gimple.c: Include langhooks.h.
	(gimple_get_alias_set): Treat enumeral types as the underlying
	integer type.

2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/89862
	* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
	that operates on the full registers for WORD_REGISTER_OPERATIONS
	architectures.

2019-03-29  Jim Wilson  <jimw@sifive.com>

	* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
	Clear MASK_RVC and then set if C subset supported.

2019-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/89872
	* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
	non-addressable complit into its initializer if it is volatile.

2019-03-29  Roman Zhuykov  <zhroma@ispras.ru>

	* opts-common.c (integral_argument): Set errno properly in one case.

2019-03-29  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Remove -Wchkp from documentation.

2019-03-29  Martin Liska  <mliska@suse.cz>

	* dbgcnt.c (print_limit_reach): New function.
	(dbg_cnt): Use it.

2019-03-29  Martin Liska  <mliska@suse.cz>

	* dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
	(dbg_cnt_process_opt): Parse first tokens aas
	dbg_cnt_process_single_pair is also using strtok.

2019-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/87485
	* function.c (expand_function_end): Move stack_protect_epilogue
	before loading of return value into hard register(s).

2019-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89621
	* tree-inline.h (struct copy_body_data): Add
	dont_remap_vla_if_no_change flag.
	* tree-inline.c (remap_type_3, remap_type_2): New functions.
	(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
	and remap_type_2 returns false.
	* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
	Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
	only from where it is copied to nested contexts.

2019-03-28  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89865
	* config/i386/i386.md (RMW operation with LEA peephole):
	Use LEAMODE mode attribute instead of SWI mode iterator for
	LEA pattern.

2019-03-28  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89848
	* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
	Also process XEXP (src, 0) of a shift insn.

2019-03-28  David Malcolm  <dmalcolm@redhat.com>

	PR middle-end/89725
	* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
	Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.

2019-03-28  Jakub Jelinek  <jakub@redhat.com>

	* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
	test.
	(cprop_hardreg_bb, cprop_hardreg_debug): New functions.
	(pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
	immediately after first one with df_analyze in between, but rather
	process all bbs, queueing ones that need second pass in a worklist,
	df_analyze, process queued debug insn changes and if second pass is
	needed, process bbs from worklist, df_analyze, process queued debug
	insns again.

	* rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
	or CALL_P instead of INSN_P && !DEBUG_INSN_P.
	(INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.

2019-03-28  Jonathan Wakely  <jwakely@redhat.com>

	PR c/79022
	* gengtype.h (create_nested_ptr_option): Fix parameter names to match
	definition.

2019-03-27  Mateusz B  <mateuszb@poczta.onet.pl>

	PR target/85667
	* config/i386/i386.c (ix86_function_value_1): Call the newly added
	function for 32-bit MS_ABI.
	(function_value_ms_32): New function.

2019-03-27  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.md (CC_SAVE_REG): New constant.
	(movdi): Call gen_movdi_symbol_save_scc.
	(gen_movdi_symbol_save_scc): New insn and split.

2019-03-27  Peter Bergner  <bergner@linux.ibm.com>

	PR rtl-optimization/89313
	* function.c (matching_constraint_num): New static function.
	(match_asm_constraints_1): Use it.  Fixup white space and comment.
	Don't replace inputs with non-matching constraints which conflict
	with early clobber outputs.

2019-03-27  Jeff Law  <law@redhat.com>


	PR rtl-optimization/87761
	PR rtl-optimization/89826
	* regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
	slightly later.
	(pass_cprop_hardreg::execute): Call df_analyze after adding the
	note problem to get REG_DEAD/REG_UNUSED notes updated.

2019-03-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89463
	* tree-ssa-dce.c (remove_dead_stmt): Take output vector to
	queue edges to remove.
	(eliminate_unnecessary_stmts): Remove dead PHIs alongside
	dead stmts.  Delay edge removal until PHIs are removed to
	make debug-stmt creation not confused by seemingly degenerate
	PHIs.

2019-03-27  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
	throughout file.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.

2019-03-27  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
	assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.

2019-03-26  Andrew Waterman  <andrew@sifive.com>
	    Jim Wilson  <jimw@sifive.com>

	* config/riscv/generic.md (generic_alu, generic_load, generic_store)
	(generic_xfer, generic_branch, generic_imul, generic_idivsi)
	(generic_idivdi, generic_fmul_single, generic_fmul_double)
	(generic_fdiv, generic_fsqrt): Add check for generic tune.
	(generic_alu): Add auipc to type list.
	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
	(riscv_microarchitecture): Declare.
	* config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
	* config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
	field.
	(riscv_microarchitecture): New.
	(sifive_7_tune_info): New.
	(riscv_cpu_info_table): Add microarchitecture value for rocket and
	size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
	entries.
	(riscv_store_data_bypass_p): New.
	(riscv_option_override): Set riscv_microarchitecture from
	cpu->microarchitecture.
	* config/riscv/riscv.md: Include sifive-7.md.
	(type): Add auipc.
	(tune): New.
	(auipc<mode>): Change type to auipc.
	(restore_stack_nonlocal): New.
	* config/riscv/sifive-7.md: New.
	* doc/invoke.texi (RISC-V Options): Update mtune docs.

2019-03-26  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89827
	* config/i386/i386.c (dimode_scalar_chain::convert_reg):
	Also process XEXP (src, 0) of a shift insn.

2019-03-26  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (remap_gimple_stmt): Cache gimple_block.
	(copy_debug_stmt): Likewise.
	(expand_call_inline): Likewise.
	(copy_bb): Avoid redundant lookup & set of gimple_block.
	* gimple-low.c (lower_gimple_return): Likewise.
	(lower_builtin_setjmp): Likewise.

2019-03-26  Jakub Jelinek  <jakub@redhat.com>

	* hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
	is constant 0, turn into static const data member initialized to false.
	(hash_table::hash_table): Only initialize m_gather_mem_stats #if
	GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.

2019-03-26  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* mem-stats.h (mem_alloc_description::unregister_descriptor): New
	method.
	(mem_alloc_description::release_object_overhead): Fix comment typos.
	* hash-table.h (hash_table::~hash_table): Call
	release_instance_overhead only if m_entries is non-NULL, otherwise
	call unregister_descriptor.

2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/81740
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
	In case of outer loop vectorization, check for backward dependence
	at the inner loop if outer loop dependence is reversed.

2019-03-26  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
	rs6000_vector_mem init.  Correct wI and wJ comment.

2019-03-25  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/88347
	PR rtl-optimization/88423
	* sched-deps.c (sched_analyze_insn): Take into account that for
	tablejumps the barrier appears after a label and a jump_table_data.

2019-03-25  Martin Sebor  <msebor@redhat.com>

	PR c/89812
	* c-common.c (check_user_alignment): Rename local.  Correct maximum
	alignment in diagnostic.  Avoid assuming argument fits in SHWI,
	convert it to UHWI when it fits.

2019-03-25  Johan Karlsson <johan.karlsson@enea.com>

	PR debug/86964
	* dwarf2out.c (premark_used_variables): New function.
	(prune_unused_types_walk): Do not mark not premarked external
	variables.
	(prune_unused_types): Call premark_used_variables.

2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89676
	* lra-constraints.c (curr_insn_transform): Do match reload for
	early clobbers when the match was successful only for different
	registers.

2019-03-25  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (Common Type Attributes): Document vector_size.
	(Common Variable Attributes): Mention size constraint.  Correct
	quoting and typos.
	(Vector Extensions): Use @dfn when defining bas type.  Clarify
	base type and size constraints.

2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89789
	* tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
	changes from non-undefined back to undefined.

2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>

	* dwarf2out.c (comp_dir_string): cached_wd could be set to both a
	heap string and a gc string, but since this variable is unknown to
	ggc the gc string might get reused and corrupted. Fixed by always
	using a heap string.

2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89779
	* tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
	to remove IV defs, delay actual removal.
	(tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
	(tree_ssa_iv_optimize): Remove eliminated IV defs at the
	very end, properly also reset loop control IV information.

2019-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89802
	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
	move EH data to folded stmt.

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Remove few unused types and
	fix sort order for others.

2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-c.c (s390_fn_types_compatible): Print the
	expected and found types with -mdebug during builtin matching.

2019-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/89790
	* fold-const.c (operand_equal_p): Revert last change with
	updated comment.

2019-03-24  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
	notes for the result of the __tls_get_addr calls.
	* config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.

2019-03-24  Jeff Law  <law@redhat.com>

	* config/bfin/bfin.md (movpdi): Fix length for alternative 1.

	PR rtl-optimization/87761
	* regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
	not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
	as needed.
	(pass_cprop_hardreg::execute): Add df note problem and defer insn
	rescans.  Reprocess blocks as needed, calling df_analyze before
	reprocessing.  Always call df_analyze before fixing up debug bind
	insns.

2019-03-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
	big endian.

2019-03-22  Andrew Pinski  <apinski@marvell.com>

	* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
	attrribute for uxtw.

2019-03-26  Jeff Law  <law@redhat.com>

	PR rtl-optimization/87761
	* config/mips/mips-protos.h (mips_split_move): Add new argument.
	(mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
	(mips_split_move): Accept new INSN argument.  Try to forward SRC
	into the next instruction.
	(mips_split_move_insn): Pass INSN through to mips_split_move.

2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89676
	* lra-constraints.c (curr_insn_transform): Do match reload for
	early clobbers even if the match was successful.

2019-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/87481
	* doc/invoke.texi (-fconstexpr-ops-limit=): Document.

2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.

2019-03-22  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
	<avx512>_fmsub_<mode>_mask3<round_name>,
	<avx512>_fnmadd_<mode>_mask3<round_name>,
	<avx512>_fnmsub_<mode>_mask3<round_name>,
	avx512f_vmfmadd_<mode>_mask3<round_name>,
	avx512f_vmfmsub_<mode>_mask3<round_name>,
	*avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
	instead of register_operand and %v instead of v for match_operand 1.
	(avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
	(*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
	<round_nimm_predicate> instead of register_operand and %v instead of v
	for match_operand 1.

	* config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
	<avx512>_fmadd_<mode>_mask3<round_name>,
	<avx512>_fmsub_<mode>_mask<round_name>,
	<avx512>_fmsub_<mode>_mask3<round_name>,
	<avx512>_fnmadd_<mode>_mask<round_name>,
	<avx512>_fnmadd_<mode>_mask3<round_name>,
	<avx512>_fnmsub_<mode>_mask<round_name>,
	<avx512>_fnmsub_<mode>_mask3<round_name>,
	<avx512>_fmaddsub_<mode>_mask<round_name>,
	<avx512>_fmaddsub_<mode>_mask3<round_name>,
	<avx512>_fmsubadd_<mode>_mask<round_name>,
	<avx512>_fmsubadd_<mode>_mask3<round_name>): Use
	<round_nimm_predicate> instead of nonimmediate_operand.
	(fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
	fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
	Use register_operand instead of <round_nimm_predicate> for the
	operand that needs to match output.
	(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
	*fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
	Likewise.  Formatting fixes.

	PR target/89784
	* config/i386/i386.c (enum ix86_builtins): Remove
	IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
	* config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): New builtins.
	* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
	avx512f_vmfmadd_<mode>_mask3<round_name>,
	avx512f_vmfmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfmsub_<mode>_mask<round_name>,
	avx512f_vmfmsub_<mode>_mask3<round_name>,
	*avx512f_vmfmasub_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmadd_<mode>_mask<round_name>,
	*avx512f_vmfnmadd_<mode>_mask3<round_name>,
	*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmsub_<mode>_mask<round_name>,
	avx512f_vmfnmsub_<mode>_mask3<round_name>,
	*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
	(avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
	* config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
	_mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
	_mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
	_mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
	_mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
	_mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
	_mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
	_mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
	_mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
	_mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
	_mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
	_mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
	_mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
	_mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
	_mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
	_mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
	_mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
	_mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
	_mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
	_mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.

2019-03-21  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89350
	* builtins.c (compute_objsize): Also ignore offsets whose upper
	bound is negative.
	* gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
	(builtin_memref::builtin_memref): Initialize new member.
	Allow EXPR to be null.
	(builtin_memref::extend_offset_range): Replace local with a member.
	Avoid assuming pointer offsets are unsigned.
	(builtin_memref::set_base_and_offset): Determine base object
	before computing offset range.
	(builtin_access::builtin_access): Handle memset.
	(builtin_access::generic_overlap): Replace local with a member.
	(builtin_access::strcat_overlap): Same.
	(builtin_access::overlap): Same.
	(maybe_diag_overlap): Same.
	(maybe_diag_access_bounds): Same.
	(wrestrict_dom_walker::check_call): Handle memset.
	(check_bounds_or_overlap): Same.

2019-03-21  Jan Hubicka  <hubicka@ucw.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR lto/89692
	* tree.c (fld_type_variant, fld_incomplete_type_of,
	fld_process_array_type): Call fld->pset.add and don't call
	add_tree_to_fld_list if it returns true.
	(free_lang_data_in_type): Similarly with self-recursive call.  Purge
	non-marked types from TYPE_NEXT_VARIANT list.
	(find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).

2019-03-21  Jakub Jelinek  <jakub@redhat.com>

	* hash-table.h (hash_table): Add Lazy template parameter defaulted
	to false, if true, don't alloc_entries during construction, but defer
	it to the first method that needs m_entries allocated.
	(hash_table::hash_table, hash_table::~hash_table,
	hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
	hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
	hash_table::clear_slot, hash_table::traverse_noresize,
	hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
	* hash-set.h (hash_set): Add Lazy template parameter defaulted to
	false.
	(hash_set::contains): If Lazy is true, use find_slot_with_hash with
	NO_INSERT instead of find_with_hash.
	(hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
	hash_set::m_table): Add Lazy to template params of hash_table.
	(gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
	* attribs.c (test_attribute_exclusions): Likewise.
	* hash-set-tests.c (test_set_of_strings): Add iterator tests for
	hash_set.  Add tests for hash_set with Lazy = true.

2019-03-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89779
	* tree.c (tree_nop_conversion): Consolidate and fix defensive
	checks with respect to released SSA names now having error_mark_node
	type.
	* fold-const.c (operand_equal_p): Likewise.

2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/89775
	* config/s390/s390.c (global_not_special_regno_p): Move to make it
	available to ...
	(s390_optimize_register_info): Use global_not_special_regno_p to
	check for global regs.

2019-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/89752
	* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
	update this_alternative nor this_alternative_set.

2019-03-19  Jim Wilson  <jimw@sifive.com>

	PR target/89411
	* config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x.  New locals
	align, size, offset.  Use them to handle a BLKmode reference.  Update
	comment.
	(riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.

2019-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89768
	* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
	instead of GEN_INT.
	(unroll_loop_runtime_iterations): Likewise.

2019-03-19  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89644
	* tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
	rather than endptr as an indicator of nul-termination.

	PR tree-optimization/89644
	* tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
	arrays in determining sequence sizes in strncpy and stpncpy.

2019-03-19  Martin Liska  <mliska@suse.cz>

	PR middle-end/89737
	* predict.c (combine_predictions_for_bb): Empty likely_edges and
	unlikely_edges if there's an edge that belongs to both these sets.

2018-03-19  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/89746
	* config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
	non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
	go via a stack temporary.

2019-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/89378
	* config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
	instead of gen_rtx_SUBREG.
	* config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.

2019-03-19  Richard Biener  <rguenther@suse.de>

	PR debug/88389
	* opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.

2019-03-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/87809
	PR lto/89335
	* tree.c (free_lang_data_in_decl): Do not free context of C++
	destrutors.

2019-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/89506
	* config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
	subs for the first alternative except when operands[3] is 1.

	PR target/89752
	* gimplify.c (gimplify_asm_expr): For output argument with
	TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
	diagnose error.

2019-03-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/89753
	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
	explicit unrolling factor even more robust.

2019-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/89726
	* config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
	compensation use x2 += 1 instead of x2 -= -1 and when honoring
	signed zeros, do another copysign after the compensation.

2019-03-18  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89720
	* tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
	more conservatively, the same as anti-range.

2019-03-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/88945
	* tree-ssanames.c (release_ssa_name_fn): For released SSA names
	use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
	basic-blocks that are removed.  Remove restoring SSA_NAME_VAR.
	* tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.

2019-03-18  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn-run.c (struct output): Make next_output unsigned.
	Extend queue to 1024 entries.
	Add "consumed" field.
	(gomp_print_output): Remove print_index parameter.
	Add final parameter.
	Change limit to unsigned.
	Use consumed field to implement circular buffer.
	Detect interrupted print in final pass.
	Flush output at the end.
	(run): Update gomp_print_output usage.
	(main): Initialize kernargs->output_data.consumed.

2019-03-18  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
	calculation of the minimum number of scalar iterations for
	fully-predicated loops.

2019-03-18  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/89546
	* tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
	any propagation to its children took place.

2019-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>

	PR target/89627
	* config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
	parameter, and make use of it.
	(riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.

2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.opt (mcode-density-frame): Get the inital value
	from TARGET_CODE_DENSITY_FRAME_DEFAULT.
	* config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
	* config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
	* config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
	match what the ops is doing.
	(push_multi_fp_blink): Likewise.
	* config/arc/arc.c (arc_override_options): Enable enter/leave when
	compiling for size and elf target.
	(arc_save_callee_enter): Adjust note to match what enter/leave
	operation does.

2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (tst_movb): Fix constraint.

2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.

2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
	* config/arc/arc.c (arc_conditional_register_usage): Remove all
	reg_alloc_order references.
	(size_alloc_order): Define.
	(arc_adjust_reg_alloc_order): New function.
	* config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
	order.
	(ADJUST_REG_ALLOC_ORDER): Define.
	(HONOR_REG_ALLOC_ORDER): Likewise.

2019-03-18  Richard Biener  <rguenther@suse.de>

	PR target/87561
	* config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
	loads and stores a bit more.

2019-03-18  Richard Biener  <rguenther@suse.de>

	PR target/87561
	* config/i386/i386.c (ix86_add_stmt_cost): Apply strided
	load pessimization to stores as well.

2019-03-18  Andrey Belevantsev  <abel@ispras.ru>

	PR middle-end/86979
	* sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
	successor, use NULL as its av set.

2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/89721
	* lra-constraints (invariant_p): Return false if side_effects_p holds.

2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/87532
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	When handling vec_extract, use modular arithmetic to allow
	constant selectors greater than vector length.
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
	V1TImode vectors to have constant selector values greater than 0.
	Use modular arithmetic to compute vector index.
	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
	index for in-memory vectors.  Correct code generation for
	in-register vectors.
	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
	compute index.

2019-03-15  Alexandre Oliva <aoliva@redhat.com>

	PR c++/88534
	PR c++/88537
	* dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
	VAR_DECL args.

2019-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89709
	* tree.c (inchash::add_expr): Strip any location wrappers.
	* fold-const.c (operand_equal_p): Move stripping of location wrapper
	after hash verification.

	PR debug/89704
	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
	SIGN_EXTEND and ZERO_EXTEND.

2019-03-14  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
	than if is_empty (*slot).
	* hash-set-tests.c (test_set_of_strings): Add tests for addition of
	existing elt and for elt removal.
	* hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
	of already removed elt.

2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89650
	* config/i386/i386.c (remove_partial_avx_dependency): Handle
	REG_EH_REGION note.

2019-03-14  Martin Liska  <mliska@suse.cz>

	PR other/89712
	* doc/invoke.texi: Remove -fdump-class-hierarchy option.

2019-03-14  Richard Biener  <rguenther@suse.de>

	PR target/89711
	* config/i386/i386.c (make_resolver_func): Properly set
	DECL_CONTEXT on the RESULT_DECL.
	* config/rs6000/rs6000.c (make_resolver_func): Likewise.

2019-03-14  Richard Biener  <rguenther@suse.de>

	* gimple-pretty-print.c: Include cfgloop.h.
	(dump_gimple_phi): Adjust.
	(dump_gimple_bb_header): Dump loop header for GIMPLE.
	(pp_cfg_jump): Adjust.
	(dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
	* tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
	(lower_phi_internal_fn): Remove.
	(verify_gimple_call): Remove IFN_PHI special-casing.
	(dump_function_to_file): Dump IL state.
	* tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
	done to deal with PHI nodes being present in non-SSA state.

2019-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/89684
	* multiple_target.c (create_dispatcher_calls): Change
	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
	In the node->iterate_referring loop, push *ref rather than ref, call
	ref->remove_reference () and always pass 0 to iterate_referring.

	PR rtl-optimization/89679
	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
	would contain a paradoxical SUBREG.

2019-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89710
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
	safe_dyn_cast.

2019-03-14  Martin Liska  <mliska@suse.cz>

	* coverage.c (coverage_begin_function): Stream also
	end_column.
	* doc/gcov.texi: Document 2 new fields in JSON file.  Improve
	documentation about function declaration location.
	* gcov-dump.c (tag_function): Print whole range
	of function declaration.
	* gcov.c (struct function_info): Add end_column field.
	(function_info::function_info): Initialize it.
	(output_json_intermediate_file): Output {start,end}_column
	fields.
	(read_graph_file): Read end_column.

2019-03-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/89698
	* fold-const.c (operand_equal_p): For INDIRECT_REF check
	that the access types are similar.

2019-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89703
	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
	aren't compatible also with builtin_decl_explicit.  Check pure
	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
	and BUILT_IN_STPNCPY{,_CHK}.

2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89523
	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
	addr32 prefix to VSIB address for X32.
	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
	"%M2" to opcode.
	(*avx512pf_gatherpf<mode>df_mask): Likewise.
	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
	(*avx512pf_scatterpf<mode>df_mask): Likewise.
	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
	(*avx512f_scatterdi<mode>): Likewise.

2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/85860
	* lra-constraints.c (inherit_in_ebb): Update
	potential_reload_hard_regs along with live_hard_regs.

2019-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/89498
	* dwarf2out.c (size_of_die): For dw_val_class_view_list always use
	DWARF_OFFSET_SIZE.
	(value_format): For dw_val_class_view_list never use DW_FORM_loclistx.

2019-03-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/89662
	* tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
	has a size.

2019-03-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/89677
	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
	throw FP expressions at tree-affine.

2019-03-14  Richard Biener  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): For -gimple properly
	dump negative integer constants using _Literal (type) -num.

2019-03-13  Jakub Jelinek  <jakub@redhat.com>

	* ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
	nonlocal_value member.

	PR middle-end/88588
	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
	(ipa_simd_modify_function_body): Handle PHIs.

2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/s390.c (s390_option_override_internal): Use more
	aggressive inlining parameters.

2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/3906.md: New file.
	* config/s390/s390.c (MAX_SCHED_UNITS): Increase.
	(LONGRUNNING_THRESHOLD): Remove.
	(MAX_SCHED_MIX_SCORE): Decrease.
	(MAX_SCHED_MIX_DISTANCE): Decrease.
	(s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
	(struct s390_sched_state): New struct to hold scheduling state.
	(S390_SCHED_STATE_NORMAL): Remove.
	(S390_SCHED_STATE_CRACKED): Remove.
	(S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
	(s390_get_sched_attrmask): Use new attribute.
	(s390_get_unit_mask): Use new units.
	(s390_is_fpd): New function.
	(s390_is_fxd): New function.
	(s390_is_longrunning): New function.
	(s390_sched_score): Use new functions.
	(s390_sched_reorder): Likewise.
	(s390_sched_variable_issue): Rework and use new functions.
	(s390_sched_init): Use new functions.
	* config/s390/s390.h (s390_tune_attr):  Add z14.
	* config/s390/s390.md: Add z14.

2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/2964.md: Update pipeline description.
	* config/s390/s390.c (MAX_SCHED_UNITS): Increase.
	(LONGRUNNING_THRESHOLD): Remove.
	(LATENCY_FACTOR): Remove.
	(s390_get_unit_mask): Add unit.
	(s390_sched_score): Use fxd/fpd.
	(s390_sched_variable_issue): Use fxd/fpd.

2019-03-12  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c: Reword an error message.

2019-03-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (cgraph_node::dump): Dump more info for former thunks,
	terminate with newline.

2019-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/52726
	* config/s390/s390.md (tabort): Use %wd instead of
	HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
	letters and periods.
	* config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
	output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
	's with %< and %>.

	PR middle-end/89663
	* builtins.c (expand_builtin_int_roundingfn,
	expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
	gcc_unreachable if validate_arglist fails.

2019-03-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89664
	* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
	free the occurance tree after the early out.

2019-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89655
	PR bootstrap/89656
	* vr-values.c (vr_values::update_value_range): If
	old_vr->varying_p (), don't update it, make new_vr also VARYING
	and return false.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* config/aarch64/aarch64.c (aarch64_override_options_internal):
	Fix double string quoting.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* collect-utils.c (collect_wait): Wrap apostrophes
	in gcc internal format with %'.
	* collect2.c (main): Likewise.
	(scan_prog_file): Likewise.
	(scan_libraries): Likewise.
	* config/i386/i386.c (ix86_expand_call): Likewise.
	(ix86_handle_interrupt_attribute): Likewise.
	* config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
	* config/nds32/nds32.c (nds32_insert_attributes): Likewise.
	* config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
	* lto-wrapper.c (find_crtoffloadtable): Likewise.
	* symtab.c (symtab_node::verify_base): Likewise.
	* tree-cfg.c (verify_gimple_label): Likewise.
	* tree.c (verify_type_variant): Likewise.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* builtins.c (expand_builtin_thread_pointer): Wrap an option name
	in a string format message and fix GNU coding style.
	(expand_builtin_set_thread_pointer): Likewise.
	* common/config/aarch64/aarch64-common.c
	(aarch64_rewrite_selected_cpu): Likewise.
	* common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
	* common/config/arc/arc-common.c (arc_handle_option): Likewise.
	* common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
	* common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
	* common/config/i386/i386-common.c (ix86_handle_option): Likewise.
	* common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
	* common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
	* common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
	* common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
	* common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
	Likewise.
	* common/config/riscv/riscv-common.c
	(riscv_subset_list::parsing_subset_version): Likewise.
	(riscv_subset_list::parse_std_ext): Likewise.
	(riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
	(riscv_subset_list::parse): Likewise.
	* common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
	* config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
	(aarch64_override_options_internal): Likewise.
	(aarch64_validate_mcpu): Likewise.
	(aarch64_validate_march): Likewise.
	(aarch64_validate_mtune): Likewise.
	(aarch64_override_options): Likewise.
	* config/alpha/alpha.c (alpha_option_override): Likewise.
	* config/arc/arc.c (arc_init): Likewise.
	(parse_mrgf_banked_regs_option): Likewise.
	(arc_override_options): Likewise.
	(arc_expand_builtin_aligned): Likewise.
	* config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
	(arm_expand_builtin): Likewise.
	* config/arm/arm.c (arm_option_check_internal): Likewise.
	(arm_configure_build_target): Likewise.
	(arm_option_override): Likewise.
	(arm_options_perform_arch_sanity_checks): Likewise.
	(arm_handle_cmse_nonsecure_entry): Likewise.
	(arm_handle_cmse_nonsecure_call): Likewise.
	(arm_tls_referenced_p): Likewise.
	(thumb1_expand_prologue): Likewise.
	* config/avr/avr.c (avr_option_override): Likewise.
	* config/bfin/bfin.c (bfin_option_override): Likewise.
	* config/c6x/c6x.c (c6x_option_override): Likewise.
	* config/cr16/cr16.c (cr16_override_options): Likewise.
	* config/cris/cris.c (cris_option_override): Likewise.
	* config/csky/csky.c (csky_handle_isr_attribute): Likewise.
	* config/darwin-c.c (macosx_version_as_macro): Likewise.
	* config/darwin.c (darwin_override_options): Likewise.
	* config/frv/frv.c (frv_expand_builtin): Likewise.
	* config/h8300/h8300.c (h8300_option_override): Likewise.
	* config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
	(ix86_option_override_internal): Likewise.
	(warn_once_call_ms2sysv_xlogues): Likewise.
	(ix86_expand_prologue): Likewise.
	(split_stack_prologue_scratch_regno): Likewise.
	(ix86_warn_parameter_passing_abi): Likewise.
	* config/ia64/ia64.c (fix_range): Likewise.
	* config/m68k/m68k.c (m68k_option_override): Likewise.
	* config/microblaze/microblaze.c (microblaze_option_override): Likewise.
	* config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
	(mips_set_compression_mode): Likewise.
	* config/mmix/mmix.c (mmix_option_override): Likewise.
	* config/mn10300/mn10300.c (mn10300_option_override): Likewise.
	* config/msp430/msp430.c (msp430_option_override): Likewise.
	* config/nds32/nds32.c (nds32_option_override): Likewise.
	* config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
	(nios2_option_override): Likewise.
	(nios2_expand_custom_builtin): Likewise.
	* config/nvptx/mkoffload.c (main): Likewise.
	* config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
	* config/pa/pa.c (fix_range): Likewise.
	(pa_option_override): Likewise.
	* config/riscv/riscv.c (riscv_parse_cpu): Likewise.
	(riscv_option_override): Likewise.
	* config/rl78/rl78.c (rl78_option_override): Likewise.
	* config/rs6000/aix61.h: Likewise.
	* config/rs6000/aix71.h: Likewise.
	* config/rs6000/aix72.h: Likewise.
	* config/rs6000/driver-rs6000.c (elf_platform): Likewise.
	* config/rs6000/freebsd64.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
	(rs6000_expand_zeroop_builtin): Likewise.
	(rs6000_expand_mtfsb_builtin): Likewise.
	(rs6000_expand_set_fpscr_rn_builtin): Likewise.
	(rs6000_expand_set_fpscr_drn_builtin): Likewise.
	(rs6000_invalid_builtin): Likewise.
	(rs6000_expand_split_stack_prologue): Likewise.
	* config/rs6000/rtems.h: Likewise.
	* config/rx/rx.c (valid_psw_flag): Likewise.
	(rx_expand_builtin): Likewise.
	* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
	* config/s390/s390.c (s390_expand_builtin): Likewise.
	(s390_function_profiler): Likewise.
	(s390_option_override_internal): Likewise.
	(s390_option_override): Likewise.
	* config/sh/sh.c (sh_option_override): Likewise.
	(sh_builtin_saveregs): Likewise.
	(sh_fix_range): Likewise.
	* config/sh/vxworks.h: Likewise.
	* config/sparc/sparc.c (sparc_option_override): Likewise.
	* config/spu/spu.c (spu_option_override): Likewise.
	(fix_range): Likewise.
	* config/visium/visium.c (visium_option_override): Likewise.
	(visium_handle_interrupt_attr): Likewise.
	* config/xtensa/xtensa.c (xtensa_option_override): Likewise.
	* dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
	(dbg_cnt_process_opt): Likewise.
	* dwarf2out.c (output_dwarf_version): Likewise.
	* except.c (expand_eh_return): Likewise.
	* gcc.c (defined): Likewise.
	(driver_handle_option): Likewise.
	(process_command): Likewise.
	(compare_files): Likewise.
	(driver::prepare_infiles): Likewise.
	(driver::do_spec_on_infiles): Likewise.
	(driver::maybe_run_linker): Likewise.
	* omp-offload.c (oacc_parse_default_dims): Likewise.
	* opts-global.c (handle_common_deferred_options): Likewise.
	* opts.c (parse_sanitizer_options): Likewise.
	(common_handle_option): Likewise.
	(enable_warning_as_error): Likewise.
	* passes.c (enable_disable_pass): Likewise.
	* plugin.c (parse_plugin_arg_opt): Likewise.
	(default_plugin_dir_name): Likewise.
	* targhooks.c (default_expand_builtin_saveregs): Likewise.
	(default_pch_valid_p): Likewise.
	* toplev.c (init_asm_output): Likewise.
	(process_options): Likewise.
	(toplev::run_self_tests): Likewise.
	* tree-cfg.c (verify_gimple_call): Likewise.
	* tree-inline.c (inline_forbidden_p_stmt): Likewise.
	(tree_inlinable_function_p): Likewise.
	* var-tracking.c (vt_find_locations): Likewise.

2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
	only on the else branch.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* gcov.c (output_intermediate_json_line): Print function
	name of each line.
	(output_json_intermediate_file): Add new argument.
	* doc/gcov.texi: Document the change.

2019-03-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/89588
	* loop-unroll.c (decide_unroll_constant_iterations): Make guard for
	explicit unrolling factor more robust.

2019-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89649
	* tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
	* tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
	on the prolog and epilog loops.
	(vect_loop_versioning): Return copy of loop.
	* tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
	on the non-vectorized version of the loop.

2019-03-10  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/68924
	* config/i386/sse.md (*vec_extractv2di_0_sse):
	Add (=r,x) alternative and corresponding splitter.

2019-03-10  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/85762
	PR tree-optimization/87008
	PR tree-optimization/85459
	* tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
	it points to if there is a type changing MEM_REF.  Adjust all callers.
	(build_accesses_from_assign): Disable total scalarization if
	contains_vce_or_bfcref_p returns true through the new parameter, for
	both rhs and lhs.

2019-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c/88568
	* attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
	dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.

	PR target/79645
	* common.opt (fdiagnostics-show-labels,
	fdiagnostics-show-line-numbers, fdiagnostics-format=,
	fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
	gas-locview-support, ginline-points, ginternal-reset-location-views):
	Terminate description text with a dot.
	* config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
	* config/mcore/mcore.opt (m210, m340): Likewise.
	* config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
	mnops=): Start description text with a capital letter.
	* config/arc/arc.opt (msize-level=): Likewise.
	* config/sh/sh.opt (minline-ic_invalidate): Likewise.
	* config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
	mnewlib): Likewise.
	* config/ft32/ft32.opt (msim): Likewise.
	(mft32b, mcompress): Likewise.  Terminate description text with a dot.
	(mnodiv, mnopm): Terminate description text with a dot.
	* config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
	a colon.
	* config/i386/i386.opt (prefer_vector_width, instrument_return):
	Likewise.
	* config/rx/rx.opt (nofpu): Remove trailing spaces from description
	text.

	PR rtl-optimization/89634
	* cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
	are modified in BB_END (e->src) instruction.

2019-03-08  David Malcolm  <dmalcolm@redhat.com>

	PR target/79926
	* config/i386/i386.c (ix86_set_current_function): Make "sorry"
	messages more amenable to translation, and improve wording.

2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
	ud- and du-chains between phases.

2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>

	PR debug/89631
	* dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
	instead of POLY_INT_CST.

2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
	requirement.

2019-03-08  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/68924
	PR target/78782
	PR target/87558
	* config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
	(_mm_storeu_si64): Ditto.

2019-03-08  Martin Liska  <mliska@suse.cz>

	PR target/86952
	* config/i386/i386.c (ix86_option_override_internal): Disable
	jump tables when retpolines are used.

2019-03-08  Jan Hubicka  <hubicka@ucw.cz>

	PR go/63560
	* ipa-split.c (execute_split_functions): Do not split
	'noinline' or 'section' function.

2019-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/79846
	* config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
	HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
	HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.

	PR ipa/80000
	* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
	from diagnostics.  Formatting fixes.

	PR target/85665
	* ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
	warn_odr diagnostics.

	PR other/80058
	* lra-constraints.c (process_alt_operands): Avoid one space before
	" at the end of line and another after " on another line in a string
	literal.
	* attribs.c (handle_dll_attribute): Likewise.
	* config/avr/avr-devices.c (avr_texinfo): Likewise.

	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
	warning_at or inform messages in G_() if there is no ?:.

	PR tree-optimization/89550
	* builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
	returned true.  Formatting fixes.
	(expand_builtin_strnlen): Formatting fixes.
	* tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
	if warning_at returned true.
	* tree-cfg.c (pass_warn_function_return::execute): Likewise.

2019-03-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/89578
	* cfgloop.h (struct loop): Add owned_clique field.
	* cfgloopmanip.c (copy_loop_info): Copy it.
	* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
	cliques.
	* tree-inline.c (copy_loops): Remap owned_clique.
	* lto-streamer-in.c (input_cfg): Stream owned_clique.
	* lto-streamer-out.c (output_cfg): Likewise.

2019-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/80190
	* config/darwin.c: Include intl.h.
	(darwin_build_constant_cfstring): Improve i18n of diagnostics by not
	composing the message out of two separate parts.

2019-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/80003
	* config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
	doesn't start with a capital letter and doesn't end with a dot.
	(ix86_function_arg_boundary): Make sure diagnostics doesn't start
	with a capital letter.
	(ix86_mangle_function_version_assembler_name): Likewise.
	(ix86_generate_version_dispatcher_body): Likewise.
	(fold_builtin_cpu): Likewise.
	(get_builtin_code_for_version): Likewise.  Remove extraneous space.
	(ix86_handle_interrupt_attribute): Make the diagnostics easier for
	translators, wrap full type name in %qs.

	PR translation/79999
	* gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
	depend clause with source (or sink) modifier.
	* omp-expand.c (expand_omp_ordered_sink): Likewise.

	PR target/89602
	* config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
	*avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
	(avx512f_load<mode>_mask): New define_expand.
	* config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
	__builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
	__builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
	__builtin_ia32_movess_mask): New builtins.
	* config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
	_mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
	_mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
	_mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.

2019-03-07  Martin Jambor  <mjambor@suse.cz>

	PR lto/87525
	* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
	for extern inline functions.

2019-03-07  Martin Jambor  <mjambor@suse.cz>

	PR ipa/88235
	* cgraph.h (cgraph_node): New inline method former_thunk_p.
	* cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
	(clone_of_p): Treat expanded thunks like thunks, be optimistic if they
	have multiple callees.  At the end check if declarations match as
	opposed to cgraph_nodes.

2019-03-07  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::verify_node): Verify with a neighbour
	which is equivalent to searching for this in clones chain.
	* symtab.c (symtab_node::verify_base): Similarly compare ASM
	names with a neighbour and special case first node in a chain.

2019-01-25  Jason Merrill  <jason@redhat.com>

	PR c++/80916 - spurious "static but not defined" warning.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
	for an internal symbol with DECL_EXTERNAL.

2019-04-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/89618
	* cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
	* tree-inline.c (copy_loops): Simplify.

2019-03-07  Martin Liska  <mliska@suse.cz>

	* dwarf2out.c (add_AT_vms_delta): Revert function removal.

2019-03-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89595
	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
	stmt iterator as reference, take boolean output parameter to
	indicate whether the stmt was removed and thus the iterator
	already advanced.
	(dom_opt_dom_walker::before_dom_children): Re-iterate over
	stmts created by folding.

2019-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89585
	* doc/extend.texi (Basic Asm): Document qualifiers are not allowed
	at toplevel.

2019-03-06  Peter Bergner  <bergner@linux.ibm.com>

	PR rtl-optimization/88845
	* config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
	LRA.
	* lra.c (remove_scratches_1): New function.
	(remove_scratches): Use it.
	(lra_emit_move): Likewise.

2019-03-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
	unaligned_access variable.
	* config/arc/arc.c (arc_override_options): Set unaligned access
	default on for HS CPUs.
	* config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.

2019-03-06  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/89577
	* doc/gcov.texi: Prefer to use --coverage.
	* doc/sourcebuild.texi: Likewise.

2019-03-02  Jason Merrill  <jason@redhat.com>

	PR c++/86485 - -Wmaybe-unused with empty class ?:
	* gimplify.c (gimplify_cond_expr): Use INIT_EXPR.

2019-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/89587
	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
	if_multiarch.

	PR middle-end/89590
	* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
	exactly one argument.

2019-03-05  Jakub Jelinek  <jakub@redhat.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/89570
	* match.pd (vec_cond into cond_op simplification): Don't use
	get_conditional_internal_fn, use as_internal_fn (cond_op).

2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/89222
	* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
	to decide when to split off a non-zero offset from a symbol.
	* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
	in function symbols.

2019-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89594
	* tree-if-conv.c (pass_if_conversion::execute): Handle
	case where .LOOP_VECTORIZED_FUNCTION was removed.

2019-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/89560
	* fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
	instead alloca it only when needed with the needed size.

	PR tree-optimization/89570
	* match.pd (vec_cond into cond_op simplification): Guard with
	vectorized_internal_fn_supported_p test and #if GIMPLE.

	PR tree-optimization/89566
	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
	Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
	Punt if get_user_idx_format succeeds, but idx_format argument is
	not provided or doesn't have pointer type, or if idx_args is above
	number of provided arguments.

2019-03-04  Wilco Dijkstra  <wdijkstr@arm.com>

	PR tree-optimization/89437
	* match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.

2019-03-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/89572
	* tree-scalar-evolution.c: (get_loop_exit_condition): Use
	safe_dyn_cast.

2019-03-04  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/89487
	* tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
	(create_rdg_vertices): Compute has_nonaddressable_dataref_p.
	(distribute_loop): Don't do runtime alias check if there is non-
	addressable data reference.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
	is a register variable.

2019-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/89506
	* config/arm/arm.md (cmpsi2_addneg): Use
	trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
	If operands[2] is 0 or INT_MIN, force use of subs.
	(*compare_scc splitter): Use gen_int_mode.
	(*negscc): Likewise.
	* config/arm/thumb2.md (*thumb2_negscc): Likewise.

2019-03-01  Kito Cheng  <kito.cheng@gmail.com>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* common/config/riscv/riscv-common.c: Include sstream.
	(riscv_subset_list::to_string): New.
	(riscv_arch_str): Likewise.
	* config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
	* config.in: Regen.
	* config/riscv/riscv-protos.h (riscv_arch_str): New.
	* config/riscv/riscv.c (INCLUDE_STRING): Defined.
	(riscv_emit_attribute): New.
	(riscv_file_start): Emit attribute if needed.
	(riscv_option_override): Init riscv_emit_attribute_p.
	* config/riscv/riscv.opt (mriscv-attribute): New option.
	* configure.ac (riscv*-*-*): Check binutils is supporting ELF
	* configure: Regen.
	* doc/install.texi: Document --with-riscv-attribute.
	* doc/invoke.texi: Document -mriscv-attribute.

	* common/config/riscv/riscv-common.c:
	Include config/riscv/riscv-protos.h.
	(INCLUDE_STRING): Defined.
	(RISCV_DONT_CARE_VERSION): Defined.
	(riscv_subset_t): Declare.
	(riscv_subset_t::riscv_subset_t): New.
	(riscv_subset_list): Declare.
	(riscv_subset_list::riscv_subset_list): New.
	(riscv_subset_list::~riscv_subset_list): Likewise.
	(riscv_subset_list::parsing_subset_version): Likewise.
	(riscv_subset_list::parse_std_ext): Likewise.
	(riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
	(riscv_subset_list::add): Likewise.
	(riscv_subset_list::lookup): Likewise.
	(riscv_subset_list::xlen): Likewise.
	(riscv_subset_list::parse): Likewise.
	(riscv_supported_std_ext): Likewise.
	(current_subset_list): Likewise.
	(riscv_parse_arch_string): Using riscv_subset_list::parse to
	parse.

2019-03-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
	* config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.

2019-03-01  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/85899
	* haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
	fallthru edges leading to the exit block.

2019-03-01  Tamar Christina  <tamar.christina@arm.com>

	PR target/89517
	* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
	rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.

2019-03-01  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/89535
	* tree-vect-stmts.c (vectorizable_call): Record the vector types
	for each operand.  Calculate the fallback choice for mask operands
	and pass it to vect_get_vec_def_for_operand.

2019-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/89541
	* tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
	get virtual operands.
	(get_expr_operands): Handle CONST_DECL like other decls.

2019-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89503
	* fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
	on DECL_P and EXPR_P.

2019-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/89497
	* tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
	argument, defaulted to zero.
	* passes.c (execute_function_todo): Pass down SSA update flags
	to cleanup_tree_cfg.
	* tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
	(cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
	form if requested.
	(cleanup_tree_cfg): Get and pass down SSA update flags.

2019-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/89539
	* dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
	early_lto_debug argument.

2019-02-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/89536
	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
	only whether bit #0 of the value is 0 instead of the entire value.

2019-02-28  Marek Polacek  <polacek@redhat.com>

	PR c++/87068 - missing diagnostic with fallthrough statement.
	* gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
	at the end of a seq, save its location to walk_stmt_info.
	(expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
	a switch.

2019-02-28  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/88585
	* tree.c (find_atomic_core_type): Move ahead in file.
	(check_base_type): Correctly compare alignments of atomic types.

2019-02-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89455
	* config/i386/i386.c (get_builtin_code_for_version): Identify
	Westmere from PCLMUL, instead of AES.

2019-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/89434
	* config/arm/arm.md (*subsi3_carryin_compare_const): Use
	trunc_int_for_mode (-INTVAL (...), SImode), just instead of
	-UINTVAL (...).

2019-02-28  Tamar Christina  <tamar.christina@arm.com>

	PR target/88530
	* config/aarch64/aarch64-option-extensions.def: Document it.
	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
	if empty hwcaps.

2019-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/89520
	* convert.c (convert_to_real_1, convert_to_integer_1): Punt for
	builtins if they don't have a single scalar floating point argument.
	Formatting fixes.

2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/89490
	* varasm.c (get_block_for_section): Bail out for mergeable sections.
	(default_use_anchors_for_symbol_p, output_object_block): Assert the
	block section is not mergeable.

2019-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/70341
	* config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
	old define_insn to ...
	(*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
	* config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
	Rename old define_insn to ...
	(*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
	(thumb2_casesi_internal_pic): New define_expand.  Rename old
	define_insn to ...
	(*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
	* config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
	MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.

2019-02-27  Richard Biener  <rguenther@suse.de>

	PR debug/88878
	* dwarf2out.c (use_debug_types): Disable when in_lto_p.

2019-02-27  Richard Biener  <rguenther@suse.de>

	* passes.c (should_skip_pass_p): Do not skip cgraph-edge
	building.

2019-02-27  Richard Biener  <rguenther@suse.de>

	PR debug/88878
	* dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
	parameter, prefix section name with .gnu.debuglto_ if true.
	(dwarf2out_finish): Pass false to output_comdat_type_unit.
	(dwarf2out_early_finish): Pass true to output_comdat_type_unit.

2019-02-27  Richard Biener  <rguenther@suse.de>

	PR debug/89514
	* dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
	rather than on use_debug_types, doing what output_die does.
	(value_format): Likewise.

2019-02-27  Martin Jambor  <mjambor@suse.cz>
	    Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (Warning Options): Reword description of
	-Wno-absolute-value.

2019-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89280
	* tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
	builtin_setjmp_setup_bb): New functions.
	(cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
	When visiting __builtin_setjmp_setup block, queue in special
	setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
	__builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
	from visited after the loop if they don't have any visited successor
	blocks.

2018-02-26  Steve Ellcey  <sellcey@marvell.com>

	* config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
	New function.
	(TARGET_GET_MULTILIB_ABI_NAME): New macro.

2019-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89507
	* tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
	with types other than sizetype/ssizetype.

2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-opts.h (enum processor_type): Rename to...
	(enum sparc_processor_type): ...this.
	(enum sparc_code_model_type): New enumeration type.
	(enum sparc_memory_model_type): Tweak comments.
	* config/sparc/sparc.opt (mcpu): Adjust to above renaming.
	(mtune): Likewise.
	(mcmodel): Use sparc_code_model enumeration and variable.
	(sparc_code_model): New enumeration.
	(mdebug): Add Undocumented marker.
	* config/sparc/sparc.h (enum cmodel): Delete.
	(sparc_cmodel): Likewise.
	(TARGET_CM_MEDLOW): Adjust to above renaming.
	(TARGET_CM_MEDMID): Likewise.
	(TARGET_CM_MEDANY): Likewise.
	(TARGET_CM_EMBMEDANY): Likewise.
	* config/sparc/sparc.c (sparc_cmodel): Delete.
	(sparc_option_override): Remove string/value mapping support for the
	code model.  Move code and memory model support to after the handling
	of target flags.  Do private machine setup last.
	(sparc_emit_set_symbolic_const64): Use sparc_code_model.
	(sparc_legitimize_reload_address): Likewise.
	(sparc_output_mi_thunk): Likewise.
	* config/sparc/sparc.md (cpu): Adjust comment to above renaming.

2019-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89500
	* tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
	(handle_builtin_strlen): Remove noncst_bound variable.  Always
	optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
	cst if the first cst bytes starting at x are known to be non-zero,
	even if the string is not zero terminated.  Don't try to modify
	*si for strnlen.  Update strlen_to_stridx only for strlen or if
	we can prove strnlen returns the same value as strlen would.

2019-02-26  Martin Liska  <mliska@suse.cz>

	* alloc-pool.h (struct pool_usage): Remove extra
	print_dash_line.
	* bitmap.h (struct bitmap_usage): Likewise.
	* ggc-common.c (struct ggc_usage): Likewise.
	* mem-stats.h (struct mem_usage): Likewise.
	(mem_alloc_description::dump): Print dash lines
	here and repeat header at the end of a table report.
	It's then more readable.
	* tree-phinodes.c (phinodes_print_statistics): Make
	horizontal alignment.
	* tree-ssanames.c (ssanames_print_statistics): Likewise.
	* vec.c (struct vec_usage): Remove extra print_dash_line.
	* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.

2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (__builtin_object_size):
	Use @pxref instead of @xref inside parenthesis.
	(__builtin_has_attribute): Add missing comma after @xref.
	(__builtin_object_size): Ditto.
	* doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
	* fortran/invoke.texi (-ffpe-trap): Use @var for every item
	in the list.

2019-02-26  Jeff Law  <law@redhat.com>

	PR rtl-optimization/87761
	* regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
	detect obviously dead insns and delete them.

2019-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89505
	* tree-ssa-structalias.c (compute_dependence_clique): Make sure
	to handle restrict pointed-to vars with multiple subvars
	correctly.

2019-02-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89489
	* tree-parloops.c (create_loop_fn): Copy over last_clique.

2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
	and move around comment.
	<BIT_AND_EXPR>: Likewise.
	<BIT_NOT_EXPR>: Add specific handling for boolean types.

2019-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/89474
	* config/i386/i386.c (remove_partial_avx_dependency): Call
	df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
	after changing possibly many instructions to use that pseudo.  Fix up
	insertion of v4sf_const0 setter at the start of bb.

2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>

	PR c/80409
	* doc/extend.texi (Variadic Pointer Args): New section.

2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Martin Sebor  <msebor@gmail.com>

	* common.opt (Wattribute-alias): Likewise.
	* doc/invoke.texi (Option Summary): List general form of
	-Wattribute-alias=.  List positive form of -Wmissing-attributes.
	(-Wmissing-attributes): Invert entry, rewrite and correct default.
	Add cross-references.
	(-Wattribute-alias): Rewrite and correct default.  Mention
	considered attributes (same as for -Wmissing-attributes).

2019-02-25  Paul A. Clarke  <pc@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
	(_mm_cvtpd_ps): Likewise.
	(_mm_cvttpd_epi32): Likewise.

	PR target/89338
	* config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
	(_mm_cvt_ss2si): Fix type mismatch and 32-bit.

	PR target/89339
	* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.

2019-02-25  Tamar Christina  <tamar.christina@arm.com>

	PR target/88530
	* common/config/aarch64/aarch64-common.c
	(struct aarch64_option_extension): Add is_synthetic.
	(all_extensions): Use it.
	(TARGET_OPTION_INIT_STRUCT): Define hook.
	(struct gcc_targetm_common): Moved to end.
	(all_extensions_by_on): New.
	(opt_ext_cmp, typedef opt_ext): New.
	(aarch64_option_init_struct): New.
	(aarch64_contains_opt): New.
	(aarch64_get_extension_string_for_isa_flags): Output smallest set.
	* config/aarch64/aarch64-option-extensions.def
	(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
	(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
	sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
	Set is_synthetic to false.
	(crypto): Set is_synthetic to true.
	* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
	SYNTHETIC.

2019-02-25  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
	vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
	vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
	vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
	vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
	vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
	vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
	vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
	Rename ...
	(vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
	vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
	vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
	vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
	vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
	vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
	vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
	vfmlsl_laneq_high_f16): ... To this.
	* config/arm/neon.md: Update comments.

2019-02-25  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
	vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
	vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
	vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
	vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
	vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
	vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
	vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
	Rename ...
	(vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
	vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
	vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
	vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
	vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
	vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
	vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
	vfmlslq_laneq_high_f16): ... To this.

2019-02-25  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/86096
	* df-scan.c (df_mw_compare): Do not check mw_reg fields when
	comparing mw_order values.

2019-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/89434
	* config/arm/arm.md (*subsi3_carryin_const): Use
	arm_neg_immediate_operand predicate instead of
	arm_not_immediate_operand, "L" constraint instead of "K" and
	print it using %n2 instead of %B2.
	(*subsi3_carryin_const0): New define_insn.
	(*subsi3_carryin_compare_const): Use const_int_I_operand predicate
	instead of arm_not_operand and "I" constraint instead of "K" and
	print it using %n3 instead of %B2.  Instead of using match_dup 2 add
	another match_operand and in the condition check that it is negation
	of operands[2].
	(*subsi3_carryin_compare_const0): New define_ins.
	(*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
	*subsi3_carryin_const.
	(*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
	split into *subsi3_carryin_compare_const0 if the highpart is zero.

	PR target/89438
	* config/arm.vfp.md (*negdf2_vfp): Use
	gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
	* config/arm/neon.md (neon_copysignf<mode>): Likewise.

2019-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89445
	* simplify-rtx.c (simplify_ternary_operation): Don't use
	simplify_merge_mask on operands that may trap.
	* rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
	SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
	second operand is CONST_VECTOR, check if any element could be zero.
	Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
	their operands can trap.

2019-02-23  Martin Sebor  <msebor@redhat.com>

	* gimple-ssa-sprintf.c (target_strtol): Rename...
	(target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
	(parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
	check for range error.

2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/69471
	* opts-common.c (prune_options): Also prune joined switches
	with Negative and RejectNegative.
	* config/i386/i386.opt (march=): Add Negative(march=).
	(mtune=): Add Negative(mtune=).
	* doc/options.texi: Document Negative used together with Joined
	and RejectNegative.

2019-02-22  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (Other Builtins): Add
	__builtin_is_constant_evaluated.

2019-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87609
	* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.

2019-02-22  Jeff Law  <law@redhat.com>

	PR rtl-optimization/87761
	* config/mips/mips.md: Add new combiner pattern to recognize
	a bitfield extraction using (ashiftrt (truncate (ashift (...)))).

2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR target/89324
	* config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
	destination register in peepholes generating patterns for ADDS/SUBS.
	(add<mode>3_compare0,
	*addsi3_compare0_uxtw, add<mode>3_compareC,
	add<mode>3_compareV_imm, add<mode>3_compareV,
	*adds_<optab><ALLX:mode>_<GPI:mode>,
	*subs_<optab><ALLX:mode>_<GPI:mode>,
	*adds_<optab><ALLX:mode>_shift_<GPI:mode>,
	*subs_<optab><ALLX:mode>_shift_<GPI:mode>,
	*adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
	*sub<mode>3_compare0, *subsi3_compare0_uxtw,
	sub<mode>3_compare1): Allow stack pointer for source register.
	* config/aarch64/predicates.md (aarch64_general_reg): New predicate.

2019-02-22  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/88993
	PR tree-optimization/88853
	* gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
	New helper.
	(sprintf_dom_walker::call_info::is_string_func): New helper.
	(format_directive): Only issue "may exceed" 4095/INT_MAX warnings
	for formatted string functions.
	(sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.

2019-02-22  Martin Sebor  <msebor@redhat.com>

	PR c/89425
	* c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
	unreachable subexpressions.

2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
	    Hongtao Liu  <hongtao.liu@intel.com>
	    Sunil K Pandey  <sunil.k.pandey@intel.com>

	PR target/87007
	* config/i386/i386-passes.def: Add
	pass_remove_partial_avx_dependency.
	* config/i386/i386-protos.h
	(make_pass_remove_partial_avx_dependency): New.
	* config/i386/i386.c (make_pass_remove_partial_avx_dependency):
	New function.
	(pass_data_remove_partial_avx_dependency): New.
	(pass_remove_partial_avx_dependency): Likewise.
	(make_pass_remove_partial_avx_dependency): Likewise.
	* config/i386/i386.md (avx_partial_xmm_update): New attribute.
	(*extendsfdf2): Add avx_partial_xmm_update.
	(truncdfsf2): Likewise.
	(*float<SWI48:mode><MODEF:mode>2): Likewise.
	(SF/DF conversion splitters): Disabled for TARGET_AVX.

2019-02-22  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/85598
	* gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
	analysis for pass.

2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>

	PR target/89444
	* config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
	(PTA_SKYLAKE): Add PTA_AES.
	(PTA_GOLDMONT): Likewise.

2019-02-22  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
	instruction if enabled.
	(aarch64_override_options): Remove reference to return address key.

2019-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89440
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
	not necessary assert.

2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>

	PR fortran/72741
	* omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
	(oacc_replace_fn_attrib_attr): ... this new function.
	* omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.

2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-cpus.in (ares): Rename to...
	(neoverse-n1): ... This.  Add ares as alias.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Likewise.
	* doc/invoke.txt (ARM Options): Document neoverse-n1.

2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (neoverse-e1): Define.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.

2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (ares_tunings): Rename to...
	(neoversen1_tunings): ... This.
	* config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
	(neoverse-n1): New CPU.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.txt (AArch64 Options): Document neoverse-n1.

2019-02-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/87609
	* cfghooks.h (dependence_hash): New typedef.
	(struct copy_bb_data): New type.
	(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
	(duplicate_block): Likewise.
	* cfghooks.c (duplicate_block): Pass down copy_bb_data.
	(copy_bbs): Create and pass down copy_bb_data.
	* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
	(rtl_duplicate_bb): Likewise.
	* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
	remap dependence info.

2019-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87609
	* tree-core.h (tree_base): Document special clique values.
	* tree-inline.c (remap_dependence_clique): Do not use the
	special clique value of one.
	(maybe_set_dependence_info): Use clique one.
	(clear_dependence_clique): New callback.
	(compute_dependence_clique): Clear clique one from all refs
	before assigning it (again).

2019-02-21  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (__clear_cache): Correct signature.

2019-02-21  Ian Lance Taylor  <iant@golang.org>

	PR go/89170
	* varasm.c (decode_addr_const): Call lookup_constant_def rather
	than output_constant_def.
	(add_constant_to_table): New static function.
	(output_constant_def): Call add_constant_to_table.
	(tree_output_constant_def): Likewise.

2019-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89285
	* builtins.c (fold_builtin_arith_overflow): If first two args are
	INTEGER_CSTs, set intres and ovfres to constants rather than calls
	to ifn.

2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/87412
	* config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
	error for -mindirect-branch/-mfunction-return with incompatible
	-fcf-protection.

2019-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* constraints.md (q): Remove.
	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
	instead of q.

2019-02-21  Martin Jambor  <mjambor@suse.cz>

	PR hsa/89302
	* omp-general.c (omp_extract_for_data): Removed a duplicate call
	to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
	(omp_adjust_for_condition): ...here.  Added necessary parameters.
	* omp-general.h (omp_adjust_for_condition): Updated declaration.
	* omp-grid.c (grid_attempt_target_gridification): Adjust to pass
	proper values to new parameters of omp_adjust_for_condition.

2019-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89412
	* expr.c (expand_assignment): If result is a MEM, use change_address
	instead of simplify_gen_subreg.

2019-02-20  Jakub Jelinek  <jakub@redhat.com>
	    David Malcolm  <dmalcolm@redhat.com>

	PR middle-end/89091
	* fold-const.c (decode_field_reference): Return NULL_TREE if
	lang_hooks.types.type_for_size returns NULL.  Check it before
	overwriting *exp_.  Use return NULL_TREE instead of return 0.

2019-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/88074
	PR middle-end/89415
	* toplev.c (do_compile): Double the emin/emax exponents to workaround
	buggy mpc_norm.

2019-02-20  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89397
	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
	TARGET_SSE in addition to TARGET_SSE_MATH.

	(ix86_excess_precision): Ditto.
	(ix86_float_exceptions_rounding_supported_p): Ditto.
	(use_rsqrt_p): Ditto.
	* config/i386/sse.md (rsqrt<mode>2): Ditto.

2019-02-20  David Malcolm  <dmalcolm@redhat.com>

	PR c/89410
	* diagnostic-show-locus.c (layout::calculate_line_spans): Use
	linenum_arith_t when determining if two adjacent line spans are
	close enough to merge.
	(diagnostic_show_locus): Use linenum_arith_t when iterating over
	lines within each line_span.

2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR target/86487
	* lra-constraints.c(uses_hard_regs_p): Fix handling of
	paradoxical SUBREGS.

2019-02-20  Li Jia He  <helijia@linux.ibm.com>

	PR target/88100
	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
	<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
	ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
	range checking it.

2019-02-19  Jonathan Wakely  <jwakely@redhat.com>

	* config/gcn/gcn.c (print_operand): Fix typo.

2019-02-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/88074
	* toplev.c (do_compile): Initialize mpfr's exponent range
	based on available float modes.

2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>

	* rtlanal.c (get_initial_register_offset): Fall back to the estimate
	as long as the epilogue isn't completed.

2019-02-18  Martin Sebor  <msebor@redhat.com>

	* doc/cpp.texi (Conditional syntax): Add __has_attribute,
	__has_cpp_attribute, and __has_include.

2019-02-18  Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (-Wreturn-type): Correct and expand.

2019-02-18  Martin Sebor  <msebor@redhat.com>

	PR middle-end/89294
	* tree.c (valid_constant_size_p): Avoid assuming size is a constant
	expression.
	* tree.h (cst_size_error): Add the cst_size_not_constant enumerator.

2019-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89296
	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
	of no-warning flag to cases that might emit the bogus warning.

2019-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
	"q" constraint.
	* config/arm/vfp.md (*movdi_vfp): Likewise.
	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
	"q" constraint for operands[0].

	PR target/89369
	* config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
	*r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
	pattern in a temporary buffer.
	(*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
	than 64-operands[2].

	PR target/89361
	* config/s390/s390.c (s390_indirect_branch_attrvalue,
	s390_indirect_branch_settings): Define unconditionally.
	(s390_set_current_function): Likewise, but guard the whole body except
	the s390_indirect_branch_settings call with
	#if S390_USE_TARGET_ATTRIBUTE.
	(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.

	* config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
	*<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
	Use HOST_WIDE_INT_M1U instead of ~(0ULL).
	(*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
	HOST_WIDE_INT_1U instead of 1ULL.
	(*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
	to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
	(*insv<mode><clobbercc_or_nocc>_appendbitsleft,
	z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
	instead of 1UL.
	(*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
	instead of 1ul.

2019-02-18  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/89209
	* tree-sra.c (create_access_replacement): New optional parameter
	reg_tree.  Use it as a type if non-NULL and access type is not of
	a register type.
	(get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
	to create_access_replacement.
	(sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
	Check lacc is non-NULL before attempting to re-create it on the RHS.

2019-02-18  Martin Liska  <mliska@suse.cz>

	PR ipa/89306
	* cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
	by default.
	(symbol_table::free_edge): Recycle m_summary_id.
	* cgraph.h (get_summary_id): New.
	(symbol_table::release_symbol): Set m_summary_id to -1
	by default.
	(symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
	* ipa-fnsummary.c (ipa_fn_summary_t): Switch from
	function_summary to fast_function_summary.
	* ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
	* ipa-pure-const.c (class funct_state_summary_t):
	Switch from function_summary to fast_function_summary.
	* ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
	(class ipa_ref_opt_summary_t): Switch from function_summary
	to fast_function_summary.
	* symbol-summary.h (class function_summary_base): New class
	that is created from base of former function_summary.
	(function_summary_base::unregister_hooks): New.
	(class function_summary): Inherit from function_summary_base.
	(class call_summary_base): New class
	that is created from base of former call_summary.
	(class call_summary): Inherit from call_summary_base.
	(struct is_same): New.
	(class fast_function_summary): New summary class.
	(class fast_call_summary): New summary class.
	* vec.h (vec_safe_grow_cleared): New function.

2019-02-18  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_get_multilib_abi_name): New function.
	(TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
	* doc/tm.texi: Document new target hook.
	* doc/tm.texi.in: Likewise.
	* target.def: Add new target macro.
	* gcc.c (find_fortran_preinclude_file): Do not search multilib
	suffixes.

2019-02-17  Alan Modra  <amodra@gmail.com>

	PR target/89271
	* config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
	output reg on add insn.
	(<bd>tf_<mode> split): Likewise.  Match predicates with insn.

2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89372
	* config/i386/sse.md (ssedoublemode): Remove V4HI.
	(PMULHRSW): Likewise.
	(<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
	TARGET_AVX2.
	(ssse3_pmulhrswv4hi3): New expander.

2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
	MMX.  Add isa attribute.

2019-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/66152
	* builtins.h (c_readstr): Declare.
	* builtins.c (c_readstr): Remove forward declaration.  Add
	null_terminated_p argument, if false, read all bytes from the
	string instead of stopping after '\0'.
	* expr.c (string_cst_read_str): New function.
	(store_expr): Use string_cst_read_str instead of
	builtin_strncpy_read_str.  Try to store by pieces the whole
	exp_len first, and only if that fails, split it up into
	store by pieces followed by clear_storage.  Formatting fix.

	* config/i386/i386.md (*movqi_internal): Remove static from
	buf variable.  Use output_asm_insn (buf, operands); return "";
	instead of return buf;.
	* config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
	*<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
	*<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.

2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/linux.h (ASAN_CC1_SPEC): Define.
	(CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
	* config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
	(CC1_SPEC): Likewise.
	* config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.

2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* asan.c (asan_emit_stack_protection): Use full-sized mask to align
	the base address on 64-bit strict-alignment platforms.

2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.

2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.

2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR rtl-optimization/88308
	* shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
	on copied instruction.

2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* final.c (insn_current_reference_address): Replace test on JUMP_P
	with test on jump_to_label_p.
	* config/visium/visium-passes.def: New file.
	* config/visium/t-visium (PASSES_EXTRA): Define.
	* config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
	* config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
	(TRAMPOLINE_ALIGNMENT): Define.
	* config/visium/visium.c (visium_option_override): Do not register
	the machine-specific reorg pass here.
	(visium_trampoline_init): Align the BRA insn on a 64-bit boundary
	for the GR6.
	(output_branch): Adjust threshold for long branch instruction.
	* config/visium/visium.md (cpu): Move around.
	(length): Adjust for the GR6.

2019-02-15  Richard Biener  <rguenther@suse.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89278
	* tree-loop-distribution.c: Include tree-eh.h.
	(generate_memset_builtin, generate_memcpy_builtin): Call
	rewrite_to_non_trapping_overflow on builtin->size before passing it
	to force_gimple_operand_gsi.

2019-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR other/89342
	* optc-save-gen.awk: Handle optimize_fast like optimize_size or
	optimize_debug.
	* opth-gen.awk: Likewise.

2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
	Enable MMX, SSE and SSE2 by default.
	* config/i386/i386.c (ix86_option_override_internal): Do not
	explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.

2019-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89354
	* combine.c (make_extraction): Punt if extraction_mode is narrower
	than len bits.

2019-02-14  Maya Rashish  <coypu@sdf.org>

	* config.gcc (*-*-netbsd*): Add netbsd-d.o.
	* config/netbsd-d.c: New file.
	* config/t-netbsd: Add netbsd-d.o

2018-02-14  Steve Ellcey  <sellcey@marvell.com>

	* config/aarch64/aarch64.c (aarch64_attribute_table): Change
	affects_type_identity to true for aarch64_vector_pcs.
	(aarch64_comp_type_attributes): New function.
	(TARGET_COMP_TYPE_ATTRIBUTES): New macro.

2019-02-14  Tamar Christina  <tamar.christina@arm.com>

	PR target/88850
	* config/arm/iterators.md (ANY64): Add V4HF.

2019-02-14  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/89242
	* dce.c (delete_unmarked_insns): Call free_dominance_info we
	process a transformation.

2019-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89314
	* fold-const.c (fold_binary_loc): Cast strlen argument to
	const char * before dereferencing it.  Formatting fixes.

	PR middle-end/89284
	* passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.

2019-02-13  Ian Lance Taylor  <iant@golang.org>

	* optc-save-gen.awk: Set var_opt_hash for initial optimizations
	and set current index for other optimizations.

2019-02-13  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
	nonimmediate_operand as operand 2 predicate.
	(vec_set<VF2_512_256:mode>_0): Ditto.
	(vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
	(*vec_concatv2si): Remove alternative 2.
	(*vec_concatv4si_0): Use vm constraint for alternative 0.
	(*vec_concatv4si_0): Remove preferred_for_speed attribute.
	(vec_concatv2di): Split alternatives 4,5,6 to ...
	(*vec_concatv2di_0) ... new pattern.

2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/89190
	* config/arm/arm.c (ldm_stm_operation_p) Set
	addr_reg_in_reglist correctly for first register.
	(load_multiple_sequence): Remove dead base check.
	(gen_ldm_seq): Correctly set write_back for Thumb-1.

2019-02-13  Tamar Christina  <tamar.christina@arm.com>

	PR target/88847
	* config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
	Expose as @aarch64_pred_mov.
	* config/aarch64/aarch64.c (aarch64_classify_address):
	Use expand_insn which legitimizes operands.

2019-02-13  Martin Liska  <mliska@suse.cz>

	* builtins.h (expand_builtin_with_bounds): Remove declaration.
	* calls.c (struct arg_data): Remove special_slot, pointer_arg
	and pointer_offset fields.
	(initialize_argument_information): Remove usage of dead
	fields.
	* cgraph.h (struct cgraph_thunk_info): Remove
	add_pointer_bounds_args.
	* cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
	fields.
	(cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
	fields.
	* config/i386/i386.c (ix86_function_arg_advance): Remove
	unrelated comment.
	(struct builtin_isa): Remove leaf_p and nothrow_p fields.
	(def_builtin):  Remove usage of dead
	fields.
	(ix86_add_new_builtins): Likewise.
	* ipa-fnsummary.c (compute_fn_summary): Likewise.
	* ipa-icf.c (sem_function::equals_wpa): Likewise.
	(sem_function::init): Likewise.
	(sem_variable::merge): Likewise.
	* ipa-visibility.c (function_and_variable_visibility): Likewise.
	* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
	* lto-cgraph.c (lto_output_node): Likewise.
	(lto_output_varpool_node): Likewise.
	(input_node): Likewise.
	(input_varpool_node): Likewise.
	* lto-streamer-out.c (lto_output): Likewise.
	* tree-inline.c (expand_call_inline): Remove usage of
	assign_stmts.
	* tree-inline.h (struct copy_body_data): Likewise.
	* varpool.c (varpool_node::dump): Likewise.

2019-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89303
	* tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
	into pt->vars_contains_escaped_heap instead of setting
	pt->vars_contains_escaped_heap to it.

	PR middle-end/89281
	* optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
	INTVAL (size), compare it to GET_MODE_MASK instead of
	1 << GET_MODE_BITSIZE.

	PR target/89290
	* config/i386/predicates.md (x86_64_immediate_operand): Allow
	TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
	-mcmodel=large.

2019-02-13  Martin Liska  <mliska@suse.cz>

	PR lto/88858
	* cfgrtl.c (remove_barriers_from_footer): New function.
	(try_redirect_by_replacing_jump): Use it.
	(cfg_layout_redirect_edge_and_branch): Likewise.

2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
	vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
	* config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
	(crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
	* config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
	(VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
	New BU_CRYPTO_2.
	* config/rs6000/rs6000.c (builtin_function_type)
	<CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
	CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
	CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
	* doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
	vec_ncipher_be, vec_ncipherlast_be): New builtin functions.

2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
	-maltivec. Delete -maltivec=be and -maltivec=le documentation.

2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89229
	* config/i386/i386.md (*movoi_internal_avx): Revert revision
	268678 and revision 268657.
	(*movti_internal): Likewise.

2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/89233
	* config/s390/s390.c (s390_decompose_address): Update comment.
	(s390_check_qrst_address): Reject invalid address forms after
	LRA.

2019-02-12  Martin Liska  <mliska@suse.cz>

	PR lto/88876
	* ipa-pure-const.c (propagate_pure_const): Revert hunk as
	we need default values of funct_state for a function that
	is not optimized.

2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>

	* asan.c (asan_expand_mark_ifn): Take into account the alignment of
	the object to pick the size of stores on strict-alignment platforms.

	* config/sparc/sparc.md (*movsi_insn): Minor tweak.
	(*movdi_insn_sp32): Likewise.
	(*movdi_insn_sp64): Likewise.

2019-02-12  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/88677
	* cgraphunit.c (analyze_functions): Clear READONLY flag for external
	types that needs constructiong.
	* tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.

2019-02-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89253
	* tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
	duplicate the loop.

2019-02-11  David Malcolm  <dmalcolm@redhat.com>

	PR lto/88147
	* input.c (selftest::test_line_offset_overflow): New selftest.
	(selftest::input_c_tests): Call it.

2019-02-11  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/88771
	* gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
	when -Wstringop-overflow is set.
	(builtin_memref::builtin_memref): Adjust excessive upper bound
	only when lower bound is not excessive.
	(maybe_diag_overlap): Detect and diagnose excessive bounds via
	-Wstringop-ovefflow.
	(maybe_diag_offset_bounds): Rename...
	(maybe_diag_access_bounds): ...to this.
	(check_bounds_or_overlap): Adjust for name change above.

2019-02-11  Martin Sebor  <msebor@redhat.com>

	PR c++/87996
	* builtins.c (max_object_size): Move from here...
	* builtins.h (max_object_size): ...and here...
	* tree.c (max_object_size): ...to here...
	* tree.h (max_object_size): ...and here.

2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
	and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
	for correct semantics.

2019-02-11  Alan Modra  <amodra@gmail.com>

	* doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
	-mlongcall and -mpltseq.
	(RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
	(RS/6000 and PowerPC Options <-mpltseq>): Document.
	* config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
	* config/rs6000/sysv4.opt (mpltseq): New option.
	* config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
	(SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
	support is lacking.  Don't allow -mpltseq with -mbss-plt.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
	-mpltseq given for ELFv1.
	* config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
	Only use UNSPEC_PLTSEQ for inline PLT calls.
	(rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
	use UNSPEC_PLTSEQ for inline PLT calls.
	(rs6000_indirect_call_template_1, rs6000_longcall_ref),
	(rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
	uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
	* config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
	(pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
	(pltseq_mtctr_<mode>): Likewise.

2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
	Solaris ld.
	* configure: Regenerate.

2019-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
	instead of r.

2019-02-11  Hans-Peter Nilsson  <hp@axis.com>

	* function.c (assign_parm_setup_block): Use the stored
	size, not the passed size, when allocating stack-space,
	also for a parameter with alignment larger than
	MAX_SUPPORTED_STACK_ALIGNMENT.

2019-02-11  Martin Liska  <mliska@suse.cz>

	PR ipa/89009
	* ipa-cp.c (build_toporder_info): Remove usage of a param.
	* ipa-inline.c (inline_small_functions): Likewise.
	* ipa-pure-const.c (propagate_pure_const): Likewise.
	(propagate_nothrow): Likewise.
	* ipa-reference.c (propagate): Likewise.
	* ipa-utils.c (struct searchc_env): Remove unused field.
	(searchc): Always search across AVAIL_INTERPOSABLE.
	(ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
	the only called IPA pure const can properly not propagate
	across interposable boundary.
	* ipa-utils.h (ipa_reduced_postorder): Remove param.

2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.md (call_internal, call_value_internal,
	sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.

2019-02-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
	typo.

2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
	in comments

2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.

2019-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89268
	* tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
	if preds is non-NULL.

2019-02-09  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/89272
	* tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
	polymorphic types.

2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.md (trap): New pattern.

2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
	dwarf span.

2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
	to split POST_INC.

2019-02-09  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (localize_node): Also do not localize
	LDPR_PREVAILING_DEF_IRONLY_EXP.

2019-02-09  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/87957
	* tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
	instead of type_with_linkage.

2019-02-09  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/88755
	* params.def (uninlined-function-insns, uninlined-function-time,
	uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
	bound so we don't get overflows.

2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-string.c (expand_compare_loop,
	expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
	memcmp/strncmp.

2019-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89246
	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	If !node->definition and TYPE_ARG_TYPES is non-NULL, use
	TYPE_ARG_TYPES instead of DECL_ARGUMENTS.

2019-02-09  Alan Modra  <amodra@gmail.com>

	PR target/88343
	* config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
	case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
	setup.

2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/88560
	* lra-constraints.c (process_alt_operands): Don't increase reject
	for memory when offset memory is required.

2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/vector.md: Implement vector copysign.

2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>

	* expr.c (expand_constructor): Correct indentations.

2019-02-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89247
	* tree-if-conv.c: Include tree-cfgcleanup.h.
	(version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
	(tree_if_conversion): Pass through predicate vector.
	(pass_if_conversion::execute): Do CFG cleanup and SSA update
	inline, see if any if-converted loops we refrece in
	LOOP_VECTORIZED calls vanished and fixup.
	* tree-if-conv.h (tree_if_conversion): Adjust prototype.

2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/constraints.md (jdd): New constraint.

2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89229
	* config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
	upper 16 vector registers without TARGET_AVX512VL.
	(*movti_internal): Likewise.

2019-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/89234
	* except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
	is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
	(copy_reg_eh_region_note_backward): Likewise.

2019-02-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/89223
	* tree-data-ref.c (initialize_matrix_A): Fail if constant
	doesn't fit in HWI.
	(analyze_subscript_affine_affine): Handle failure from
	initialize_matrix_A.

2019-02-08  Jakub Jelinek  <jakub@redhat.com>

	* cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
	cfun everywhere.

2019-02-07  David Malcolm  <dmalcolm@redhat.com>

	PR tree-optimization/86637
	PR tree-optimization/89235
	* tree-vect-loop.c (optimize_mask_stores): Add an
	auto_purge_vect_location sentinel to ensure that vect_location is
	purged on exit.
	* tree-vectorizer.c
	(auto_purge_vect_location::~auto_purge_vect_location): New dtor.
	(try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
	to ensure that vect_location is purged on exit.
	(pass_slp_vectorize::execute): Likewise, replacing the manual
	reset.
	* tree-vectorizer.h (class auto_purge_vect_location): New class.

2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/iterators.md (max_opp): New code_attr.
	(USMAX): New code iterator.
	* config/aarch64/predicates.md (aarch64_smin): New predicate.
	(aarch64_smax): Likewise.
	* config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
	(*aarch64_<su>abd<mode>_3): ... Change RTL representation to
	MINUS (MAX MIN).

2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/89229
	* config/i386/i386.md (*movoi_internal_avx): Set mode to OI
	for TARGET_AVX512VL.
	(*movti_internal): Set mode to TI for TARGET_AVX512VL.

2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def: Add new types.
	* config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
	(s390_vec_xlw4): Make the memory operand into a const pointer.
	(s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
	float.
	* config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
	a new vector type with the alignment of the scalar memory operand.

2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* config/arm/arm-protos.h (valid_operands_ldrd_strd,
	arm_count_ldrdstrd_insns): New declarations.
	* config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
	MINUS.
	(valid_operands_ldrd_strd): New function.
	(arm_count_ldrdstrd_insns): New function.
	* config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
	sets instead of single DImode set and define new insns to match this.

2019-02-07  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
	Make it a C initializer.

2019-02-07  Tamar Christina  <tamar.christina@arm.com>

	PR/target 88850
	* config/arm/neon.md (*neon_mov<mode>): Add r -> r case.

2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon.md (neon_<sup>dot<vsi2qi>):
	Use neon_dot<q> for type.
	(neon_<sup>dot_lane<vsi2qi>): Likewise.

2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
	Use neon_dot<q> for type.
	(aarch64_<sur>dot_lane<vsi2qi>): Likewise.
	(aarch64_<sur>dot_laneq<vsi2qi>): Likewise.

2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/89225
	* lra-constaints.c (simplify_operand_subreg): Add subreg mode
	sizes check.

2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
	after restoring registers saved to allocate the frame on Windows.

2019-02-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89182
	* graphite.h (cached_scalar_evolution_in_region): Declare.
	* graphite.c (struct seir_cache_key): New.
	(struct sese_scev_hash): Likewise.
	(seir_cache): New global.
	(cached_scalar_evolution_in_region): New function.
	(graphite_transform_loops): Allocate and release seir_cache.
	* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
	cached_scalar_evolution_in_region.
	* graphite-scop-detection.c (scop_detection::can_represent_loop):
	Simplify.
	(scop_detection::graphite_can_represent_expr: Use
	cached_scalar_evolution_in_region.
	(scop_detection::stmt_simple_for_scop_p): Likewise.
	(find_params_in_bb): Likewise.
	(gather_bbs::before_dom_children): Likewise.
	* graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
	(add_loop_constraints): Likewise.

2019-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89210
	* fold-const-call.c (fold_const_vec_convert): Pass true as last
	operand to new_unary_operation only if both element types are integral
	and it isn't a widening conversion.  Return NULL_TREE if
	new_unary_operation failed.

2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR target/88856
	* config/s390/s390.md: Remove load and test FP splitter.

2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR target/89112
	* config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
	expand_compare_loop, expand_block_compare_gpr,
	expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
	REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
	#include "profile-count.h" and "predict.h" for types and functions
	needed to work with REG_BR_PROB notes.

2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR target/89112
	* config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
	for the long branch case.

2019-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/89188
	* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
	can throw, non-call exceptions are enabled and we can't delete
	dead exceptions or alter cfg.  Set must_clean if
	delete_insn_and_edges returns true, don't set it blindly for calls.
	Assert that delete_unreachable_blocks is called only if can_alter_cfg.

	PR rtl-optimization/89195
	* combine.c (make_extraction): For MEMs, don't extract bytes outside
	of the original MEM.

2019-02-05  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/89000
	* gcov.c (function_summary): Remove argument.
	(file_summary): New function.
	(print_usage): Replace tabs with spaces.
	(generate_results): Use new function file_summary.

2019-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/89186
	* optabs.c (prepare_cmp_insn): Pass x and y to
	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).

2019-02-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/89150
	* bitmap.h (struct bitmap_obstack): Do not mark GTY.
	(struct bitmap_element): Drop chain_prev so we properly recurse on
	the prev member, supporting tree views.
	(struct bitmap_head): GTY skip the obstack member.

2019-02-04  Alexander Monakov  <amonakov@ispras.ru>

	PR c/88698
	* doc/extend.texi (Vector Extensions): Add an example of using vector
	types together with x86 intrinsics.

2019-02-04  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
	str[] size to 160, and comment.

2019-02-04  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
	(rs6000_pltseq_template): Guard output of TLS markers with
	TARGET_TLS_MARKERS.
	(rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
	(rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
	to use inline PLT sequences.
	* config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
	(pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
	(pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.

2019-02-04  Martin Liska  <mliska@suse.cz>

	PR ipa/88985
	* ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
	out when ipa_fn_summaries does not contain entry for callee.

2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h: Remove superfluous blank lines.
	* config/sparc/sparc.c (global_offset_table_rtx): Rename into...
	(got_register_rtx): ...this.
	(sparc_got): Adjust to above renaming.
	(sparc_tls_got): Likewise.
	(sparc_delegitimize_address): Likewise.
	(sparc_output_mi_thunk): Likewise.
	(sparc_init_pic_reg): Likewise.
	(save_local_or_in_reg_p): Fix test on the GOT register.
	(USE_HIDDEN_LINKONCE): Move around.
	(get_pc_thunk_name): Likewise.
	(gen_load_pcrel_sym): Likewise.
	(load_got_register): Likewise.

2019-02-04  Kito Cheng  <kito.cheng@gmail.com>

	* config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
	of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".

2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
	into consideration.

2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config.gcc (with_nds32_lib, glibc):
	Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
	* config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
	(NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.

2019-02-03  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89071
	* config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
	Do not prefer (v,v) alternative for non-AVX targets and (m,v)
	alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
	(*rcpsf2_sse): Ditto.
	(*rsqrtsf2_sse): Ditto.
	(sse4_1_round<mode<2): Ditto.

2019-02-03  Richard Biener  <rguenther@suse.de>

	PR debug/87295
	* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
	orig.

2019-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/87887
	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	Punt with warning on aggregate return or argument types.  Ignore
	type/mode checking for uniform arguments.

2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (try_combine): Do not print "Can't combine" messages unless
	printing failed combination attempts.

2019-02-01  Martin Jambor  <mjambor@suse.cz>

	PR hsa/87863
	* omp-grid.c (grid_mark_variable_segment): Set assembler name of group
	segment and global segment variables before making them static.

2019-02-01  Martin Jambor  <mjambor@suse.cz>

	* omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
	missed optimization dump with dump_enabled_p.

2019-02-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/88597
	* tree-scalar-evolution.c (analyze_scalar_evolution): Set up
	the instantiate cache.
	(instantiate_scev_binary): Elide second operand procesing
	if equal to the first.
	* tree-chrec.c (chrec_contains_symbols): Add visited set.
	(chrec_contains_undetermined): Likewise.
	(tree_contains_chrecs): Likewise.

2019-02-01  Jan Hubicka  <hubicka@ucw.cz>

	* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.

2019-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/89143
	* wide-int-range.h (wide_int_range_absu): Declare.
	* wide-int-range.cc (wide_int_range_absu): New function.
	* tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.

	PR tree-optimization/88107
	* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
	instead of assertion that eh_region_outermost is non-NULL, if it
	is NULL, set *ALL to true and return NULL.
	(move_sese_region_to_fn): Adjust caller, if all is set, call
	duplicate_eh_regions with NULL region.

2019-02-01  Richard Biener  <rguenth@suse.de>

	PR rtl-optimization/88593
	* mode-switching.c (optimize_mode_switching): Free dominators before
	calling cleanup_cfg.

2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/88932
	* tree-predcom.c (try_combine_chains): Get loop bbs in dom order.

2019-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89137
	* omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
	bogus clang warning.

2019-01-31  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89071
	* config/i386/i386.md (*extendsfdf2): Split out reg->reg
	alternative to avoid partial SSE register stall for TARGET_AVX.
	(truncdfsf2): Ditto.
	(sse4_1_round<mode>2): Ditto.

2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/89008
	* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
	process anything of the form X * 0.

2019-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89135
	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
	with abnormal preds.

2019-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/89124
	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
	always_inline callees into no_sanitize_address callers.

2019-01-31  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/89115
	* lra.c (lra_rtx_hash): Properly hash CONST_INT values.

2019-01-30  Martin Sebor  <msebor@redhat.com>

	PR other/89106
	* doc/extend.texi (cast to a union): Correct and expand.

2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/87246
	* lra-constraints.c (simplify_operand_subreg): Reload memory
	in subreg if the address became invalid.

2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/87064
	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
	Disable for little-endian.

2019-01-30  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/89115
	* opts.c (default_options_optimization): Reduce
	PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
	Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
	to the default.

2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
	Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
	type of vector element when vec_extract is implemented by direct
	move.

2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/invoke.texi (C Language Options): List "-fopenacc-dim".

2019-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89111
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
	canonicalization to appropriately sized access types.

2019-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/89105
	* config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
	for arguments to functions that are TU-local and shouldn't be
	referenced by assembly.

2019-01-30  Ulrich Drepper  <drepper@redhat.com>

	* dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
	after '='.

2019-01-29  Martin Sebor  <msebor@redhat.com>

	PR c/88956
	* gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.

2019-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/66676
	PR ipa/89104
	* omp-simd-clone.c (simd_clone_clauses_extract)
	<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
	OMP_CLAUSE_ALIGNED_ALIGNMENT.

2019-01-29  Vineet Gupta  <vgupta@synopsys.com>

	* config.gcc: Force .init_array for ARC.

2019-01-29  Richard Biener  <rguenther@suse.de>

	PR debug/87295
	* dwarf2out.c (collect_skeleton_dies): New helper.
	(copy_decls_for_unworthy_types): Call it.
	(build_abbrev_table): Assert we do not try to replace
	DW_AT_signature refs with local refs.

2019-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/89002
	* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
	for lastprivate/linear IV, push gimplify context around gimplify_assign
	and, if it needed any temporaries, pop it into a gimple bind around the
	sequence.

2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* common.opt (-Wattribute-alias): Remove "no-" from name.
	Make -Wattribute-alias command line option and
	#pragma GCC diagnostic ignored "-Wattribute-alias" work again.

2019-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/89073
	* doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
	-madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
	x86 ISA options.
	(bmi2): Add missing @opindex.
	* doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
	options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
	avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
	avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
	avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
	cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
	fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
	pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
	sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
	xsavec, xsaveopt and xsaves options.

2019-01-28  Richard Biener  <rguenther@suse.de>

	PR debug/89076
	* dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
	support removal.

2019-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88739
	* tree-cfg.c (verify_types_in_gimple_reference): Verify
	BIT_FIELD_REFs only are applied to mode-precision operands
	when they are integral.
	(verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
	BIT_FIELD_REFs of non-mode-precision integral operands.

2019-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/87214
	* config/i386/sse.md
	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
	avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
	first constants in pairs are multiples of 2.  Formatting fixes.
	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
	avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
	first constants in each quadruple are multiples of 4.  Formatting fixes.

2019-01-26  Martin Jambor  <mjambor@suse.cz>

	PR ipa/88933
	* tree-inline.c: Include tree-cfgcleanup.h.
	(delete_unreachable_blocks_update_callgraph): Move...
	* tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
	...here, make externally visible, make second argument bool, adjust
	all callers.
	* tree-cfgcleanup.c: Include cgraph.h.
	* tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
	Declare.
	* ipa-prop.c: Include tree-cfgcleanup.h.
	(ipcp_transform_function): Call
	delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.

2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/88846
	* ira.c (process_set_for_memref_referenced_p): New.
	(memref_referenced_p): Add new param.  Use
	process_set_for_memref_referenced_p.  Add new switch cases.
	(memref_used_between_p): Pass new arg to memref_referenced_p.

2019-01-25  Richard Earnshaw  <rearnsha@arm.com>

	PR target/88469
	* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
	argument ABI_BREAK.  Set to true if the calculated alignment has
	changed in gcc-9.  Check bit-fields for their base type alignment.
	(aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
	(aarch64_function_arg_boundary): Likewise.
	(aarch64_gimplify_va_arg_expr): Likewise.

2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/89037
	* varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
	instead of accessing TREE_INT_CST_ELT directly.

2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (Environment attributes): Add fenv and
	fenv_exceptions description.

2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64.c (aarch64_select_cc_mode):
	Allow SUBREG when matching CC_NZmode compare.

2019-01-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89049
	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
	Look at the pattern stmt to determine if the stmt is vectorized.

2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (*pred_mov<mode>)
	(pred_mov<mode>): Handle all-register forms using both a new
	alternative and a split.

2019-01-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86865
	* graphite-scop-detection.c (scop_detection::can_represent_loop):
	Reject non-do-while loops.

2019-01-24  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
	* config/rs6000/constraints.md (Q constraint): Use REG_P.
	* config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
	* config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
	SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
	* config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
	* config/rs6000/predicates.md (altivec_register_operand, vint_operand,
	vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
	vlogical_operand, gpc_reg_operand, int_reg_operand,
	int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
	(ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
	cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
	(save_world_operation, restore_world_operation, lmw_operation,
	stmw_operation): Use MEM_P and REG_P.
	(tie_operand): Use MEM_P.
	(vrsave_operation, crsave_operation): Use REG_P.
	(mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
	(fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
	(quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
	(call_operand): Use HARD_REGISTER_P.
	(indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
	Use CONST_INT_P.
	(lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
	* config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
	quad_aligned_load_p, replace_swapped_aligned_store,
	recombine_lvx_pattern, replace_swapped_aligned_load,
	recombine_stvx_pattern): Use MEM_P.
	(const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
	Use MEM_P and SYMBOL_REF_P.
	(rtx_is_swappable_p): Use REG_P and CONST_INT_P.
	(insn_is_swappable_p): Use REG_P and MEM_P.
	(insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
	* config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
	Use CONST_INT_P.
	* config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
	Use CONST_DOUBLE_P.
	(rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
	CONST_WIDE_INT_P.
	(rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
	CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
	(rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
	HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
	reg_or_subregno:
	(output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
	(easy_altivec_constant, rs6000_legitimate_offset_address_p,
	rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
	rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
	rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
	rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
	rs6000_split_logical_di): Use CONST_INT_P.
	(rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
	REG_P and SYMBOL_REF_P.
	(setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
	(print_operand): Use CONST_INT_P, MEM_P and REG_P.
	(virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
	mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
	(rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
	(small_data_operand, print_operand_address): Use CONST_INT_P and
	SYMBOL_REF_P.
	(split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
	(rs6000_init_hard_regno_mode_ok, direct_move_p):
	Use HARD_REGISTER_NUM_P.
	(rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
	(rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
	SUBREG_P and SYMBOL_REF_P.
	(register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
	and HARD_REGISTER_NUM_P.
	(rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
	reg_or_subregno.
	(rs6000_adjust_cost, find_mem_ref): Use MEM_P.
	(macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
	MEM_P and REG_P.
	(legitimate_indirect_address_p, legitimate_lo_sum_address_p,
	registers_ok_for_quad_peep, rs6000_output_function_epilogue,
	find_addr_reg): Use REG_P.
	(altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
	(rs6000_emit_le_vsx_move): Use SUBREG_P.
	(offsettable_ok_by_alignment, constant_pool_expr_p,
	legitimate_small_data_p, rs6000_output_dwarf_dtprel,
	rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
	rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
	rs6000_assemble_integer, create_TOC_reference,
	rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
	rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
	(rs6000_split_vec_extract_var): Use reg_or_subregno.
	* config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
	CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
	* config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
	* config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
	* config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
	(INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
	(CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
	* config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
	and cbranch<mode>4): Use CONST_INT_P.
	(multiple define_splits): Use REG_P and SUBREG_P.
	(define_expands call, call_value): Use MEM_P.
	(define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
	(define insn *mtcrfsi): Use CONST_INT_P and REG_P.
	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
	*vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
	and HARD_REGISTER_NUM_P.
	(multiple define_splits): Use HARD_REGISTER_NUM_P.

2019-01-24  Uroš Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/88948
	* rtl.h (prepare_copy_insn): New prototype.
	* gcse.c (prepare_copy_insn): New function, split out from
	process_insert_insn.
	(process_insert_insn): Use prepare_copy_insn.
	* store-motion.c (replace_store_insn): Use prepare_copy_insn
	instead of gen_move_insn.

2019-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/89006
	* config/i386/i386.c (ix86_pic_register_p): Return true for
	UNSPEC_SET_GOT too.

	PR tree-optimization/88964
	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
	punt if HONOR_SNANS (chrec).

	PR middle-end/89015
	* tree-nested.c (convert_nonlocal_reference_stmt,
	convert_local_reference_stmt, convert_tramp_reference_stmt,
	convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
	gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
	or GIMPLE_OMP_TASK.

	PR tree-optimization/89027
	* tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
	for "omp simd array" variables.

2019-01-24  Richard Earnshaw  <rearnsha@arm.com>

	PR target/88469
	* profile-count.h (profile_count): On ARM systems using GCC 6/7/8
	force the alignment of m_val.

2019-01-24  Richard Biener  <rguenther@suse.de>

	PR lto/87187
	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
	When in "legacy" debug mode make sure to reset self-origins.

2019-01-24  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/88994
	* gcov-io.c (mangle_path): Do not allocate a bigger buffer,
	result will be always smaller or equal to the original.
	* gcov.c (mangle_name): Fix else branch where we should
	also copy to PTR and shift the pointer.

2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>

	* tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
	* vr-values.c (find_case_label_ranges): Fix a comment typo.

2019-01-23  Bin Cheng  <bin.cheng@arm.com>
	    Steve Ellcey <sellcey@marvell.com>

	PR target/85711
	* recog.c (address_operand): Return false on wrong mode for address.
	(constrain_operands): Check for mode with 'p' constraint.

2019-01-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/88998
	* config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
	Disparage MMX alternative.
	(sse2_cvtpd2pi): Ditto.
	(sse2_cvttpd2pi): Ditto.

2019-01-23  David Malcolm  <dmalcolm@redhat.com>

	PR driver/89014
	* config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
	use-after-free of the result of
	aarch64_get_extension_string_for_isa_flags.

2019-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR c/44715
	* doc/extend.texi: Document break and continue behavior in
	statement expressions.

2019-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89008
	* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
	not leave another stray operand.

2019-01-23  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Bump to 9.0.1.

2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
	thunk that returns by reference, use the type of the return object
	of the thunk instead of that of the alias to build the dereference.

2019-01-23  Vineet Gupta  <vgupta@synopsys.com>

	* config/arc/atomic.md: Add operand to DMB instruction.

2019-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/88964
	* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
	build_zero_cst instead of build_int_cst.  Return false for loop
	invariants which honor signed zeros.

2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.

2019-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/88965
	* config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
	(rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
	is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.

	PR middle-end/88968
	* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
	non-integral DECL_BIT_FIELD_REPRESENTATIVEs.

	PR target/87064
	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
	Disable for little endian.

2019-01-22  Richard Earnshaw  <rearnsha@arm.com>

	PR target/88469
	* config/arm/arm.c (arm_needs_double_word_align): Check
	DECL_BIT_FIELD_TYPE.

2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/88909
	* config/i386/i386-builtin.def: Add mask2 to all builtin
	initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
	SPECIAL_ARGS.
	* config/i386/i386.c (BDESC): Add mask2 to the definition.
	(BDESC_FIRST): Likewise.
	(define_builtin): Add an argument for mask2.  Updated to handle
	both ix86_isa_flags and ix86_isa_flags2.
	(define_builtin_const): Likewise.
	(define_builtin_pure): Likewise.
	(define_builtin2): Deleted.
	(define_builtin_const2): Likewise.
	(builtin_description): Add a member, mask2.
	(bdesc_*): Add mask2 to builtin initializations.
	(ix86_init_mmx_sse_builtins): Update calls to def_builtin,
	def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
	support.
	(ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.

2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/88954
	* config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
	noplt attribute.

2019-01-22  Richard Earnshaw  <rearnsha@arm.com>

	PR target/88469
	* config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
	alignment is dominated by a bitfield with 64-bit aligned base type.
	(arm_function_arg): Emit a warning if the alignment has changed since
	earlier GCC releases.
	(arm_function_arg_boundary): Likewise.
	(arm_setup_incoming_varargs): Likewise.

2019-01-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88862
	* graphite-scop-detection.c
	(scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.

2019-01-22  Andrew Stubbs  <ams@codesourcery.com>

	* doc/extend.tex (AMD GCN Function Attributes): New section.
	* doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
	* doc/invoke.texi (AMD GCN Options): New section.
	* doc/md.texi (Constraints for Particular Machines): Add AMD GCN.

2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
	register and decoded HIGH/LO_SUM combinations for labels in PIC mode.

2019-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/88044
	* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
	is false in the first iteration, but !every_iteration, return false
	instead of true with niter->niter zero.

	PR rtl-optimization/88904
	* cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
	any nonequal registers before processing BB_END (b).

	PR target/88905
	* optabs.c (add_equal_note): Add op0_mode argument, use it instead of
	GET_MODE (op0).
	(expand_binop_directly, expand_doubleword_clz,
	expand_doubleword_popcount, expand_ctz, expand_ffs,
	expand_unop_direct, maybe_emit_unop_insn): Adjust callers.

	PR rtl-optimization/49429
	PR target/49454
	PR rtl-optimization/86334
	PR target/88906
	* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
	addressable from here...
	(emit_block_op_via_libcall): ... to here.

2019-01-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_operations): Use
	auto_vec for cost vector to fix memleak.
	(vectorize_fold_left_reduction): Properly gather SLP defs.
	(vectorizable_comparison): Do not swap operands to properly
	gather SLP defs.

2019-01-22  Alan Modra  <amodra@gmail.com>

	PR target/88614
	* config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
	stays a reg.  Allow a const_int.
	* config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
	* config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
	(IS_NOMARK_TLSGETADDR): Define.
	* config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
	(rs6000_output_tlsargs): New function.
	(rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
	__tls_get_addr call takes an arg.
	(rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
	* config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
	delete split..
	(call_value_nonlocal_sysv): ..or here, delete split.
	(tls_gdld_nomark): Delete.
	(call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
	predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
	(call_value_nonlocal_sysv): Likewise.
	(call_value_nonlocal_sysv_secure): Likewise.
	(call_value_nonlocal_aix): Likewise.
	(call_value_indirect_aix): Likewise.
	(call_value_indirect_elfv2): Likewise.
	(call_value_local32, call_value_local64): Disable for no-mark tls.
	(call_value_local_aix): Likewise.

2019-01-21  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/88938
	* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
	case IX86_BUILTIN_BEXTRI64]: Sanitize operands.

2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>

	* hash-map-tests.c (test_map_of_strings_to_int): Show how to use
	string contents as hash_map keys.

2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c/88928
	* c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
	for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
	instead of TYPE_ALIGN.
	(check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
	Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
	pointer from TYPE_STUB_DECL.

2019-01-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88934
	* tree-vect-slp.c (vect_mask_constant_operand_p): Always look
	at the possibly non-constant operand.
	(vect_get_constant_vectors): Adjust.

2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/71659
	* config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
	* config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
	instead of _X86INTRIN_H_INCLUDED.
	* onfig/i386/clwbintrin.h: Likewise.
	* config/i386/pkuintrin.h: Likewise.
	* config/i386/prfchwintrin.h: Likewise.
	* config/i386/rdseedintrin.h: Likewise.
	* config/i386/wbnoinvdintrin.h: Likewise.
	* config/i386/xsavecintrin.h: Likewise.
	* config/i386/xsavesintrin.h: Likewise.
	* config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
	* config/i386/xsaveintrin.h: Likewise.
	* config/i386/xsaveoptintrin.h: Likewise.
	* config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
	<prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
	<xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
	<clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
	<wbnoinvdintrin.h> and <pkuintrin.h> to ...
	* config/i386/immintrin.h: Here.

2019-01-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/87615
	* ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
	with aa_walk_budget.
	* cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
	aa_walk_budget_p parameter.
	* ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
	walk.  Updated all callers.
	(unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
	(eliminated_by_inlining_prob): New parameter fbi, pass it on to
	unmodified_parm.
	(will_be_nonconstant_expr_predicate): New parameter fbi, removed
	parameter info.  Extract info from fbi.  Pass fbi to recursive calls
	and to unmodified_parm.
	(phi_result_unknown_predicate): New parameter fbi, removed parameter
	info, updated call to will_be_nonconstant_expr_predicate.
	(param_change_prob): New parameter fbi, limit AA walking.
	(analyze_function_body): Initialize aa_walk_budget in fbi.  Update
	calls to various above functions.
	* ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
	parameter.  Use it to limit AA walking.
	* ipa-prop.c (detect_type_change_from_memory_writes): New parameter
	fbi, limit AA walk.
	(detect_type_change): New parameter fbi, pass it on to
	detect_type_change_from_memory_writes.
	(detect_type_change_ssa): Likewise.
	(aa_overwalked): Removed.
	(parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
	accordingly, adjust to the neew AA limiting scheme.
	(parm_ref_data_preserved_p): Likewise.
	(ipa_compute_jump_functions_for_edge): Adjust call to
	get_dynamic_type.
	(ipa_analyze_call_uses): Likewise.
	(ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
	(ipa_analyze_node): Initialize aa_walk_budget.
	(ipcp_transform_function): Likewise.
	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
	to get_dynamic_type.

2019-01-19  Jakub Jelinek  <jakub@redhat.com>

	* config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
	outside of #if CHECKING_P code.

2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>

	* gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
	New function, split out from...
	(loop_versioning::analyze_stride): ...here.
	(loop_versioning::find_per_loop_multiplication): Use gassign.
	(loop_versioning::analyze_term_using_scevs): Return a success code.
	(loop_versioning::analyze_arbitrary_term): New function.
	(loop_versioning::analyze_address_fragment): Use
	analyze_arbitrary_term if all else fails.

2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/88892
	* config/rs6000/rs6000.md (*movsi_from_df): Allow only register
	operands.

2019-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88903
	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
	scalar stmts a SLP shift amount is composed of when detecting
	shifts by scalars.

2019-01-18  Richard Earnshaw  <rearnsha@arm.com>

	PR target/88799
	* config/arm/arm-cpus.in (mp): New feature.
	(sec): New feature.
	(fgroup ARMv7ve): Add mp and sec features.
	(arch armv7-a): Add options to allow mp and sec extensions.
	(cpu generic-armv7-a): Add options to allow mp and sec extensions.
	(cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
	extenstions to the base architecture.
	(cpu cortex-a8): Add sec extension to the base architecture.
	(cpu marvell-pj4): Add mp and sec extensions to the base architecture.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
	variants down to the base v7-a varaint.
	* config/arm/t-multilib (v7_a_arch_variants): New variable.
	* doc/invoke.texi (ARM Options): Add +mp and +sec to the list
	of permitted extensions for -march=armv7-a and for
	-mcpu=generic-armv7-a.

2019-01-18  Martin Liska  <mliska@suse.cz>

	* params.def: Fix comment.
	* tree-profile.c (gimple_init_gcov_profiler): Bump function
	name.
	(gimple_gen_ic_func_profiler): Likewise.

2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
	* config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
	and put in error checks for stack protector guard options.
	(aarch64_stack_protect_guard): New.
	(TARGET_STACK_PROTECT_GUARD): Define.
	* config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
	(reg_stack_protect_address<mode>): New.
	(stack_protect_set): Adjust for SSP_GLOBAL.
	(stack_protect_test): Likewise.
	* config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
	(-mstack-protector-guard): Likewise.
	(-mstack-protector-guard-offset): Likewise.

2019-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/86214
	* tree-inline.h (struct copy_body_data): Add
	add_clobbers_to_eh_landing_pads member.
	* tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
	(copy_edges_for_bb): Call it if EH edge destination is <
	id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
	(expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
	if flag_stack_reuse != SR_NONE and clear it afterwards.

2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/85596
	* doc/install.texi (with-multilib-list): Document for aarch64.

2019-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/88734
	* config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
	(("..."))) with ("...").

2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* doc/extend.texi (Built-in Functions for Memory Model Aware
	Atomic Operations): Document atomic fetch and nand.

2019-01-18  Martin Liska  <mliska@suse.cz>
	    Richard Biener  <rguenther@suse.de>

	PR middle-end/88587
	* cgraph.h (create_version_clone_with_body): Add new argument
	with attributes.
	* cgraphclones.c (cgraph_node::create_version_clone): Add
	DECL_ATTRIBUTES to a newly created decl.  And call
	valid_attribute_p so that proper cl_target_optimization_node
	is set for the newly created declaration.
	* multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
	for declaration.
	(expand_target_clones): Do not call valid_attribute_p, it must
	be already done.
	* tree-inline.c (copy_decl_for_dup_finish): Reset mode for
	vector types.

2019-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/88734
	* config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
	(("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
	arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.

2019-01-17  Martin Sebor  <msebor@redhat.com>

	PR middle-end/88273
	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
	Handle anti-ranges the same as no range at all.

2018-01-17  Steve Ellcey  <sellcey@cavium.com>

	* config/aarch64/aarch64.c (cgraph.h): New include.
	(intl.h): New include.
	(supported_simd_type): New function.
	(currently_supported_simd_type): Ditto.
	(aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
	(aarch64_simd_clone_adjust): Ditto.
	(aarch64_simd_clone_usable): Ditto.
	(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
	(TARGET_SIMD_CLONE_ADJUST): Ditto.
	(TARGET_SIMD_CLONE_USABLE): Ditto.
	* config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
	* omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
	call.

2019-01-17  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/88800
	* gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
	NO_WARNING bit here.  Avoid folding out-of-bounds calls.
	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
	redundant argument.  Add new argument and issue diagnostics under
	its control.  Detect out-of-bounds access even with warnings
	disabled.
	(check_bounds_or_overlap): Change return type.  Add argument.
	(wrestrict_dom_walker::check_call): Adjust.
	* gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
	* tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
	check_bounds_or_overlap's return value.
	(handle_builtin_stxncpy): Same.
	(handle_builtin_strcat): Same.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi: Document dg-add-options sqrt_insn.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>

	* doc/sourcebuild.texi: Document dg-require-effective-target
	llvm_binutils and offload_gcn.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi: Document dg-required-effective-target
	exceptions.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Jan Hubicka  <hubicka@ucw.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* config.gcc: Add amdgcn*-*-amdhsa configuration.
	* configure.ac: Check for dlopen.
	* configure: Regenerate.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Jan Hubicka  <hubicka@ucw.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* common/config/gcn/gcn-common.c: New file.
	* config/gcn/driver-gcn.c: New file.
	* config/gcn/gcn-builtins.def: New file.
	* config/gcn/gcn-hsa.h: New file.
	* config/gcn/gcn-modes.def: New file.
	* config/gcn/gcn-opts.h: New file.
	* config/gcn/gcn-passes.def: New file.
	* config/gcn/gcn-protos.h: New file.
	* config/gcn/gcn-run.c: New file.
	* config/gcn/gcn-tree.c: New file.
	* config/gcn/gcn.c: New file.
	* config/gcn/gcn.h: New file.
	* config/gcn/gcn.opt: New file.
	* config/gcn/t-gcn-hsa: New file.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Tom de Vries  <tom@codesourcery.com>
	    Jan Hubicka  <hubicka@ucw.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* config/gcn/constraints.md: New file.
	* config/gcn/gcn-valu.md: New file.
	* config/gcn/gcn.md: New file.
	* config/gcn/predicates.md: New file.

2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
	flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
	(stmt_uses_0_or_null_in_undefined_way): Likewise.
	* tree-ssa-alias.c (same_addr_size_stores_p): Likewise.

2019-01-17  Tamar Christina  <tamar.christina@arm.com>

	PR target/88851
	* config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
	* config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
	it and document registers.

2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (ares_tunings): Define.
	* config/aarch64/aarch64-cores.def (ares): Use the above.

2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

	PR target/88794
	Revert:
	2018-11-06  Wei Xiao  <wei3.xiao@intel.com>

	* config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
	(_mm512_fixupimm_round_pd): Update parameters and builtin.
	(_mm512_maskz_fixupimm_round_pd): Ditto.
	(_mm512_fixupimm_round_ps): Ditto.
	(_mm512_maskz_fixupimm_round_ps): Ditto.
	(_mm_fixupimm_round_sd): Ditto.
	(_mm_maskz_fixupimm_round_sd): Ditto.
	(_mm_fixupimm_round_ss): Ditto.
	(_mm_maskz_fixupimm_round_ss): Ditto.
	(_mm512_fixupimm_pd): Ditto.
	(_mm512_maskz_fixupimm_pd): Ditto.
	(_mm512_fixupimm_ps): Ditto.
	(_mm512_maskz_fixupimm_ps): Ditto.
	(_mm_fixupimm_sd): Ditto.
	(_mm_maskz_fixupimm_sd): Ditto.
	(_mm_fixupimm_ss): Ditto.
	(_mm_maskz_fixupimm_ss): Ditto.
	(_mm512_mask_fixupimm_round_pd): Update builtin.
	(_mm512_mask_fixupimm_round_ps): Ditto.
	(_mm_mask_fixupimm_round_sd): Ditto.
	(_mm_mask_fixupimm_round_ss): Ditto.
	(_mm512_mask_fixupimm_pd): Ditto.
	(_mm512_mask_fixupimm_ps): Ditto.
	(_mm_mask_fixupimm_sd): Ditto.
	(_mm_mask_fixupimm_ss): Ditto.
	* config/i386/avx512vlintrin.h:
	(_mm256_fixupimm_pd): Update parameters and builtin.
	(_mm256_maskz_fixupimm_pd): Ditto.
	(_mm256_fixupimm_ps): Ditto.
	(_mm256_maskz_fixupimm_ps): Ditto.
	(_mm_fixupimm_pd): Ditto.
	(_mm_maskz_fixupimm_pd): Ditto.
	(_mm_fixupimm_ps): Ditto.
	(_mm_maskz_fixupimm_ps): Ditto.
	(_mm256_mask_fixupimm_pd): Update builtin.
	(_mm256_mask_fixupimm_ps): Ditto.
	(_mm_mask_fixupimm_pd): Ditto.
	(_mm_mask_fixupimm_ps): Ditto.
	* config/i386/i386-builtin-types.def: Add new types and remove useless ones.
	* config/i386/i386-builtin.def: Update builtin definitions.
	* config/i386/i386.c: Handle new builtin types and remove useless ones.
	* config/i386/sse.md: Update VFIXUPIMM* patterns.
	(<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
	(avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
	* config/i386/subst.md:
	(round_saeonly_sd_mask_operand4): Add new subst_attr.
	(round_saeonly_sd_mask_op4): Ditto.
	(round_saeonly_expand_operand5): Ditto.
	(round_saeonly_expand): Update.

2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

	PR target/88794
	Revert:
	2018-11-12  Wei Xiao  <wei3.xiao@intel.com>

	* config/i386/sse.md: Combine VFIXUPIMM* patterns
	(<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
	(avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.

2019-01-17  Wei Xiao  <wei3.xiao@intel.com>

	PR target/88794
	Revert:
	2018-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/88489
	* config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
	(avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
	instead of UNSPEC_FIXUPIMM.

2019-01-17  Richard Biener  <rguenther@suse.de>

	PR lto/86736
	* dwarf2out.c (want_pubnames): Never generate pubnames sections
	and friends for the LTO part of debug info.

2019-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/86214
	* cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
	if x == y.

	PR rtl-optimization/88870
	* dce.c (deletable_insn_p): Never delete const/pure calls that can
	throw if we can't alter the cfg or delete dead exceptions.
	(mark_insn): Don't call find_call_stack_args for such calls.

2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>

	* doc/extend.texi: Add four new prototypes for vec_ld and seven new
	prototypes for vec_st.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
	for scalar address type variants of altivec_vec_ld/altivec_vec_st,
	mainly on signed/unsigned long long and double.

2019-01-16  David Malcolm  <dmalcolm@redhat.com>

	PR target/88861
	* combine.c (delete_noop_moves): Convert to "bool" return,
	returning true if any edges are eliminated.
	(combine_instructions): Also return true if delete_noop_moves
	returns true.

2019-01-16  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
	correct max nunits for endian swap.
	(aarch64_expand_fcmla_builtin): Correct subreg code.
	* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
	aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
	lane endianness.

2019-01-16  Uroš Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_gimplify_va_arg):
	Handle split indirect COMPLEX_TYPE arguments.

2019-01-16  Richard Earnshaw  <rearnsha@arm.com>

	PR target/86891
	* config/aarch64/aarch64-modes.def: Add comment about how the carry
	bit is set by add and compare.
	(CC_ADC): New CC_MODE.
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
	to cache the code and mode of X.  Adjust the shape of a CC_Cmode
	comparison.  Add detection for CC_ADCmode.
	(aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
	CC_ADCmode.
	* config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
	(uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
	(add<mode>3_compareC_cconly_imm): Delete.  Merge into...
	(add<mode>3_compareC_cconly): ... this.  Restructure the comparison
	to eliminate the need for zero-extending the operands.
	(add<mode>3_compareC_imm): Delete.  Merge into ...
	(add<mode>3_compareC): ... this.  Restructure the comparison to
	eliminate the need for zero-extending the operands.
	(add<mode>3_carryin): Use LTU for the overflow detection.
	(add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
	Reexpress comparison for overflow.
	(add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
	(add<mode>3_carryinC): Likewise.
	(add<mode>3_carryinV): Use LTU for carry between partials.
	* config/aarch64/predicates.md (aarch64_carry_operation): Update
	handling of CC_Cmode and add CC_ADCmode.
	(aarch64_borrow_operation): Likewise.

2019-01-16  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
	* config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
	* config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
	neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.

2019-01-16  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
	for GCC driver.
	* config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
	a new argument.
	* gcc.c (add_sysrooted_hdrs_prefix): New function.
	(path_prefix_reset): Move up in the source file.
	(find_fortran_preinclude_file): Make complex search for the
	fortran header files.

2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>

	* godump.c (go_output_typedef): When outputting a typedef, refer
	to the underlying type by its name and not its structure.

2019-01-15  David Malcolm  <dmalcolm@redhat.com>

	PR c++/88795
	* tree.c (build_function_type): Assert that arg_types is not
	error_mark_node.

2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR inline-asm/52813
	* doc/extend.texi: Document that listing the stack pointer in the
	clobber list of an asm is a deprecated feature.
	* common.opt (Wdeprecated): Moved from c-family/c.opt.
	* cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
	warning instead of an error for clobbers of the stack pointer.
	Add a note explaining why.

2019-01-15  Richard Biener  <rguenther@suse.de>

	PR debug/88046
	* dwarf2out.c (gen_member_die): Do not generate inheritance
	DIEs late.

2019-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88855
	* tree-if-conv.c (combine_blocks): Collect
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.

2019-01-15  Tom de Vries  <tdevries@suse.de>

	PR target/80547
	* config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
	lhs == NULL_TREE for gang-level reduction.

2019-01-15  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR ipa/88788
	* ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
	return true if SSA_NAME is already marked in visited bitmap.
	(malloc_candidate_p): Pass visited to malloc_candidate_p_1.

2019-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/88775
	* match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
	equal == 0 equality pointer comparisons some more if compared in
	integral types and either one points to an automatic var and the
	other to a global, or we can prove at least one points to the middle
	or both point to start or both point to end.

2019-01-14  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in: Lower autofdo sampling rate by 10x.
	* Makefile.tpl: Dito.

2019-01-14  Tom Honermann  <tom@honermann.net>

	* defaults.h: Define CHAR8_TYPE.

2019-01-14  Martin Sebor  <msebor@redhat.com>

	PR target/88638
	* doc/extend.texi (Darwin Format Checks): Clarify.

2019-01-14  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_simplify::gen_1): Change dumping dependent on
	whether we are in (simplify ...) or (match ...) context.

2019-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/88796
	* emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
	* cfgexpand.c (stack_protect_prologue): Initialize
	crtl->stack_protect_guard_decl.
	* function.c (stack_protect_epilogue): Use it instead of calling
	targetm.stack_protect_guard again.
	* dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
	MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
	crtl->stack_protect_guard_decl.
	* config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
	on the returned MEM_EXPR.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
	vector length using -fopenacc-dim.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
	lengths into account.

2019-01-12  Svante Signell  <svante.signell@gmail.com>

	* config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
	(TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	* params.def (inline-unit-growth): Set to 40.

2019-01-12  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
	region calling vector-partitionable routine, set default_vector_length
	to WARP_SIZE.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
	variable default_vector_length.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	PR middle-end/88703
	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
	from oacc_default_dims, as oacc_validate_dims would do it, and apply
	dimensions limits.

2019-01-12  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
	(nvptx_goacc_validate_dims): Add used parameter.
	* doc/tm.texi: Regenerate.
	* omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
	argument to call to targetm.goacc.validate_dims.
	(default_goacc_validate_dims): Add used
	parameter.
	* target.def (validate_dims): Add used parameter in DEFHOOK.
	* targhooks.h (default_goacc_validate_dims): Add used parameter.

2019-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/85956
	PR lto/88733
	* tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
	field.
	* tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
	ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
	a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
	* omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.

2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/87305
	* lra-assigns.c
	(setup_live_pseudos_and_spill_after_risky_transforms): Add code
	for little endian pseudos used as paradoxical subreg.

2019-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/88693
	* tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
	for STRING_CSTs that don't contain any NUL characters in the first
	TREE_STRING_LENGTH bytes.

2019-01-11  Alan Modra  <amodra@gmail.com>

	PR 88777
	PR 88614
	* genattrtab.c (min_fn): Don't translate values.
	(min_attr_value): Return INT_MAX when the value can't be calculated.
	Return minimum among any values that can be calculated.
	(max_attr_value): Adjust.

2019-01-11  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).

2019-01-11  Steve Ellcey  <sellcey@marvell.com>

	* config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
	(aarch64_hard_regno_call_part_clobbered): Add insn argument.
	(aarch64_return_call_with_max_clobbers): New function.
	(TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
	* config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
	argument.
	* config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
	* config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
	* config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
	* config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
	* cselib.c (cselib_process_insn): Add argument to
	targetm.hard_regno_call_part_clobbered call.
	* ira-conflicts.c (ira_build_conflicts): Ditto.
	* ira-costs.c (ira_tune_allocno_costs): Ditto.
	* lra-constraints.c (inherit_reload_reg): Ditto.
	* lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
	* lra-lives.c (check_pseudos_live_through_calls): Add call_insn
	argument.  Call targetm.return_call_with_max_clobbers.
	Add argument to targetm.hard_regno_call_part_clobbered call.
	(calls_have_same_clobbers_p): New function.
	(process_bb_lives): Add call_insn and last_call_insn variables.
	Pass call_insn to check_pseudos_live_through_calls.
	Modify if stmt to check targetm.return_call_with_max_clobbers.
	Update setting of flush variable.
	(lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
	to false.
	* lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
	* regcprop.c (copyprop_hardreg_forward_1): Add argument to
	targetm.hard_regno_call_part_clobbered call.
	* reginfo.c (choose_hard_reg_mode): Ditto.
	* regrename.c (check_new_reg_p): Ditto.
	* reload.c (find_equiv_reg): Ditto.
	* reload1.c (emit_reload_insns): Ditto.
	* sched-deps.c (deps_analyze_insn): Ditto.
	* sel-sched.c (init_regs_for_mode): Ditto.
	(mark_unavailable_hard_regs): Ditto.
	* targhooks.c (default_dwarf_frame_reg_mode): Ditto.
	* target.def (hard_regno_call_part_clobbered): Add insn argument.
	(return_call_with_max_clobbers): New target function.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
	* hooks.c (hook_bool_uint_mode_false): Change to
	hook_bool_insn_uint_mode_false.
	* hooks.h (hook_bool_uint_mode_false): Ditto.

2019-01-11  Steve Ellcey  <sellcey@marvell.com>

	* config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
	(aarch64_remove_extra_call_preserved_regs): New function.
	(TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
	* doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
	* doc/tm.texi: Regenerate.
	* final.c (get_call_reg_set_usage): Call new hook.
	* target.def (remove_extra_call_preserved_regs): New hook.
	* targhooks.c (default_remove_extra_call_preserved_regs): New function.
	* targhooks.h (default_remove_extra_call_preserved_regs): New function.

2019-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/88714
	* passes.c (finish_optimization_passes): Call print_combine_total_stats
	inside of pass_combine_1 dump rather than pass_profile_1.

2019-01-11  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
	(PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
	(PTX_NUM_PER_WORKER_BARRIERS): Define.
	(nvptx_apply_dim_limits): Prevent vector_length 64 and
	num_workers 16.

2019-01-11  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.

2019-01-11  Jan Beulich  <jbeulich@suse.com>

	* config/i386/i386.md (rex64suffix): Add L suffix for SI.
	* config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
	sse2_cvtsi2sd): Add {l}.
	(sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
	syntax.

2019-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/88785
	* config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
	define_expand.
	(*float<floatunssuffix>v2div2sf2): New define_insn.
	(float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
	(*float<floatunssuffix>v2div2sf2_mask): New define_insn.
	(*float<floatunssuffix>v2div2sf2_mask_1): Replace
	subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
	match_operands with "const0_operand" "C".

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
	(aarch64_init_simd_builtins): ...Here

2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/87305
	* lra-assigns.c
	(setup_live_pseudos_and_spill_after_risky_transforms): Check
	allocation for big endian pseudos used as paradoxical subregs and
	spill them if it is wrong.
	* lra-constraints.c (lra_constraints): Add a comment.

2019-01-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88792
	* tree-ssa-pre.c (get_representative_for): Do not return a
	value-number here.

2019-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/84877
	PR bootstrap/88450
	* function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
	(assign_parm_setup_block): Do the argument slot realignment here
	instead.

2019-01-10  Stefan Agner  <stefan@agner.ch>

	PR target/88648
	* config/arm/arm.c (arm_option_override_internal): Force
	opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.

2019-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/88568
	* attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
	DECL_EXTERNAL.

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm-builtins.c
	(enum arm_type_qualifiers): Add qualifier_lane_pair_index.
	(MAC_LANE_PAIR_QUALIFIERS): New.
	(arm_expand_builtin_args): Use it.
	(arm_expand_builtin_1): Likewise.
	* config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
	* config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
	* config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
	* config/arm/arm_neon.h:
	(vcadd_rot90_f16): New.
	(vcaddq_rot90_f16): New.
	(vcadd_rot270_f16): New.
	(vcaddq_rot270_f16): New.
	(vcmla_f16): New.
	(vcmlaq_f16): New.
	(vcmla_lane_f16): New.
	(vcmla_laneq_f16): New.
	(vcmlaq_lane_f16): New.
	(vcmlaq_laneq_f16): New.
	(vcmla_rot90_f16): New.
	(vcmlaq_rot90_f16): New.
	(vcmla_rot90_lane_f16): New.
	(vcmla_rot90_laneq_f16): New.
	(vcmlaq_rot90_lane_f16): New.
	(vcmlaq_rot90_laneq_f16): New.
	(vcmla_rot180_f16): New.
	(vcmlaq_rot180_f16): New.
	(vcmla_rot180_lane_f16): New.
	(vcmla_rot180_laneq_f16): New.
	(vcmlaq_rot180_lane_f16): New.
	(vcmlaq_rot180_laneq_f16): New.
	(vcmla_rot270_f16): New.
	(vcmlaq_rot270_f16): New.
	(vcmla_rot270_lane_f16): New.
	(vcmla_rot270_laneq_f16): New.
	(vcmlaq_rot270_lane_f16): New.
	(vcmlaq_rot270_laneq_f16): New.
	(vcadd_rot90_f32): New.
	(vcaddq_rot90_f32): New.
	(vcadd_rot270_f32): New.
	(vcaddq_rot270_f32): New.
	(vcmla_f32): New.
	(vcmlaq_f32): New.
	(vcmla_lane_f32): New.
	(vcmla_laneq_f32): New.
	(vcmlaq_lane_f32): New.
	(vcmlaq_laneq_f32): New.
	(vcmla_rot90_f32): New.
	(vcmlaq_rot90_f32): New.
	(vcmla_rot90_lane_f32): New.
	(vcmla_rot90_laneq_f32): New.
	(vcmlaq_rot90_lane_f32): New.
	(vcmlaq_rot90_laneq_f32): New.
	(vcmla_rot180_f32): New.
	(vcmlaq_rot180_f32): New.
	(vcmla_rot180_lane_f32): New.
	(vcmla_rot180_laneq_f32): New.
	(vcmlaq_rot180_lane_f32): New.
	(vcmlaq_rot180_laneq_f32): New.
	(vcmla_rot270_f32): New.
	(vcmlaq_rot270_f32): New.
	(vcmla_rot270_lane_f32): New.
	(vcmla_rot270_laneq_f32): New.
	(vcmlaq_rot270_lane_f32): New.
	(vcmlaq_rot270_laneq_f32): New.
	* config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
	vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
	vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
	vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
	vcmlaq_lane270): New.
	* config/arm/neon.md (neon_vcmla_lane<rot><mode>,
	neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
	* config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
	* config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
	(arm_option_reconfigure_globals): Use them.
	* config/arm/iterators.md (VDF, VQ_HSF): New.
	(VCADD, VCMLA): New.
	(VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
	* config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
	New.
	* config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
	UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.

2019-01-10  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
	Add qualifier_lane_pair_index.
	(emit-rtl.h): Include.
	(TYPES_QUADOP_LANE_PAIR): New.
	(aarch64_simd_expand_args): Use it.
	(aarch64_simd_expand_builtin): Likewise.
	(AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
	New.
	(FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
	AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
	aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
	(aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
	(aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
	AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
	* config/aarch64/iterators.md (FCMLA_maybe_lane): New.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
	Add __ARM_FEATURE_COMPLEX.
	* config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
	fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
	fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
	fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
	fcmlaq_lane270): New.
	* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
	aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
	aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
	* config/aarch64/arm_neon.h:
	(vcadd_rot90_f16): New.
	(vcaddq_rot90_f16): New.
	(vcadd_rot270_f16): New.
	(vcaddq_rot270_f16): New.
	(vcmla_f16): New.
	(vcmlaq_f16): New.
	(vcmla_lane_f16): New.
	(vcmla_laneq_f16): New.
	(vcmlaq_lane_f16): New.
	(vcmlaq_rot90_lane_f16): New.
	(vcmla_rot90_laneq_f16): New.
	(vcmla_rot90_lane_f16): New.
	(vcmlaq_rot90_f16): New.
	(vcmla_rot90_f16): New.
	(vcmlaq_laneq_f16): New.
	(vcmla_rot180_laneq_f16): New.
	(vcmla_rot180_lane_f16): New.
	(vcmlaq_rot180_f16): New.
	(vcmla_rot180_f16): New.
	(vcmlaq_rot90_laneq_f16): New.
	(vcmlaq_rot270_laneq_f16): New.
	(vcmlaq_rot270_lane_f16): New.
	(vcmla_rot270_laneq_f16): New.
	(vcmlaq_rot270_f16): New.
	(vcmla_rot270_f16): New.
	(vcmlaq_rot180_laneq_f16): New.
	(vcmlaq_rot180_lane_f16): New.
	(vcmla_rot270_lane_f16): New.
	(vcadd_rot90_f32): New.
	(vcaddq_rot90_f32): New.
	(vcaddq_rot90_f64): New.
	(vcadd_rot270_f32): New.
	(vcaddq_rot270_f32): New.
	(vcaddq_rot270_f64): New.
	(vcmla_f32): New.
	(vcmlaq_f32): New.
	(vcmlaq_f64): New.
	(vcmla_lane_f32): New.
	(vcmla_laneq_f32): New.
	(vcmlaq_lane_f32): New.
	(vcmlaq_laneq_f32): New.
	(vcmla_rot90_f32): New.
	(vcmlaq_rot90_f32): New.
	(vcmlaq_rot90_f64): New.
	(vcmla_rot90_lane_f32): New.
	(vcmla_rot90_laneq_f32): New.
	(vcmlaq_rot90_lane_f32): New.
	(vcmlaq_rot90_laneq_f32): New.
	(vcmla_rot180_f32): New.
	(vcmlaq_rot180_f32): New.
	(vcmlaq_rot180_f64): New.
	(vcmla_rot180_lane_f32): New.
	(vcmla_rot180_laneq_f32): New.
	(vcmlaq_rot180_lane_f32): New.
	(vcmlaq_rot180_laneq_f32): New.
	(vcmla_rot270_f32): New.
	(vcmlaq_rot270_f32): New.
	(vcmlaq_rot270_f64): New.
	(vcmla_rot270_lane_f32): New.
	(vcmla_rot270_laneq_f32): New.
	(vcmlaq_rot270_lane_f32): New.
	(vcmlaq_rot270_laneq_f32): New.
	* config/aarch64/aarch64.h (TARGET_COMPLEX): New.
	* config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
	UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
	(FCADD, FCMLA): New.
	(rot): New.
	* config/arm/types.md (neon_fcadd, neon_fcmla): New.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615

	* config/pa/pa.c: Change "can not" to "cannot".
	* gimple-ssa-evrp-analyze.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-remat.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* tree-ssa-uninit.c: Likewise.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615

	* Makefile.in: Mechanically replace "can not" with "cannot".
	* alias.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* common/config/i386/i386-common.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/alpha/sync.md: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arc/predicates.md: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/cortex-r4f.md: Likewise.
	* config/csky/csky.c: Likewise.
	* config/csky/csky.h: Likewise.
	* config/darwin-f.c: Likewise.
	* config/epiphany/epiphany.md: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/sol2.h: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/microblaze/microblaze.md: Likewise.
	* config/mips/20kc.md: Likewise.
	* config/mips/sb1.md: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nds32/predicates.md: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rs6000/e300c2c3.md: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.md: Likewise.
	* config/spu/vmx2spu.h: Likewise.
	* cprop.c: Likewise.
	* dbxout.c: Likewise.
	* df-scan.c: Likewise.
	* doc/cfg.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/fragments.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/lto.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/objc.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/tm.texi: Likewise.
	* dse.c: Likewise.
	* emit-rtl.c: Likewise.
	* emit-rtl.h: Likewise.
	* except.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* fold-const.c: Likewise.
	* genautomata.c: Likewise.
	* gimple-fold.c: Likewise.
	* hard-reg-set.h: Likewise.
	* ifcvt.c: Likewise.
	* ipa-comdats.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-fnsummary.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* ipa-profile.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-visibility.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-int.h: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* ira.h: Likewise.
	* loop-invariant.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* postreload-gcse.c: Likewise.
	* predict.c: Likewise.
	* profile-count.h: Likewise.
	* profile.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl.def: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* symtab.c: Likewise.
	* target.def: Likewise.
	* toplev.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-core.h: Likewise.
	* tree-eh.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-phionlycprop.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* vr-values.c: Likewise.

2019-01-09  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
	(ix86_split_xorsign): Ditto.
	* config/i386/i386.c (ix86_expand_xorsign): New function.
	(ix86_split_xorsign): Ditto.
	* config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
	(xorsign<mode>3): New expander.
	(xorsign<mode>3_1): New insn_and_split pattern.
	* config/i386/sse.md (xorsign<mode>3): New expander.

2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (*tablejump_sp32): Merge into...
	(*tablejump_sp64): Likewise.
	(*tablejump<P:mode>): ...this.
	(*call_address_sp32): Merge into...
	(*call_address_sp64): Likewise.
	(*call_address<P:mode>): ...this.
	(*call_symbolic_sp32): Merge into...
	(*call_symbolic_sp64): Likewise.
	(*call_symbolic<P:mode>): ...this.
	(call_value): Remove constraint and add predicate.
	(*call_value_address_sp32): Merge into...
	(*call_value_address_sp64): Likewise.
	(*call_value_address<P:mode>): ...this.
	(*call_value_symbolic_sp32): Merge into...
	(*call_value_symbolic_sp64): Likewise.
	(*call_value_symbolic<P:mode>): ...this.
	(*sibcall_symbolic_sp32): Merge into...
	(*sibcall_symbolic_sp64): Likewise.
	(*sibcall_symbolic<P:mode>): ...this.
	(sibcall_value): Remove constraint and add predicate.
	(*sibcall_value_symbolic_sp32): Merge into...
	(*sibcall_value_symbolic_sp64): Likewise.
	(*sibcall_value_symbolic<P:mode>): ...this.
	(window_save): Minor tweak.
	(*branch_sp32): Merge into...
	(*branch_sp64): Likewise.
	(*branch<P:mode>): ...this.

2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
	    James Clarke  <jrtc27@jrtc27.com>

	PR target/84010
	* config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
	consistently in TLS address generation and adjust code to the renaming
	of patterns.  Mark calls to __tls_get_addr as const.
	* config/sparc/sparc.md (tgd_hi22): Turn into...
	(tgd_hi22<P:mode>): ...this and use Pmode throughout.
	(tgd_lo10): Turn into...
	(tgd_lo10<P:mode>): ...this and use Pmode throughout.
	(tgd_add32): Merge into...
	(tgd_add64): Likewise.
	(tgd_add<P:mode>): ...this and use Pmode throughout.
	(tldm_hi22): Turn into...
	(tldm_hi22<P:mode>): ...this and use Pmode throughout.
	(tldm_lo10): Turn into...
	(tldm_lo10<P:mode>): ...this and use Pmode throughout.
	(tldm_add32): Merge into...
	(tldm_add64): Likewise.
	(tldm_add<P:mode>): ...this and use Pmode throughout.
	(tldm_call32): Merge into...
	(tldm_call64): Likewise.
	(tldm_call<P:mode>): ...this and use Pmode throughout.
	(tldo_hix22): Turn into...
	(tldo_hix22<P:mode>): ...this and use Pmode throughout.
	(tldo_lox10): Turn into...
	(tldo_lox10<P:mode>): ...this and use Pmode throughout.
	(tldo_add32): Merge into...
	(tldo_add64): Likewise.
	(tldo_add<P:mode>): ...this and use Pmode throughout.
	(tie_hi22): Turn into...
	(tie_hi22<P:mode>): ...this and use Pmode throughout.
	(tie_lo10): Turn into...
	(tie_lo10<P:mode>): ...this and use Pmode throughout.
	(tie_ld64): Use DImode throughout.
	(tie_add32): Merge into...
	(tie_add64): Likewise.
	(tie_add<P:mode>): ...this and use Pmode throughout.
	(tle_hix22_sp32): Merge into...
	(tle_hix22_sp64): Likewise.
	(tle_hix22<P:mode>): ...this and use Pmode throughout.
	(tle_lox22_sp32): Merge into...
	(tle_lox22_sp64): Likewise.
	(tle_lox22<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldub_sp32): Merge into...
	(*tldo_ldub_sp64): Likewise.
	(*tldo_ldub<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldub1_sp32): Merge into...
	(*tldo_ldub1_sp64): Likewise.
	(*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldub2_sp32): Merge into...
	(*tldo_ldub2_sp64): Likewise.
	(*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldsb1_sp32): Merge into...
	(*tldo_ldsb1_sp64): Likewise.
	(*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldsb2_sp32): Merge into...
	(*tldo_ldsb2_sp64): Likewise.
	(*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldub3_sp64): Use DImode throughout.
	(*tldo_ldsb3_sp64): Likewise.
	(*tldo_lduh_sp32): Merge into...
	(*tldo_lduh_sp64): Likewise.
	(*tldo_lduh<P:mode>): ...this and use Pmode throughout.
	(*tldo_lduh1_sp32): Merge into...
	(*tldo_lduh1_sp64): Likewise.
	(*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
	(*tldo_ldsh1_sp32): Merge into...
	(*tldo_ldsh1_sp64): Likewise.
	(*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
	(*tldo_lduh2_sp64): Use DImode throughout.
	(*tldo_ldsh2_sp64): Likewise.
	(*tldo_lduw_sp32): Merge into...
	(*tldo_lduw_sp64): Likewise.
	(*tldo_lduw<P:mode>): ...this and use Pmode throughout.
	(*tldo_lduw1_sp64): Use DImode throughout.
	(*tldo_ldsw1_sp64): Likewise.
	(*tldo_ldx_sp64): Likewise.
	(*tldo_stb_sp32): Merge into...
	(*tldo_stb_sp64): Likewise.
	(*tldo_stb<P:mode>): ...this and use Pmode throughout.
	(*tldo_sth_sp32): Merge into...
	(*tldo_sth_sp64): Likewise.
	(*tldo_sth<P:mode>): ...this and use Pmode throughout.
	(*tldo_stw_sp32): Merge into...
	(*tldo_stw_sp64): Likewise.
	(*tldo_stw<P:mode>): ...this and use Pmode throughout.
	(*tldo_stx_sp64): Use DImode throughout.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64.c (aarch64_override_options): Add case to
	check configure option to set BTI and Return Address Signing.
	* configure.ac: Add --enable-standard-branch-protection and
	--disable-standard-branch-protection.
	* configure: Regenerated.
	* doc/install.texi: Document the same.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
	* config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
	* config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
	if bti is enabled.
	* config/aarch64/aarch64-bti-insert.c: New file.
	* config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
	pass.
	* config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
	new bti pass.
	* config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
	UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
	(bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
	* config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
	* config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
	Disable bti for -mbranch-protection=none.
	(aarch64_handle_standard_branch_protection): Enable bti for
	-mbranch-protection=standard.
	(aarch64_handle_bti_protection): Enable bti for "bti" in the string to
	-mbranch-protection.
	(aarch64_bti_enabled): Check if bti is enabled.
	* config/aarch64/aarch64.opt: Declare target variable.
	* doc/invoke.texi: Add bti to the -mbranch-protection documentation.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
	epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
	(aarch64_expand_epilogue): Likewise.
	(aarch64_output_mi_thunk): Likewise
	* config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
	TAILCALL_ADDR_REGS to x16 and x17.
	* config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-option-extensions.def: Define
	AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
	* config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
	(AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
	(AARCH64_FL_PREDRES): New.
	(AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
	AARCH64_FL_PREDRES by default.
	* doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.

2018-01-09  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
	ARMv8.5-A.
	* config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
	(AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
	* doc/invoke.texi: Document ARMv8.5-A.

2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>

	* config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
	(xorsign<mode>3): Likewise.

2019-01-09  Jelinek  <jakub@redhat.com>

	PR middle-end/88758
	* tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
	vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.

	PR rtl-optimization/88331
	* function.c (assign_stack_local_1): Don't set dynamic_align_addr if
	not currently_expanding_to_rtl.

2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (-Os): Remove trailing spaces.
	(-finline-functions): Remove reference to -O2.

2019-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/79593
	* config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.

	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
	UNSPEC_FUSION_GPR to its argument.  Formatting fixes.

2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/88721
	* config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
	to -1 on entry.

	PR debug/88723
	* config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
	UNSPECs and UNSPEC_MOVE_GOTDATA specifically.

2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/88717
	* config/i386/i386.c (ix86_avx_u128_mode_exit): Call
	ix86_avx_u128_mode_entry.

2019-01-08  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/88753
	* tree-switch-conversion.c (switch_conversion::build_one_array):
	Come up with local variable constructor.  Convert first to
	type of constructor values.

2019-01-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86554
	* tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
	rpo_avail): Move earlier.
	(visit_nary_op): When value-numbering to expressions
	with different overflow behavior make sure there's an
	available expression on the path.

2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>

	* config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
	aarch64_parse_branch_protection,
	struct aarch64_branch_protect_type,
	aarch64_handle_no_branch_protection,
	aarch64_handle_standard_branch_protection,
	aarch64_validate_mbranch_protection,
	aarch64_handle_pac_ret_protection,
	aarch64_handle_attr_branch_protection,
	accepted_branch_protection_string,
	aarch64_pac_ret_subtypes,
	aarch64_branch_protect_types,
	aarch64_handle_pac_ret_leaf): Define.
	(aarch64_override_options_after_change_1, aarch64_override_options):
	Add check for accepted_branch_protection_string.
	(aarch64_option_save): Save accepted_branch_protection_string.
	(aarch64_option_restore): Save accepted_branch_protection_string.
	* config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
	* config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
	msign-return-address.
	* doc/invoke.texi: Add mbranch-protection.

2019-01-08  Alan Modra  <amodra@gmail.com>

	PR target/88614
	* genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
	Delete "unknownp" parameter.  Adjust callers.  Handle
	CONST_INT, PLUS, MINUS, and MULT.
	(attr_value_aligned): Renamed from or_attr_value.
	(min_attr_value): Return INT_MIN for unhandled rtl case..
	(min_fn): ..and translate to INT_MAX here.
	(write_length_unit_log): Modify to cope without "unknown".
	(write_attr_value): Handle IF_THEN_ELSE.

2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
	optimization for masked stores.

2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/88567
	* tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
	output vector directly to duplicate_and_interleave instead of
	going through a temporary.  Postpone insertion of ctor_seq to
	the end of the loop.

2019-01-07  Richard Earnshaw  <rearnsha@arm.com>

	PR target/86891
	* config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
	unsigned_p.  Handle signed and unsigned overflow correction as
	required.
	* config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
	prototype.
	* config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
	for operand 2.
	(add<mode>3_compareV_imm): Make this callable for expanding.
	(subv<GPI:mode>4): Use register_operand for operand 1.  Use
	aarch64_plus_operand for operand 2.
	(subv<GPI:mode>_insn): New insn pattern.
	(subv<GPI:mode>_imm): Likewise.
	(negv<GPI:mode>3): New expand pattern.
	(negv<GPI:mode>_insn): New insn pattern.
	(negv<GPI:mode>_cmp_only): Likewise.
	(cmpv<GPI:mode>_insn): Likewise.
	(subvti4): Use register_operand for operand 1.  Update call to
	aarch64_expand_subvti.
	(usubvti4): Likewise.
	(negvti3): New expand pattern.
	(negdi_carryout): New insn pattern.
	(negvdi_carryinV): New insn pattern.
	(sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
	version the named version.
	(peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
	operands.
	(usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
	patterns.
	(usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
	patterns.
	(sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
	(sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
	(sub<mode>3_carryinCV): Delete.
	(sub<GPI:mode>3_carryinV): New expand pattern.
	sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.

2019-01-07  Richard Biener  <rguenther@suse.de>

	* tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
	of tree_operand_hash.

2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/88598
	* tree.h (single_nonzero_element): Declare.
	* tree.c (single_nonzero_element): New function.
	* match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
	if I is the only nonzero element of CST.

2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/88598
	* tree.h (initializer_each_zero_or_onep): Declare.
	* tree.c (initializer_each_zero_or_onep): New function.
	(signed_or_unsigned_type_for): Handle float types too.
	(unsigned_type_for, signed_type_for): Update comments accordingly.
	* match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
	x & { 0 or -1, 0 or -1, ... }.

2019-01-07  Jonathan Wakely  <jwakely@redhat.com>

	* doc/install.texi: Replace references to x86_64-unknown-linux-gnu
	with x86_64-pc-linux-gnu.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	PR target/85486
	* config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
	function.
	(nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
	routines.

2019-01-07  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
	V_256_512 iterator instead of V_512 and TARGET_AVX instead of
	TARGET_AVX512F as condition.

	PR debug/88723
	* dwarf2out.c (const_ok_for_output_1): Remove redundant call to
	const_not_ok_for_debug_p target hook.
	(mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
	on UNSPEC and subexpressions thereof if all subexpressions of the
	UNSPEC are CONSTANT_P.

	PR tree-optimization/88676
	* tree-ssa-phiopt.c (two_value_replacement): New function.
	(tree_ssa_phiopt_worker): Call it.

	PR sanitizer/88619
	* cfgexpand.c (expand_stack_vars): Only align prev_offset to
	ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.

	PR c++/85052
	* tree-vect-generic.c: Include insn-config.h and recog.h.
	(expand_vector_piecewise): Add defaulted ret_type argument,
	if non-NULL, use that in preference to type for the result type.
	(expand_vector_parallel): Formatting fix.
	(do_vec_conversion, do_vec_narrowing_conversion,
	expand_vector_conversion): New functions.
	(expand_vector_operations_1): Call expand_vector_conversion
	for VEC_CONVERT ifn calls.
	* internal-fn.def (VEC_CONVERT): New internal function.
	* internal-fn.c (expand_VEC_CONVERT): New function.
	* fold-const-call.c (fold_const_vec_convert): New function.
	(fold_const_call): Use it for CFN_VEC_CONVERT.
	* doc/extend.texi (__builtin_convertvector): Document.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
	* config/nvptx/nvptx.c (vector_red_size, vector_red_align,
	vector_red_partition, vector_red_sym): New global variables.
	(nvptx_option_override): Initialize vector_red_sym.
	(nvptx_declare_function_name): Restore red_partition register.
	(nvptx_file_end): Emit code to declare the vector reduction variables.
	(nvptx_output_red_partition): New function.
	(nvptx_expand_shared_addr): Add vector argument. Use it to handle
	large vector reductions.
	(enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
	(nvptx_init_builtins): Add VECTOR_ADDR.
	(nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
	Handle nvptx_expand_shared_addr.
	(nvptx_get_shared_red_addr): Add vector argument and handle large
	vectors.
	(nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
	large vectors.
	(nvptx_goacc_reduction_init): Likewise.
	(nvptx_goacc_reduction_fini): Likewise.
	(nvptx_goacc_reduction_teardown): Likewise.
	(nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
	init,fini,teardown}.
	(nvptx_init_axis_predicate): Initialize vector_red_partition.
	(nvptx_set_current_function): Init vector_red_partition.
	* config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
	(nvptx_red_partition): New insn.
	* config/nvptx/nvptx.h (struct machine_function): Add red_partition.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	PR target/85381
	* config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
	empty loops.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
	(nvptx_option_override): Init oacc_bcast_partition.
	(nvptx_init_oacc_workers): New function.
	(nvptx_declare_function_name): Call nvptx_init_oacc_workers.
	(nvptx_needs_shared_bcast): New function.
	(nvptx_find_par): Generalize to enable vectors to use shared-memory
	to propagate state.
	(nvptx_shared_propagate): Initialize vector bcast partition and
	synchronization state.
	(nvptx_single):  Generalize to enable vectors to use shared-memory
	to propagate state.
	(nvptx_process_pars): Likewise.
	(nvptx_set_current_function): Initialize oacc_broadcast_partition.
	* config/nvptx/nvptx.h (struct machine_function): Add
	bcast_partition and sync_bar members.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
	(nvptx_apply_dim_limits): New function.
	(nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
	PTX_WARP_SIZE.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
	as late as possible.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
	(PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
	(nvptx_goacc_validate_dims_1, nvptx_dim_limit)
	(nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
	PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.

2019-01-07  Tom de Vries  <tdevries@suse.de>

	* omp-offload.c (oacc_get_min_dim): New function.
	* omp-offload.h (oacc_get_min_dim): Declare.

2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>

	PR target/88521
	* config/i386/i386.c (function_value_ms_64): Return small sturct in
	AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-opt/86020
	Revert:
	2017-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (edge_badness): Use inlined_time instead of
	inline_summaries->get.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	* opts.c (enable_fdo_optimizations): Enable
	version-loops-for-strides, loop-interchange, unrol-and-jam
	and tree-loop-distribution.
	* invoke.texi: Document newly enabled options.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (max-inline-insns-small): New parameters.
	* ipa-inline.c (want_early_inline_function_p): simplify.
	(want_inline_small_function_p): Fix pasto from previous patch;
	use max-inline-insns-small bound.
	* params.def (max-inline-insns-small): New param.
	* ipa-fnsummary.c (analyze_function_body): Initialize time/size
	variables correctly.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi: Document max-inline-insns-size,
	uninlined-function-insns, uninlined-function-time,
	uninlined-thunk-insns and uninlined-thunk-time.
	* params.def: Add max-inline-insns-size,
	uninlined-function-insns, uninlined-function-time,
	uninlined-thunk-insns and uninlined-thunk-time.
	* ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
	new parameters.
	* ipa-inline.c (can_inline_edge_by_limits_p,
	want_inline_small_function_p): Use new parameters.

2019-01-05  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-fnsummary.c (analyze_function_body): Fix accounting of time.

2019-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/82564
	PR target/88620
	* expr.c (expand_assignment): For calls returning VLA structures
	if to_rtx is not a MEM, force it into a stack temporary.

	PR debug/88635
	* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
	SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
	Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
	subexpressions of both operands.
	(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
	subrtxes are CONSTANT_P.
	* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
	2018-11-09 changes.

2019-01-04  Jan Hubicka  <hubicka@ucw.cz>

	* params.def (hot-bb-count-ws-permille): Set to 990.

2019-01-04  Martin Sebor  <msebor@redhat.com>

	PR c/88546
	* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
	leaf.

2019-01-04  Martin Sebor  <msebor@redhat.com>

	PR c/88363
	* doc/extend.texi (attribute alloc_align, alloc_size): Update.

2019-01-04  Jakub Jelinek  <jakub@redhat.com>

	* gdbinit.in: Turn off pagination for the skip commands, restore
	it to previous state afterwards.

2019-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/88594
	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
	of GET_MODE (opN) as modes of the libcall arguments.

2019-01-04  Jan Beulich  <jbeulich@suse.com>

	* config/i386/sse.md
	(<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
	<avx512>_cmp<mode>3<mask_scalar_merge_name>,
	<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
	<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
	avx512f_vmcmp<mode>3<round_saeonly_name>,
	avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
	avx512f_maskcmp<mode>3,
	<avx512>_cvt<ssemodesuffix>2mask<mode>,
	<avx512>_cvt<ssemodesuffix>2mask<mode>,
	*<avx512>_cvtmask2<ssemodesuffix><mode>,
	*<avx512>_cvtmask2<ssemodesuffix><mode>,
	<avx512>_eq<mode>3<mask_scalar_merge_name>_1,
	<avx512>_eq<mode>3<mask_scalar_merge_name>_1,
	<avx512>_gt<mode>3<mask_scalar_merge_name>,
	<avx512>_gt<mode>3<mask_scalar_merge_name>,
	<avx512>_testm<mode>3<mask_scalar_merge_name>,
	<avx512>_testnm<mode>3<mask_scalar_merge_name>,
	*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
	*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
	*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
	avx512cd_maskb_vec_dup<mode>,
	avx512cd_maskw_vec_dup<mode>,
	avx512dq_fpclass<mode><mask_scalar_merge_name>,
	avx512dq_vmfpclass<mode>,
	avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
	instead of =Yk.

2019-01-03  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/88659
	* calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.

2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-string.c (expand_block_move): Don't use
	unaligned vsx and avoid lxvd2x/stxvd2x.
	(gen_lvx_v4si_move): New function.

2019-01-03  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
	(init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
	function.
	* config/nvptx/nvptx.h (struct machine_function): Add axis_dims.

2019-01-03  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (struct offload_attrs): New.
	(populate_offload_attrs): New function.  Factor mask extraction out of
	nvptx_reorg.  Add extraction of dimensions.
	(nvptx_reorg): Use populate_offload_attrs.

2019-01-03  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
	cases for oacc_min_dims_p and routine_p.  Add asserts for
	oacc_default_dims_p and offload_region_p.

2019-01-03  Tom de Vries  <tdevries@suse.de>

	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
	factored out of ...
	(nvptx_goacc_validate_dims): ... here.

2019-01-03  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/85574
	* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
	structure.
	(struct ssa_equip_hash_traits): Declare.
	(val_ssa_equiv): Use custom hash traits using operand_equal_p.

2019-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/88644
	* dwarf2out.c (modified_type_die): If type is equal to sizetype,
	change it to qualified_type.

2019-01-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
	(ipa_merge_profiles): ... here; do not ICE on thunks and aliases.

2019-01-02  Martin Sebor  <msebor@redhat.com>
	    Jeff Law  <law@redhat.com>

	* gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
	(get_range_strlen_tree): Update appropriately.
	(get_range_strlen)
	* gimple-fold.h (get_range_strlen): Drop unused last argument.

	* gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
	rather than set_range_info.
	* tree-ssa-strlen.c (set_strlen_range): Extracted from
	maybe_set_strlen_range.  Handle potentially boundary crossing
	cases more conservatively.
	(maybe_set_strlen_range): Parts refactored into set_strlen_range.
	Call set_strlen_range.
	* tree-ssa-strlen.h (set_strlen_range): Add prototype.

	PR middle-end/88663
	* gimple-fold.c (get_range_strlen): Update prototype to no longer
	need the flexp argument.
	(get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
	from calls to get_range_strlen.  Update comments.  Just update
	VAL for an unterminated const char array and let the reset of the
	code handle it normally.  No longer try to set *flexp.  Adjust
	return value.
	(get_range_strlen): Update for the new get_range_strlen API.
	(get_maxval_strlen): Similarly.
	(gimple_fold_builtin_strlen): Handle update meaning of return value
	from get_range_strlen.
	* gimple-ssa-sprintf.c (get_string_length): Update for the new
	get_range_strlen API.

2019-01-02  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/88130
	* varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
	false at WPA time when body was removed.

2019-01-02  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/88650
	* predict.c (set_even_probabilities): Calculate probability
	remainer only when really used.

2019-01-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/88651
	* tree-data-ref.c (analyze_subscript_affine_affine): Use
	widest_ints when mangling max_stmt_execution results.

2019-01-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88621
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
	bitfields when canoncalizing.

2019-01-02  Richard Biener  <rguenther@suse.de>

	PR target/87545
	* config/i386/x86-tune-costs.h (intel_cost): Adjust
	cost of cheap SSE instruction.

2019-01-02  Richard Biener  <rguenther@suse.de>

	PR ipa/85574
	* ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
	* ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
	function.
	(sem_item_optimizer::do_congruence_step_f): Sort the congruence
	set after UIDs before splitting them.

2019-01-01  Martin Sebor  <msebor@redhat.com>
	    Jeff Law  <law@redhat.com>

	* gimple-fold.c (get_range_strlen_tree): Record if the computed
	length is optimistic.  If it is, then arrange to compute the
	conservative length as well.

	* gimple-fold.h (get_range_strlen): Update prototype.
	* builtins.c (check_access): Update call to get_range_strlen to use
	c_strlen_data pointer.   Change various variable accesses to instead
	pull data from the c_strlen_data structure.
	(check_strncat_sizes, expand_builtin_strncat): Likewise.
	* calls.c (maybe_warn_nonstring_arg): Likewise.
	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
	minimum length if maximum lengh is unknown.
	* gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
	that used c_strlen, it's no longer needed.  Restructure slightly.
	(format_string): Set unlikely range appropriately.
	* gimple-fold.c (get_range_strlen): Update comments.  Fix minor
	formatting issues.
	(get_range_strlen):  Accept c_strlen_data pointer for external
	call sites as well.  Pass through to call to internal get_range_strlen.
	Adjust minlen, maxlen and maxbound as needed.
	(get_maxval_strlen): Update comments.
	(gimple_fold_builtin_strlen):  Update call to get_range_strlen
	to use c_strlen_data pointer.  Change variable accesses to instead
	use c_strlen_data data members.

	* gimple-fold.c (get_range_strlen): Update prototype.
	(get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
	local variables.  Use pdata to return information to caller.
	Update calls to get_range_strlen.  Update pdata->maxbound.
	(get_range_strlen -- static version): Similarly.
	(get_range_strlen -- extern version): Update for internal
	get_range_strlen API change.  Convert to external data format.
	(get_maxval_strlen): Similarly.

2019-01-01  Jan Hubicka  <hubicka@ucw.cz>

	* coverage.c (get_coverage_counts): Use current_function_decl.
	* profile.c (read_thunk_profile): New function.
	(branch_prob): Add THUNK parameter.
	* tree-profile.c (tree_profiling): Handle thunks.
	* value-prof.c (init_node_map): Handle thunks.
	* value-prof.h (branch_prob): Upate prototype.
	(read_thunk_profile): Declare.

2019-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c (print_version): Ditto.
	* gcov.c (print_version): Ditto.
	* gcov-tool.c (print_version): Ditto.
	* gengtype.c (create_file): Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.

Copyright (C) 2019 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
