+2020-07-31 Roger Sayle <roger@nextmovesoftware.com>
+ Tom de Vries <tdevries@suse.de>
+
+ PR target/90928
+ * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement.
+ (TARGET_TRULY_NOOP_TRUNCATION): Define.
+
+2020-07-31 Richard Biener <rguenther@suse.de>
+
+ PR debug/96383
+ * langhooks-def.h (lhd_finalize_early_debug): Declare.
+ (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define.
+ (LANG_HOOKS_INITIALIZER): Amend.
+ * langhooks.c: Include cgraph.h and debug.h.
+ (lhd_finalize_early_debug): Default implementation from
+ former code in finalize_compilation_unit.
+ * langhooks.h (lang_hooks::finalize_early_debug): Add.
+ * cgraphunit.c (symbol_table::finalize_compilation_unit):
+ Call the finalize_early_debug langhook.
+
+2020-07-31 Richard Biener <rguenther@suse.de>
+
+ * genmatch.c (expr::force_leaf): Add and initialize.
+ (expr::gen_transform): Honor force_leaf by passing
+ NULL as sequence argument to maybe_push_res_to_seq.
+ (parser::parse_expr): Allow ! marker on result expression
+ operations.
+ * doc/match-and-simplify.texi: Amend.
+
+2020-07-31 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch
+ taken costs for prologue and epilogue if they don't exist.
+ (vect_estimate_min_profitable_iters): Likewise.
+
+2020-07-31 Martin Liska <mliska@suse.cz>
+
+ * cgraph.h: Remove leading empty lines.
+ * cgraphunit.c (enum cgraph_order_sort_kind): Remove
+ ORDER_UNDEFINED.
+ (struct cgraph_order_sort): Add constructors.
+ (cgraph_order_sort::process): New.
+ (cgraph_order_cmp): New.
+ (output_in_order): Simplify and push nodes to vector.
+
+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-07-31 Martin Liska <mliska@suse.cz>
+
+ * gcov-io.h (GCOV_PREALLOCATED_KVP): New.
+
+2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com>
+
+ * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
+ Add new argument ATTRS.
+ (aarch64_call_properties): New function.
+ (aarch64_modifies_global_state_p): Likewise.
+ (aarch64_reads_global_state_p): Likewise.
+ (aarch64_could_trap_p): Likewise.
+ (aarch64_add_attribute): Likewise.
+ (aarch64_get_attributes): Likewise.
+ (aarch64_init_simd_builtins): Add attributes for each built-in function.
+
+2020-07-31 Richard Biener <rguenther@suse.de>
+
+ PR debug/78288
+ * var-tracking.c (vt_find_locations): Use
+ rev_post_order_and_mark_dfs_back_seme and separately iterate
+ over toplevel SCCs.
+
+2020-07-31 Richard Biener <rguenther@suse.de>
+
+ * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust
+ prototype.
+ * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data.
+ (tag_header): New helper.
+ (cmp_edge_dest_pre): Likewise.
+ (rev_post_order_and_mark_dfs_back_seme): Compute SCCs,
+ find SCC exits and perform a DFS walk with extra edges to
+ compute a RPO with adjacent SCC members when requesting an
+ iteration optimized order and populate the toplevel SCC array.
+ * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation
+ of max_rpo and fill it in from SCC extent info instead.
+
+2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com>
+
+ * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define.
+ (vec_test_lsbb_all_zeros): New define.
+ * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in
+ handling macro.
+ (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines.
+ (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads.
+ * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS,
+ P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries.
+ * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec.
+ * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define.
+ (xvtlsbbo, xvtlsbbz): New instruction expands.
+
+2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com>
+
+ * config/riscv/riscv-opts.h (stack_protector_guard): New enum.
+ * config/riscv/riscv.c (riscv_option_override): Handle
+ the new options.
+ * config/riscv/riscv.md (stack_protect_set): New pattern to handle
+ flexible stack protector guard settings.
+ (stack_protect_set_<mode>): Ditto.
+ (stack_protect_test): Ditto.
+ (stack_protect_test_<mode>): Ditto.
+ * config/riscv/riscv.opt (mstack-protector-guard=,
+ mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
+ options.
+ * doc/invoke.texi (Option Summary) [RISC-V Options]:
+ Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
+ -mstack-protector-guard-offset=.
+ (RISC-V Options): Ditto.
+
+2020-07-30 H.J. Lu <hjl.tools@gmail.com>
+
+ PR bootstrap/96202
+ * configure: Regenerated.
+
+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-07-30 Roger Sayle <roger@nextmovesoftware.com>
+ Tom de Vries <tdevries@suse.de>
+
+ * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate.
+ (VECELEM): New mode attribute for a vector's uppercase element mode.
+ (Vecelem): New mode attribute for a vector's lowercase element mode.
+ (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2)
+ (*vec_set<mode>_3): New instructions.
+ (vec_set<mode>): New expander to generate one of the above insns.
+ (vec_extract<mode><Vecelem>): New instruction.
+
+2020-07-30 Martin Liska <mliska@suse.cz>
+
+ PR target/95435
+ * config/i386/x86-tune-costs.h: Use libcall for large sizes for
+ -m32. Start using libcall from 128+ bytes.
+
+2020-07-30 Martin Liska <mliska@suse.cz>
+
+ * config/i386/x86-tune-costs.h: Change code formatting.
+
+2020-07-29 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/nvptx/nvptx.md (recip<mode>2): New instruction.
+
+2020-07-29 Fangrui Song <maskray@google.com>
+
+ PR debug/95096
+ * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g.
+ * doc/invoke.texi (-gsplit-dwarf): Update documentation.
+
+2020-07-29 Joe Ramsay <joe.ramsay@arm.com>
+
+ * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback):
+ Declare prototype.
+ (arm_mve_mode_and_operands_type_check): Declare prototype.
+ * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use
+ _arm_coproc_mem_operand.
+ (arm_coproc_mem_operand_wb): New function to cover full, limited
+ and no writeback.
+ (arm_coproc_mem_operand_no_writeback): New constraint for memory
+ operand with no writeback.
+ (arm_print_operand): Extend 'E' specifier for memory operand
+ that does not support writeback.
+ (arm_mve_mode_and_operands_type_check): New constraint check for
+ MVE memory operands.
+ * config/arm/constraints.md: Add Uj constraint for VFP vldr.16
+ and vstr.16.
+ * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for
+ vldr.16.
+ (*mov_store_vfp_hf16): New pattern for vstr.16.
+ (*mov<mode>_vfp_<mode>16): Remove MVE moves.
+
+2020-07-29 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96349
+ * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the
+ condition runs into a loop PHI with an abnormal entry value give up.
+
+2020-07-29 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.c (vectorize_loops): Reset the SCEV
+ cache if we removed any SIMD UID SSA defs.
+ * gimple-loop-interchange.cc (pass_linterchange::execute):
+ Reset the scev cache if we interchanged a loop.
+
+2020-07-29 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95679
+ * tree-ssa-propagate.h
+ (substitute_and_fold_engine::propagate_into_phi_args): Return
+ whether anything changed.
+ * tree-ssa-propagate.c
+ (substitute_and_fold_engine::propagate_into_phi_args): Likewise.
+ (substitute_and_fold_dom_walker::before_dom_children): Update
+ something_changed.
+
+2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
+ Ensure that loop variable npeel_tmp advances in each iteration.
+
+2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1.
+
+2020-07-29 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to
+ default_elf_asm_output_external.
+
+2020-07-28 Sergei Trofimovich <siarheit@google.com>
+
+ PR ipa/96291
+ * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider
+ unoptimized callers as undead.
+
+2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
+ Richard Biener <rguenther@suse.de>
+
+ * match.pd (popcount(x)&1 -> parity(x)): New simplification.
+ (parity(~x) -> parity(x)): New simplification.
+ (parity(x)^parity(y) -> parity(x^y)): New simplification.
+ (parity(x&1) -> x&1): New simplification.
+ (popcount(x) -> x>>C): New simplification.
+
+2020-07-28 Roger Sayle <roger@nextmovesoftware.com>
+ Tom de Vries <tdevries@suse.de>
+
+ * config/nvptx/nvptx.md (extendqihi2): New instruction.
+ (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode.
+
+2020-07-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/96335
+ * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments,
+ instead of trying to rediscover them in the body.
+ (initialize_argument_information): Adjust caller.
+
+2020-07-28 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code
+ to determine peel_iters_epilogue to...
+ (vect_get_peel_iters_epilogue): ...this new function.
+ (vect_estimate_min_profitable_iters): Refactor cost calculation on
+ peel_iters_prologue and peel_iters_epilogue.
+
+2020-07-27 Martin Sebor <msebor@redhat.com>
+
+ PR tree-optimization/84079
+ * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr):
+ Only allow just-past-the-end references for the most significant
+ array bound.
+
+2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com>
+
+ PR driver/96247
+ * opts.c (check_alignment_argument): Set the -falign-Name
+ on/off flag on and set the -falign-Name string value null,
+ when the command-line specified argument is zero.
+
+2020-07-27 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/96058
+ * expr.c (string_constant): Build string_constant only
+ for a type that has same precision as char_type_node
+ and is an integral type.
+
+2020-07-27 Richard Biener <rguenther@suse.de>
+
+ * var-tracking.c (variable_tracking_main_1): Remove call
+ to mark_dfs_back_edges.
+
+2020-07-27 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/96128
+ * tree-vect-generic.c (expand_vector_comparison): Do not expand
+ vector comparison with VEC_COND_EXPR.
+
+2020-07-27 H.J. Lu <hjl.tools@gmail.com>
+
+ PR bootstrap/96203
+ * common.opt: Add -fcf-protection=check.
+ * flag-types.h (cf_protection_level): Add CF_CHECK.
+ * lto-wrapper.c (merge_and_complain): Issue an error for
+ mismatching -fcf-protection values with -fcf-protection=check.
+ Otherwise, merge -fcf-protection values.
+ * doc/invoke.texi: Document -fcf-protection=check.
+
+2020-07-27 Martin Liska <mliska@suse.cz>
+
+ PR lto/45375
+ * symbol-summary.h: Call vec_safe_reserve before grow is called
+ in order to grow to a reasonable size.
+ * vec.h (vec_safe_reserve): Add missing function for vl_ptr
+ type.
+
+2020-07-26 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * configure.ac (out-of-tree linker .hidden support): Don't turn off
+ for mmix-knuth-mmixware.
+ * configure: Regenerate.
+
+2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_option_override_internal):
+ Set the default value for -mblock-ops-unaligned-vsx.
+ * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
+ * doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
+
+2020-07-25 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default
+ with default_asm_output_ident_directive.
+
+2020-07-25 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function.
+ (TARGET_SCALAR_MODE_SUPPORTED_P): New define.
+
+2020-07-24 David Edelsohn <dje.gcc@gmail.com>
+ Clement Chigot <clement.chigot@atos.net>
+
+ * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for
+ cpu_is_64bit.
+ * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option.
+ (ASM_SPEC32): New.
+ (ASM_SPEC64): New.
+ (ASM_CPU_SPEC): Remove vsx and altivec options.
+ (CPP_SPEC_COMMON): Rename from CPP_SPEC.
+ (CPP_SPEC32): New.
+ (CPP_SPEC64): New.
+ (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
+ (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
+ (LIB_SPEC_COMMON): Rename from LIB_SPEC.
+ (LIB_SPEC32): New.
+ (LIB_SPEC64): New.
+ (LINK_SPEC_COMMON): Rename from LINK_SPEC.
+ (LINK_SPEC32): New.
+ (LINK_SPEC64): New.
+ (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
+ (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
+ (CPP_SPEC): Same.
+ (CPLUSPLUS_CPP_SPEC): Same.
+ (LIB_SPEC): Same.
+ (LINK_SPEC): Same.
+ (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
+ * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH.
+ * config/rs6000/defaultaix64.h: Delete.
+
+2020-07-24 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.opt: Delete -mpower10.
+
+2020-07-24 Alexandre Oliva <oliva@adacore.com>
+
+ * config/i386/intelmic-mkoffload.c
+ (generate_target_descr_file): Use dumppfx for save_temps
+ files. Pass -dumpbase et al down to the compiler.
+ (generate_target_offloadend_file): Likewise.
+ (generate_host_descr_file): Likewise.
+ (prepare_target_image): Likewise. Move out_obj_filename
+ setting...
+ (main): ... here. Detect -dumpbase, set dumppfx too.
+
+2020-07-24 Alexandre Oliva <oliva@adacore.com>
+
+ PR driver/96230
+ * gcc.c (process_command): Adjust and document conditions to
+ reset dumpbase_ext.
+
+2020-07-24 Matthias Klose <doko@ubuntu.com>
+
+ * config/aarch64/aarch64.c (+aarch64_offload_options,
+ TARGET_OFFLOAD_OPTIONS): New.
+
+2020-07-24 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/95750
+ * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os.
+
+2020-07-23 Roger Sayle <roger@nextmovesoftware.com>
+
+ PR rtl-optimization/96298
+ * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't
+ distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b.
+
+2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com>
+
+ PR gcov-profile/96267
+ * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL.
+
+2020-07-23 Kewen Lin <linkw@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ...
+ (rs6000_adjust_vect_cost_per_stmt): ... here.
+ (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to
+ rs6000_adjust_vect_cost_per_stmt.
+
+2020-07-23 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
+ IFN_LEN_LOAD and IFN_LEN_STORE.
+ (get_alias_ptr_type_for_ptr_address): Likewise.
+
+2020-07-23 Kito Cheng <kito.cheng@sifive.com>
+
+ PR target/96260
+ * asan.c (asan_shadow_offset_set_p): New.
+ * asan.h (asan_shadow_offset_set_p): Ditto.
+ * toplev.c (process_options): Allow -fsanitize=kernel-address
+ even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when
+ asan stack protection is enabled.
+
+2020-07-22 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/96236
+ * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle
+ little-endian memory ordering.
+
+2020-07-22 Nathan Sidwell <nathan@acm.org>
+
+ * dumpfile.c (parse_dump_option): Deal with filenames
+ containing '-'
+
+2020-07-22 Nathan Sidwell <nathan@acm.org>
+
+ * incpath.c (add_path): Avoid multiple strlen calls.
+
+2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag
+ is not NULL_RTX before use.
+
+2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * expr.c (convert_modes): Allow a constant integer to be converted to
+ any scalar int mode.
+
+2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector
+ V2SI, V2SF, V2DI, V2DF load pair and store pair modes.
+ * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
+ Change mode parameter to machine_mode.
+ (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to
+ machine_mode.
+ * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp):
+ Change mode parameter to machine_mode.
+ (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode.
+ * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors.
+
+2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com>
+
+ * doc/languages.texi: Fix “then”/“than” typo.
+
+2020-07-21 Sunil K Pandey <skpgkp2@gmail.com>
+
+ PR target/95237
+ * config/i386/i386-protos.h (ix86_local_alignment): Add
+ another function parameter may_lower alignment. Default is
+ false.
+ * config/i386/i386.c (ix86_lower_local_decl_alignment): New
+ function.
+ (ix86_local_alignment): Amend ix86_local_alignment to accept
+ another parameter may_lower. If may_lower is true, new align
+ may be lower than incoming alignment. If may_lower is false,
+ new align will be greater or equal to incoming alignment.
+ (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define.
+ * doc/tm.texi: Regenerate.
+ * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New
+ hook.
+ * target.def (lower_local_decl_alignment): New hook.
+
+2020-07-21 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/95750
+ * config/i386/sync.md (mfence_sse2): Enable for
+ TARGET_64BIT and TARGET_SSE2.
+ (mfence_nosse): Always enable.
+
+2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps):
+ Remove.
+ * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise.
+ * config/msp430/msp430.md (cbranchhi4_real): Remove special case for
+ msp430_do_not_relax_short_jumps.
+
+2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/msp430.md: New "extendqipsi2" define_insn.
+
+2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
+ above.
+
+2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com>
+
+ PR rtl-optimization/89310
+ * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split.
+
+2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total
+ allocated size and set current_function_static_stack_size, if
+ flag_stack_usage_info.
+
+2020-07-20 Sergei Trofimovich <siarheit@google.com>
+
+ PR target/96190
+ * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
+ to get crtendS.o for !no-pie mode.
+ * config/sparc/linux64.h (ENDFILE_SPEC): Ditto.
+
+2020-07-20 Yang Yang <yangyang305@huawei.com>
+
+ * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
+ VIEW_CONVERT_EXPRs if the arguments types and return type
+ of simd clone function are distinct with the vectype of stmt.
+
+2020-07-20 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/95750
+ * config/i386/i386.h (TARGET_AVOID_MFENCE):
+ Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE.
+ * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE.
+ (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack
+ referred memory in word_mode.
+ (mem_thread_fence): Do not generate mfence_sse2 pattern when
+ TARGET_AVOID_MFENCE is true.
+ (atomic_store<mode>): Update for rename.
+ * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE):
+ Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE.
+
+2020-07-20 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/95189
+ PR middle-end/95886
+ * builtins.c (inline_expand_builtin_string_cmp): Rename...
+ (inline_expand_builtin_bytecmp): ...to this.
+ (builtin_memcpy_read_str): Don't expect data to be nul-terminated.
+ (expand_builtin_memory_copy_args): Handle object representations
+ with embedded nul bytes.
+ (expand_builtin_memcmp): Same.
+ (expand_builtin_strcmp): Adjust call to naming change.
+ (expand_builtin_strncmp): Same.
+ * expr.c (string_constant): Create empty strings with nonzero size.
+ * fold-const.c (c_getstr): Rename locals and update comments.
+ * tree.c (build_string): Accept null pointer argument.
+ (build_string_literal): Same.
+ * tree.h (build_string): Provide a default.
+ (build_string_literal): Same.
+
+2020-07-20 Richard Biener <rguenther@suse.de>
+
+ * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove
+ write-only post array.
+
+2020-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/93121
+ * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF
+ of a bitfield not aligned on byte boundaries try to
+ fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and
+ adjust it depending on endianity.
+
+2020-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/93121
+ * fold-const.c (native_encode_initializer): Handle bit-fields.
+
+2020-07-20 Kewen Lin <linkw@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_option_override_internal):
+ Set param_vect_partial_vector_usage to 0 explicitly.
+ * doc/invoke.texi (vect-partial-vector-usage): Document new option.
+ * optabs-query.c (get_len_load_store_mode): New function.
+ * optabs-query.h (get_len_load_store_mode): New declare.
+ * params.opt (vect-partial-vector-usage): New.
+ * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the
+ handlings for vectorization using length-based partial vectors, call
+ vect_gen_len for length generation, and rename some variables with
+ items instead of scalars.
+ (vect_set_loop_condition_partial_vectors): Add the handlings for
+ vectorization using length-based partial vectors.
+ (vect_do_peeling): Allow remaining eiters less than epilogue vf for
+ LOOP_VINFO_USING_PARTIAL_VECTORS_P.
+ * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init
+ epil_using_partial_vectors_p.
+ (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls
+ for lengths destruction.
+ (vect_verify_loop_lens): New function.
+ (vect_analyze_loop): Add handlings for epilogue of loop when it's
+ marked to use vectorization using partial vectors.
+ (vect_analyze_loop_2): Add the check to allow only one vectorization
+ approach using partial vectorization at the same time. Check param
+ vect-partial-vector-usage for partial vectors decision. Mark
+ LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is
+ considerable to use partial vectors. Call release_vec_loop_controls
+ for lengths destruction.
+ (vect_estimate_min_profitable_iters): Adjust for loop vectorization
+ using length-based partial vectors.
+ (vect_record_loop_mask): Init factor to 1 for vectorization using
+ mask-based partial vectors.
+ (vect_record_loop_len): New function.
+ (vect_get_loop_len): Likewise.
+ * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add
+ checks for vectorization using length-based partial vectors. Factor
+ some code to lambda function get_valid_nvectors.
+ (vectorizable_store): Add handlings when using length-based partial
+ vectors.
+ (vectorizable_load): Likewise.
+ (vect_gen_len): New function.
+ * tree-vectorizer.h (struct rgroup_controls): Add field factor
+ mainly for length-based partial vectors.
+ (vec_loop_lens): New typedef.
+ (_loop_vec_info): Add lens and epil_using_partial_vectors_p.
+ (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro.
+ (LOOP_VINFO_LENS): Likewise.
+ (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise.
+ (vect_record_loop_len): New declare.
+ (vect_get_loop_len): Likewise.
+ (vect_gen_len): Likewise.
+
+2020-07-20 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.c (mmix_option_override): Reinstate default
+ integer-emitting targetm.asm_out pseudos when dumping detailed
+ assembly-code.
+ (mmix_assemble_integer): Update comment.
+
+2020-07-19 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95973
+ PR target/96238
+ * config/i386/cpuid.h: Add include guard.
+ (__cpuidex): New.
+
+2020-07-18 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95620
+ * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
+
+2020-07-18 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/92488
+ * config/rs6000/dfp.md (trunctdsd2): New define_insn.
+ * config/rs6000/rs6000.md (define_attr "isa"): Add p9.
+ (define_attr "enabled"): Handle p9.
+
+2020-07-17 Roger Sayle <roger@nextmovesoftware.com>
+
+ * function.c (assign_parm_setup_block): Use the macro
+ TRULY_NOOP_TRUNCATION_MODES_P instead of calling
+ targetm.truly_noop_truncation directly.
+
+2020-07-17 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/96186
+ PR target/88713
+ * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ...
+ (VF1_AVX512ER_128_256): This. Drop DF vector modes.
+ (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with
+ VF1_AVX512ER_128_256.
+
+2020-07-17 Tamar Christina <tamar.christina@arm.com>
+
+ * doc/sourcebuild.texi (dg-set-compiler-env-var,
+ dg-set-target-env-var): Document.
+
+2020-07-17 Tamar Christina <tamar.christina@arm.com>
+
+ * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO.
+
+2020-07-17 Tamar Christina <tamar.christina@arm.com>
+
+ * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
+ Add GCC_CPUINFO.
+
+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-07-17 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining.
+ (ELFOSABI_AMDGPU_HSA): Likewise.
+ (ELFABIVERSION_AMDGPU_HSA): Likewise.
+ (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise.
+ (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise.
+ (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise.
+ (reserved): Delete.
+
+2020-07-17 Andrew Pinski <apinksi@marvell.com>
+ Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
+
+ PR target/93720
+ * config/aarch64/aarch64.c (aarch64_evpc_ins): New function.
+ (aarch64_expand_vec_perm_const_1): Call it.
+ * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make
+ public, and add a "@" prefix.
+
+2020-07-17 Andrew Pinski <apinksi@marvell.com>
+ Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
+
+ PR target/82199
+ * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function.
+ (aarch64_expand_vec_perm_const_1): Call it.
+
+2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com>
+
+ * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
+ Add new field flags.
+ (VAR1): Add new field FLAG in macro.
+ (VAR2): Likewise.
+ (VAR3): Likewise.
+ (VAR4): Likewise.
+ (VAR5): Likewise.
+ (VAR6): Likewise.
+ (VAR7): Likewise.
+ (VAR8): Likewise.
+ (VAR9): Likewise.
+ (VAR10): Likewise.
+ (VAR11): Likewise.
+ (VAR12): Likewise.
+ (VAR13): Likewise.
+ (VAR14): Likewise.
+ (VAR15): Likewise.
+ (VAR16): Likewise.
+ (aarch64_general_fold_builtin): Likewise.
+ (aarch64_general_gimple_fold_builtin): Likewise.
+ * config/aarch64/aarch64-simd-builtins.def: Add default flag for
+ each built-in function.
+ * config/aarch64/geniterators.sh: Add new field in BUILTIN macro.
+
+2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
+
+ PR target/96127
+ * config/s390/s390.c (s390_expand_insv): Invoke the movstrict
+ expanders to generate the pattern.
+ * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the
+ '*' to have callable expanders.
+
+2020-07-16 Hans-Peter Nilsson <hp@axis.com>
+ Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR target/93372
+ * combine.c (is_just_move): Take an rtx_insn* as argument. Use
+ single_set on it.
+
+2020-07-16 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/96189
+ * config/i386/sync.md
+ (peephole2 to remove unneded compare after CMPXCHG):
+ New pattern, also handle XOR zeroing and load of -1 by OR.
+
+2020-07-16 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak.
+ (ix86_adjust_stack_and_probe): Delete.
+ (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add
+ PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus
+ a small dope beyond SIZE bytes.
+ (ix86_emit_probe_stack_range): Use local variable.
+ (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe
+ and tidy up the stack checking code.
+ * explow.c (get_stack_check_protect): Fix head comment.
+ (anti_adjust_stack_and_probe_stack_clash): Likewise.
+ (allocate_dynamic_stack_space): Add comment.
+ * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and
+ TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field.
+
+2020-07-16 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/mkoffload.c: Include simple-object.h and elf.h.
+ (EM_AMDGPU): New macro.
+ (ELFOSABI_AMDGPU_HSA): New macro.
+ (ELFABIVERSION_AMDGPU_HSA): New macro.
+ (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro.
+ (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro.
+ (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro.
+ (R_AMDGPU_NONE): New macro.
+ (R_AMDGPU_ABS32_LO): New macro.
+ (R_AMDGPU_ABS32_HI): New macro.
+ (R_AMDGPU_ABS64): New macro.
+ (R_AMDGPU_REL32): New macro.
+ (R_AMDGPU_REL64): New macro.
+ (R_AMDGPU_ABS32): New macro.
+ (R_AMDGPU_GOTPCREL): New macro.
+ (R_AMDGPU_GOTPCREL32_LO): New macro.
+ (R_AMDGPU_GOTPCREL32_HI): New macro.
+ (R_AMDGPU_REL32_LO): New macro.
+ (R_AMDGPU_REL32_HI): New macro.
+ (reserved): New macro.
+ (R_AMDGPU_RELATIVE64): New macro.
+ (gcn_s1_name): Delete global variable.
+ (gcn_s2_name): Delete global variable.
+ (gcn_o_name): Delete global variable.
+ (gcn_cfile_name): Delete global variable.
+ (files_to_cleanup): New global variable.
+ (offload_abi): New global variable.
+ (tool_cleanup): Use files_to_cleanup, not explicit list.
+ (copy_early_debug_info): New function.
+ (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name,
+ gcn_cfile_name.
+ Create files_to_cleanup obstack.
+ Recognize -march options.
+ Copy early debug info from input .o files.
+
+2020-07-16 Andrea Corallo <andrea.corallo@arm.com>
+
+ * Makefile.in (TAGS): Remove 'params.def'.
+
+2020-07-16 Roger Sayle <roger@nextmovesoftware.com>
+
+ * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that
+ targets that return false, indicating SUBREGs shouldn't be
+ used, also need to provide a trunc?i?i2 optab that performs this
+ truncation.
+ * doc/tm.texi: Regenerate.
+
+2020-07-15 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR target/96189
+ * config/i386/sync.md
+ (peephole2 to remove unneded compare after CMPXCHG): New pattern.
+
+2020-07-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR libgomp/96198
+ * omp-general.h (struct omp_for_data): Rename min_inner_iterations
+ member to first_inner_iterations, adjust comment.
+ * omp-general.c (omp_extract_for_data): Adjust for the above change.
+ Always use n1first and n2first to compute it, rather than depending
+ on single_nonrect_cond_code. Similarly, always compute factor
+ as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2
+ depending on single_nonrect_cond_code.
+ * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations
+ to first_inner_iterations and min_inner_iterationsd to
+ first_inner_iterationsd.
+
+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-07-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/96176
+ * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and
+ tree-outof-ssa.h.
+ (expand_expr_force_mode): If exp is a SSA_NAME with different mode
+ from MODE and get_gimple_for_ssa_name is a cast from MODE, use the
+ cast's rhs.
+
+2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
+
+2020-07-14 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64
+ condition.
+ * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add
+ TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
+
+2020-07-14 Lewis Hyatt <lhyatt@gmail.com>
+
+ PR preprocessor/49973
+ PR other/86904
+ * common.opt: Handle -ftabstop here instead of in c-family
+ options. Add -fdiagnostics-column-unit= and
+ -fdiagnostics-column-origin= options.
+ * opts.c (common_handle_option): Handle the new options.
+ * diagnostic-format-json.cc (json_from_expanded_location): Add
+ diagnostic_context argument. Use it to convert column numbers as per
+ the new options.
+ (json_from_location_range): Likewise.
+ (json_from_fixit_hint): Likewise.
+ (json_end_diagnostic): Pass the new context argument to helper
+ functions above. Add "column-origin" field to the output.
+ (test_unknown_location): Add the new context argument to calls to
+ helper functions.
+ (test_bad_endpoints): Likewise.
+ * diagnostic-show-locus.c
+ (exploc_with_display_col::exploc_with_display_col): Support
+ tabstop parameter.
+ (layout_point::layout_point): Make use of class
+ exploc_with_display_col.
+ (layout_range::layout_range): Likewise.
+ (struct line_bounds): Clarify that the units are now always
+ display columns. Rename members accordingly. Add constructor.
+ (layout::print_source_line): Add support for tab expansion.
+ (make_range): Adapt to class layout_range changes.
+ (layout::maybe_add_location_range): Likewise.
+ (layout::layout): Adapt to class exploc_with_display_col changes.
+ (layout::calculate_x_offset_display): Support tabstop parameter.
+ (layout::print_annotation_line): Adapt to struct line_bounds changes.
+ (layout::print_line): Likewise.
+ (line_label::line_label): Add diagnostic_context argument.
+ (get_affected_range): Likewise.
+ (get_printed_columns): Likewise.
+ (layout::print_any_labels): Adapt to struct line_label changes.
+ (class correction): Add m_tabstop member.
+ (correction::correction): Add tabstop argument.
+ (correction::compute_display_cols): Use m_tabstop.
+ (class line_corrections): Add m_context member.
+ (line_corrections::line_corrections): Add diagnostic_context argument.
+ (line_corrections::add_hint): Use m_context to handle tabstops.
+ (layout::print_trailing_fixits): Adapt to class line_corrections
+ changes.
+ (test_layout_x_offset_display_utf8): Support tabstop parameter.
+ (test_layout_x_offset_display_tab): New selftest.
+ (test_one_liner_colorized_utf8): Likewise.
+ (test_tab_expansion): Likewise.
+ (test_diagnostic_show_locus_one_liner_utf8): Call the new tests.
+ (diagnostic_show_locus_c_tests): Likewise.
+ (test_overlapped_fixit_printing): Adapt to helper class and
+ function changes.
+ (test_overlapped_fixit_printing_utf8): Likewise.
+ (test_overlapped_fixit_printing_2): Likewise.
+ * diagnostic.h (enum diagnostics_column_unit): New enum.
+ (struct diagnostic_context): Add members for the new options.
+ (diagnostic_converted_column): Declare.
+ (json_from_expanded_location): Add new context argument.
+ * diagnostic.c (diagnostic_initialize): Initialize new members.
+ (diagnostic_converted_column): New function.
+ (maybe_line_and_column): Be willing to output a column of 0.
+ (diagnostic_get_location_text): Convert column number as per the new
+ options.
+ (diagnostic_report_current_module): Likewise.
+ (assert_location_text): Add origin and column_unit arguments for
+ testing the new functionality.
+ (test_diagnostic_get_location_text): Test the new functionality.
+ * doc/invoke.texi: Document the new options and behavior.
+ * input.h (location_compute_display_column): Add tabstop argument.
+ * input.c (location_compute_display_column): Likewise.
+ (test_cpp_utf8): Add selftests for tab expansion.
+ * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the
+ new context argument to json_from_expanded_location().
+
+2020-07-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/96194
+ * expr.c (expand_constructor): Don't create temporary for store to
+ volatile MEM if exp has an addressable type.
+
+2020-07-14 Nathan Sidwell <nathan@acm.org>
+
+ * hash-map.h (hash_map::get): Note it is a pointer to value.
+ * incpath.h (incpath_kind): Align comments.
+
+2020-07-14 Nathan Sidwell <nathan@acm.org>
+
+ * tree-core.h (tree_decl_with_vis, tree_function_decl):
+ Note additional padding on 64-bits
+ * tree.c (cache_integer_cst): Note why no caching of enum literals.
+ (get_tree_code_name): Robustify error case.
+
+2020-07-14 Nathan Sidwell <nathan@acm.org>
+
+ * doc/gty.texi: Fic gt_cleare_cache name.
+ * doc/invoke.texi: Remove duplicate opindex Wabi-tag.
+
+2020-07-14 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-general.h (struct omp_for_data): Add adjn1 member.
+ * omp-general.c (omp_extract_for_data): For non-rect loop, punt on
+ count computing if n1, n2 or step are not INTEGER_CST earlier.
+ Narrow the outer iterator range if needed so that non-rect loop
+ has at least one iteration for each outer range iteration. Compute
+ adjn1.
+ * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL
+ instead of the outer loop's n1.
+
+2020-07-14 Matthias Klose <doko@ubuntu.com>
+
+ PR lto/95604
+ * lto-wrapper.c (merge_and_complain): Add decoded options as parameter,
+ error on different values for -fcf-protection.
+ (append_compiler_options): Pass -fcf-protection option.
+ (find_and_merge_options): Add decoded options as parameter,
+ pass decoded_options to merge_and_complain.
+ (run_gcc): Pass decoded options to find_and_merge_options.
+ * lto-opts.c (lto_write_options): Pass -fcf-protection option.
+
+2020-07-13 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32
+ and sibcall_local64.
+ (sibcall_value_local): Similarly.
+
+2020-07-13 Nathan Sidwell <nathan@acm.org>
+
+ * Makefile.in (distclean): Remove long gone cxxmain.c
+
+2020-07-13 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95443
+ * config/i386/i386.md (cmpstrnsi): Pass a copy of the string
+ length to cmpstrnqi patterns.
+
+2020-07-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR ipa/96130
+ * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
+ as false predicate.
+
+2020-07-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96163
+ * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts
+ at least after region begin.
+
+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-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ PR target/94891
+ * doc/extend.texi: Update the text for __builtin_return_address.
+
+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-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-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-07-13 Julian Brown <julian@codesourcery.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * gimplify.c (gimplify_scan_omp_clauses): Do not strip
+ GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data
+ directives (see also PR92929).
+
+2020-07-13 Roger Sayle <roger@nextmovesoftware.com>
+
+ * convert.c (convert_to_integer_1): Narrow integer operations
+ even on targets that require explicit truncation instructions.
+
+2020-07-13 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/93372
+ * config/cris/cris-passes.def: New file.
+ * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def.
+ * config/cris/cris.c: Add infrastructure bits and pass execute
+ function cris_postdbr_cmpelim.
+ * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare.
+
+2020-07-13 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/t-cris: Remove gt-cris.h-related excessive cargo.
+
+2020-07-13 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/93372
+ * config/cris/cris.md ("*add<mode>3_addi"): New splitter.
+ ("*addi_b_<mode>"): New pattern.
+ ("*addsi3<setnz>"): Remove stale %-related comment.
+
+2020-07-13 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"):
+ Use match_dup in output template, not match_operand.
+
+2020-07-13 Richard Biener <rguenther@suse.de>
+
+ * var-tracking.c (bb_heap_node_t): Remove unused typedef.
+ (vt_find_locations): Eliminate visited bitmap in favor of
+ RPO order check. Dump statistics about the number of
+ local BB dataflow computes.
+
+2020-07-13 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/94600
+ * expr.c (expand_constructor): Make a temporary also if we're
+ storing to volatile memory.
+
+2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
+
+ * config/rs6000/rs6000.md (rotl_unspec): New
+ define_insn_and_split.
+
+2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_expand_vector_init):
+ Move V4SF to V4SI, init vector like V4SI and move to V4SF back.
+
+2020-07-11 Roger Sayle <roger@nextmovesoftware.com>
+
+ * internal-fn.c (expand_mul_overflow): When checking for signed
+ overflow from a widening multiplication, we access the truncated
+ lowpart RES twice, so keep this value in a pseudo register.
+
+2020-07-11 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/96146
+ * value-range.cc (value_range::set): Only decompose POLY_INT_CST
+ bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges
+ involving POLY_INT_CSTs.
+
+2020-07-10 David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/77373
+ * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only
+ create named section for VAR_DECL or FUNCTION_DECL.
+
+2020-07-10 Joseph Myers <joseph@codesourcery.com>
+
+ * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH):
+ New macros.
+
+2020-07-10 Alexander Popov <alex.popov@linux.com>
+
+ * shrink-wrap.c (try_shrink_wrapping): Improve debug output.
+
+2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR middle-end/96151
+ * expr.c (expand_expr_real_2): When reducing bit fields,
+ clear the target if it has a different mode from the expression.
+ (reduce_to_bit_field_precision): Don't do that here. Instead
+ assert that the target already has the correct mode.
+
+2020-07-10 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/92789
+ PR target/95726
+ * config/arm/arm.c (arm_attribute_table): Add
+ "Advanced SIMD type".
+ (arm_comp_type_attributes): Check that the "Advanced SIMD type"
+ attributes are equal.
+ * config/arm/arm-builtins.c: Include stringpool.h and
+ attribs.h.
+ (arm_mangle_builtin_vector_type): Use the mangling recorded
+ in the "Advanced SIMD type" attribute.
+ (arm_init_simd_builtin_types): Add an "Advanced SIMD type"
+ attribute to each Advanced SIMD type, using the mangled type
+ as the attribute's single argument.
+
+2020-07-10 Carl Love <cel@us.ibm.com>
+
+ * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator.
+ (VSX_MM4): New define_mode_iterator.
+ (vec_mtvsrbmi): New define_insn.
+ (vec_mtvsr_<mode>): New define_insn.
+ (vec_cntmb_<mode>): New define_insn.
+ (vec_extract_<mode>): New define_insn.
+ (vec_expand_<mode>): New define_insn.
+ (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB,
+ UNSPEC_VEXTRACT, UNSPEC_VEXPAND.
+ * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm,
+ vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add
+ defines.
+ * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1.
+ (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm,
+ mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd,
+ vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq.
+ (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd.
+ (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm,
+ mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm.
+ (BU_P10_OVERLOAD_2): Add defition for cntm.
+ * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add
+ checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi,
+ CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di.
+ (altivec_overloaded_builtins): Add overloaded argument entries for
+ P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM,
+ P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM,
+ P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB,
+ P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
+ P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
+ P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
+ P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
+ P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB,
+ P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW,
+ P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ.
+ (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM,
+ P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM,
+ P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH,
+ P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD,
+ P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH,
+ P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD,
+ P10_BUILTIN_VEXPANDMQ.
+ * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add
+ entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM,
+ VEXPANDM, VEXTRACTM.
+
+2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)>
+
+ PR target/95581
+ * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid.
+ (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use
+ v16qi_ftype_pcvoid with correct number of parameters.
+
+2020-07-10 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/96144
+ * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check
+ TARGET_AVX512VL when enabling FMA.
+
+2020-07-10 Andrea Corallo <andrea.corallo@arm.com>
+ Mihail-Calin Ionescu <mihail.ionescu@arm.com>
+ Iain Apreotesei <iain.apreotesei@arm.com>
+
+ * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New
+ prototype.
+ * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
+ (arm_invalid_within_doloop): Implement invalid_within_doloop hook.
+ (arm_target_insn_ok_for_lob): New function.
+ * config/arm/arm.h (TARGET_HAVE_LOB): Define macro.
+ * config/arm/thumb2.md (*doloop_end_internal, doloop_begin)
+ (dls_insn): Add new patterns.
+ (doloop_end): Modify to select LR when LOB is available.
+ * config/arm/unspecs.md: Add new unspec.
+ * doc/sourcebuild.texi (arm_v8_1_lob_ok)
+ (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports
+ options.
+
+2020-07-10 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96133
+ * gimple-fold.c (fold_array_ctor_reference): Do not
+ recurse to folding a CTOR that does not fully cover the
+ asked for object.
+
+2020-07-10 Cui,Lili <lili.cui@intel.com>
+
+ * common/config/i386/cpuinfo.h
+ (get_intel_cpu): Handle sapphirerapids.
+ * common/config/i386/i386-common.c
+ (processor_names): Add sapphirerapids and alderlake.
+ (processor_alias_table): Add sapphirerapids and alderlake.
+ * common/config/i386/i386-cpuinfo.h
+ (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and
+ INTEL_COREI7_ALDERLAKE.
+ * config.gcc: Add -march=sapphirerapids and alderlake.
+ * config/i386/driver-i386.c
+ (host_detect_local_cpu) Handle sapphirerapids and alderlake.
+ * config/i386/i386-c.c
+ (ix86_target_macros_internal): Handle sapphirerapids and alderlake.
+ * config/i386/i386-options.c
+ (m_SAPPHIRERAPIDS) : Define.
+ (m_ALDERLAKE): Ditto.
+ (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS.
+ (processor_cost_table): Add sapphirerapids and alderlake.
+ (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD,
+ PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK.
+ * config/i386/i386.h
+ (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE.
+ (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
+ PROCESSOR_ALDERLAKE.
+ (PTA_ENQCMD): New.
+ (PTA_CLDEMOTE): Ditto.
+ (PTA_SERIALIZE): Ditto.
+ (PTA_TSXLDTRK): New.
+ (PTA_SAPPHIRERAPIDS): Ditto.
+ (PTA_ALDERLAKE): Ditto.
+ (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and
+ PROCESSOR_ALDERLAKE.
+ * doc/extend.texi: Add sapphirerapids and alderlake.
+ * doc/invoke.texi: Add sapphirerapids and alderlake.
+
+2020-07-10 Martin Liska <mliska@suse.cz>
+
+ * dumpfile.c [profile-report]: Add new profile dump.
+ * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report.
+ * passes.c (pass_manager::dump_profile_report): Change stderr
+ to dump_file.
+
+2020-07-10 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which
+ is adjusted by considering peeled prologue for non
+ vect_use_loop_mask_for_alignment_p cases.
+
+2020-07-09 Peter Bergner <bergner@linux.ibm.com>
+
+ PR target/96125
+ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA
+ specific types __vector_quad and __vector_pair, and initialize the
+ MMA built-ins if TARGET_EXTRA_BUILTINS is set.
+ (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask.
+ Remove now unneeded mask variable.
+ * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the
+ OPTION_MASK_MMA flag for power10 if not already set.
+
+2020-07-09 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96133
+ * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p
+ status between stmts.
+
+2020-07-09 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/88713
+ * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA.
+ * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New.
+ (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256.
+ (rsqrtv16sf2): Removed.
+
+2020-07-09 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove.
+ (vect_slp_analyze_and_verify_instance_alignment): Rename to ...
+ (vect_slp_analyze_instance_alignment): ... this.
+ * tree-vect-data-refs.c (verify_data_ref_alignment): Remove.
+ (vect_verify_datarefs_alignment): Likewise.
+ (vect_enhance_data_refs_alignment): Do not call
+ vect_verify_datarefs_alignment.
+ (vect_slp_analyze_node_alignment): Rename from
+ vect_slp_analyze_and_verify_node_alignment and do not
+ call verify_data_ref_alignment.
+ (vect_slp_analyze_instance_alignment): Rename from
+ vect_slp_analyze_and_verify_instance_alignment.
+ * tree-vect-stmts.c (vectorizable_store): Dump when
+ we vectorize an unaligned access.
+ (vectorizable_load): Likewise.
+ * tree-vect-loop.c (vect_analyze_loop_2): Do not call
+ vect_verify_datarefs_alignment.
+ * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust.
+
+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-09 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-general.h (struct omp_for_data): Add min_inner_iterations
+ and factor members.
+ * omp-general.c (omp_extract_for_data): Initialize them and remember
+ them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there.
+ * omp-expand.c (expand_omp_for_init_counts): Fix up computation of
+ counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST.
+ (expand_omp_for_init_vars): For
+ fd->first_nonrect + 1 == fd->last_nonrect loops with for now
+ INTEGER_CST fd->loop.n2 find quadratic equation roots instead of
+ using fallback method when possible.
+
+2020-07-09 Omar Tahir <omar.tahir@arm.com>
+
+ * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and
+ last_moveable_pseudo before returning.
+
+2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add
+ __ARM_FEATURE_BTI_DEFAULT support.
+
+2020-07-09 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-07-09 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-07-09 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-07-09 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization
+ with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION
+ or nested-cycle reduction.
+
+2020-07-09 Kewen Lin <linkw@linux.ibm.com>
+
+ * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string
+ for fully masking to be more common.
+
+2020-07-09 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv.md (get_thread_pointer<mode>): New.
+ (TP_REGNUM): Ditto.
+ * doc/extend.texi (Target Builtins): Add RISC-V built-in section.
+ Document __builtin_thread_pointer.
+
+2020-07-09 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
+ Abort if any arguments on stack.
+
+2020-07-08 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if
+ either type has reverse scalar storage order.
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through
+ a memory copy if either type has reverse scalar storage order.
+
+2020-07-08 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic
+ on to the native compiler, if used.
+ * config/nvptx/mkoffload.c (compile_native, main): Likewise.
+
+2020-07-08 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-call.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-08 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-stmts.c (get_group_load_store_type): Pass
+ in the SLP node and the alignment support scheme output.
+ Set that.
+ (get_load_store_type): Likewise.
+ (vectorizable_store): Adjust.
+ (vectorizable_load): Likewise.
+
+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.
+
+2020-07-08 Kewen Lin <linkw@linux.ibm.com>
+
+ * config/rs6000/vsx.md (len_load_v16qi): New define_expand.
+ (len_store_v16qi): Likewise.
+
+2020-07-08 Kewen Lin <linkw@linux.ibm.com>
+
+ * doc/md.texi (len_load_@var{m}): Document.
+ (len_store_@var{m}): Likewise.
+ * internal-fn.c (len_load_direct): New macro.
+ (len_store_direct): Likewise.
+ (expand_len_load_optab_fn): Likewise.
+ (expand_len_store_optab_fn): Likewise.
+ (direct_len_load_optab_supported_p): Likewise.
+ (direct_len_store_optab_supported_p): Likewise.
+ (expand_mask_load_optab_fn): New macro. Original renamed to ...
+ (expand_partial_load_optab_fn): ... here. Add handlings for
+ len_load_optab.
+ (expand_mask_store_optab_fn): New macro. Original renamed to ...
+ (expand_partial_store_optab_fn): ... here. Add handlings for
+ len_store_optab.
+ (internal_load_fn_p): Handle IFN_LEN_LOAD.
+ (internal_store_fn_p): Handle IFN_LEN_STORE.
+ (internal_fn_stored_value_index): Handle IFN_LEN_STORE.
+ * internal-fn.def (LEN_LOAD): New internal function.
+ (LEN_STORE): Likewise.
+ * optabs.def (len_load_optab, len_store_optab): New optab.
+
+2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
+
+ * config/aarch64/aarch64.c (thunderx2t99_regmove_cost,
+ thunderx2t99_vector_cost): Likewise.
+
+2020-07-07 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
+ group overlap condition to allow negative step DR groups.
+ * tree-vect-stmts.c (get_group_load_store_type): For
+ multi element SLP groups force VMAT_STRIDED_SLP when the step
+ is negative.
+
+2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com>
+
+ * doc/generic.texi: Fix typo.
+
+2020-07-07 Richard Biener <rguenther@suse.de>
+
+ * lto-streamer-out.c (cmp_symbol_files): Use the computed
+ order map to sort symbols from the same sub-file together.
+ (lto_output): Compute a map of sub-file to an order number
+ it appears in the symbol output array.
+
+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-07-06 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/nvptx/nvptx.md (*vadd_addsi4): New instruction.
+ (*vsub_addsi4): New instruction.
+
+2020-07-06 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md (movulsr): New peephole2.
+
+2020-07-06 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"):
+ Correct gcc_assert of overlapping operands.
+
+2020-07-05 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.c (cris_select_cc_mode): Always return
+ CC_NZmode for matching comparisons. Clarify comments.
+ * config/cris/cris-modes.def: Clarify mode comment.
+ * config/cris/cris.md (plusminus, plusminusumin, plusumin): New
+ code iterators.
+ (addsub, addsubbo, nd): New code iterator attributes.
+ ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code
+ iterator constructs instead of match_operator constructs.
+ ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from
+ "*extop<mode>si<setnz>".
+ ("*add<su>qihi_swap"): Similar from "*addxqihi_swap".
+ ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from
+ "*extop<mode>si<setnz>_swap".
+
+2020-07-05 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap")
+ ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate.
+
+2020-07-03 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that
+ were initially created for the assignment of a variable-sized
+ object and whose source is now a string constant.
+ * gimple-ssa-store-merging.c (struct merged_store_group): Document
+ STRING_CST for rhs_code field.
+ Add string_concatenation boolean field.
+ (merged_store_group::merged_store_group): Initialize it as well as
+ bit_insertion here.
+ (merged_store_group::do_merge): Set it upon seeing a STRING_CST.
+ Also set bit_insertion here upon seeing a BIT_INSERT_EXPR.
+ (merged_store_group::apply_stores): Clear it for small regions.
+ Do not create a power-of-2-sized buffer if it is still true.
+ And do not set bit_insertion here again.
+ (encode_tree_to_bitpos): Deal with BLKmode for the expression.
+ (merged_store_group::can_be_merged_into): Deal with STRING_CST.
+ (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion
+ to true after changing MEM_REF stores into BIT_INSERT_EXPR stores.
+ (count_multiple_uses): Return 0 for STRING_CST.
+ (split_group): Do not split the group for a string concatenation.
+ (imm_store_chain_info::output_merged_store): Constify and rename
+ some local variables. Build an array type as destination type
+ for a string concatenation, as well as a zero mask, and call
+ build_string to build the source.
+ (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR.
+ (pass_store_merging::process_store): Accept STRING_CST on the RHS.
+ * gimple.h (gimple_call_alloca_for_var_p): New accessor function.
+ * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var.
+ * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY.
+
+2020-07-03 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/96040
+ * ipa-sra.c (all_callee_accesses_present_p): Do not accept type
+ mismatched accesses.
+
+2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/nvptx/nvptx.md (popcount<mode>2): New instructions.
+ (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions.
+
+2020-07-03 Martin Liska <mliska@suse.cz>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR bootstrap/96046
+ * gcov-dump.c (tag_function): Use gcov_position_t
+ type.
+
+2020-07-03 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96037
+ * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def.
+
+2020-07-03 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the
+ original non-pattern stmts, look at the pattern stmt
+ vectorization status.
+
+2020-07-03 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New.
+
+2020-07-03 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vec_info::insert_on_entry): New.
+ (vec_info::insert_seq_on_entry): Likewise.
+ * tree-vectorizer.c (vec_info::insert_on_entry): Implement.
+ (vec_info::insert_seq_on_entry): Likewise.
+ * tree-vect-stmts.c (vect_init_vector_1): Use
+ vec_info::insert_on_entry.
+ (vect_finish_stmt_generation): Set modified bit after
+ adjusting VUSE.
+ * tree-vect-slp.c (vect_create_constant_vectors): Simplify
+ by using vec_info::insert_seq_on_entry and bypassing
+ vec_init_vector.
+ (vect_schedule_slp_instance): Deal with all-constant
+ children later.
+
+2020-07-03 Roger Sayle <roger@nextmovesoftware.com>
+ Tom de Vries <tdevries@suse.de>
+
+ PR target/90932
+ * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi
+ to access TYPE_SIZE (type). Return at least the mode's alignment.
+
+2020-07-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96028
+ * tree-vect-slp.c (vect_slp_convert_to_external): Make sure
+ we have scalar stmts to use.
+ (vect_slp_analyze_node_operations): When analyzing a child
+ failed try externalizing the parent node.
+
+2020-07-02 Martin Jambor <mjambor@suse.cz>
+
+ PR debug/95343
+ * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust
+ argument index if necessary.
+
+2020-07-02 Martin Liska <mliska@suse.cz>
+
+ PR middle-end/95830
+ * tree-vect-generic.c (expand_vector_condition): Forward declaration.
+ (expand_vector_comparison): Do not expand a comparison if all
+ uses are consumed by a VEC_COND_EXPR.
+ (expand_vector_operation): Change void return type to bool.
+ (expand_vector_operations_1): Pass dce_ssa_names.
+
+2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ PR bootstrap/95700
+ * system.h (NULL): Redefine to nullptr.
+
+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-07-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/96022
+ * tree-vect-stmts.c (vectorizable_shift): Only use the
+ first vector stmt when extracting the scalar shift amount.
+ * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary
+ nodes with all-scalar children from scalars but not stores.
+ (vect_analyze_slp_instance): Mark the node not failed.
+
+2020-07-02 Felix Yang <felix.yang@huawei.com>
+
+ PR tree-optimization/95961
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the
+ number of scalars instead of the number of vectors as an upper bound
+ for the loop saving info about DR in the hash table. Remove unused
+ local variables.
+
+2020-07-02 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with
+ invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid
+ OpenMP non-rectangular loops. Use XALLOCAVEC.
+
+2020-07-02 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/95348
+ * coverage.c (read_counts_file): Read only COUNTERS that are
+ not all-zero.
+ * gcov-dump.c (tag_function): Change signature from unsigned to
+ signed integer.
+ (tag_blocks): Likewise.
+ (tag_arcs): Likewise.
+ (tag_lines): Likewise.
+ (tag_counters): Likewise.
+ (tag_summary): Likewise.
+ * gcov.c (read_count_file): Read all non-zero counters
+ sensitively.
+
+2020-07-02 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/multilib-generator (arch_canonicalize): Handle
+ multi-letter extension.
+ Using underline as separator between different extensions.
+
+2020-07-01 Pip Cet <pipcet@gmail.com>
+
+ * spellcheck.c (test_data): Add problematic strings.
+ (test_metric_conditions): Don't test the triangle inequality
+ condition, which our distance function does not satisfy.
+
+2020-07-01 Omar Tahir <omar.tahir@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always
+ generate a BTI instruction.
+
+2020-07-01 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/94882
+ * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification.
+
+2020-07-01 Jeff Law <law@redhat.com>
+
+ * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword.
+ (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise.
+
+2020-07-01 Andrea Corallo <andrea.corallo@arm.com>
+
+ * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums
+ for 64bits fpsr/fpcr getter setters builtin variants.
+ (aarch64_init_fpsr_fpcr_builtins): New function.
+ (aarch64_general_init_builtins): Modify to make use of the later.
+ (aarch64_expand_fpsr_fpcr_setter): New function.
+ (aarch64_general_expand_builtin): Modify to make use of the later.
+ * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>)
+ (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and
+ generalizing 'get_fpcr', 'set_fpsr'.
+ * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int
+ iterators.
+ (fpscr_name): New int attribute.
+ * doc/extend.texi (__builtin_aarch64_get_fpcr64)
+ (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64)
+ (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in
+ Functions.
+
+2020-07-01 Martin Liska <mliska@suse.cz>
+
+ * gcov.c (print_usage): Avoid trailing space for -j option.
+
+2020-07-01 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95839
+ * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing
+ vectors are not uniform.
+ (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of
+ vector registers.
+ (vect_build_slp_tree_2): For groups of lane extracts
+ from a vector register generate a permute node
+ with a special child representing the pre-existing vector.
+ (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing.
+ (vect_slp_analyze_node_operations): Use SLP_TREE_LANES.
+ (vectorizable_slp_permutation): Do not generate or cost identity
+ permutes.
+ (vect_schedule_slp_instance): Handle pre-existing vector
+ that are function arguments.
+
+2020-07-01 Richard Biener <rguenther@suse.de>
+
+ * system.h (INCLUDE_ISL): New guarded include.
+ * graphite-dependences.c: Use it.
+ * graphite-isl-ast-to-gimple.c: Likewise.
+ * graphite-optimize-isl.c: Likewise.
+ * graphite-poly.c: Likewise.
+ * graphite-scop-detection.c: Likewise.
+ * graphite-sese-to-poly.c: Likewise.
+ * graphite.c: Likewise.
+ * graphite.h: Drop the includes here.
+
+2020-07-01 Martin Liska <mliska@suse.cz>
+
+ * gcov.c (print_usage): Shorted option description for -j
+ option.
+
+2020-07-01 Martin Liska <mliska@suse.cz>
+
+ * doc/gcov.texi: Rename 2 options.
+ * gcov.c (print_usage): Rename -i,--json-format to
+ -j,--json-format and -j,--human-readable to -H,--human-readable.
+ (process_args): Fix up parsing. Document obsolete options and
+ how are they changed.
+
+2020-07-01 Jeff Law <law@redhat.com>
+
+ * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword.
+ (pa_output_ascii): Likewise.
+
+2020-07-01 Kito Cheng <kito.cheng@sifive.com>
+
+ * common/config/riscv/riscv-common.c (riscv_subset_t): New field
+ added.
+ (riscv_subset_list::parsing_subset_version): Add parameter for
+ indicate explicitly version, and handle explicitly version.
+ (riscv_subset_list::handle_implied_ext): Ditto.
+ (riscv_subset_list::add): Ditto.
+ (riscv_subset_t::riscv_subset_t): Init new field.
+ (riscv_subset_list::to_string): Always output version info if version
+ explicitly specified.
+ (riscv_subset_list::parsing_subset_version): Handle explicitly
+ arch version.
+ (riscv_subset_list::parse_std_ext): Ditto.
+ (riscv_subset_list::parse_multiletter_ext): Ditto.
+
+2020-06-30 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/92789
+ PR target/95726
+ * config/aarch64/aarch64.c (aarch64_attribute_table): Add
+ "Advanced SIMD type".
+ (aarch64_comp_type_attributes): Check that the "Advanced SIMD type"
+ attributes are equal.
+ * config/aarch64/aarch64-builtins.c: Include stringpool.h and
+ attribs.h.
+ (aarch64_mangle_builtin_vector_type): Use the mangling recorded
+ in the "Advanced SIMD type" attribute.
+ (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type"
+ attribute to each Advanced SIMD type, using the mangled type
+ as the attribute's single argument.
+
+2020-06-30 Christophe Lyon <christophe.lyon@linaro.org>
+
+ PR target/94743
+ * config/arm/arm.c (arm_handle_isr_attribute): Warn if
+ -mgeneral-regs-only is not used.
+
+2020-06-30 Yang Yang <yangyang305@huawei.com>
+
+ PR tree-optimization/95855
+ * gimple-ssa-split-paths.c (is_feasible_trace): Add extra
+ checks to recognize a missed if-conversion opportunity when
+ judging whether to duplicate a block.
+
+2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * doc/extend.texi: Change references to "future architecture" to
+ "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer
+ references to "future" (because the future is now).
+
+2020-06-29 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/rs6000.md (isa): Rename "fut" to "p10".
+
+2020-06-29 Roger Sayle <roger@nextmovesoftware.com>
+
+ * simplify-rtx.c (simplify_distributive_operation): New function
+ to un-distribute a binary operation of two binary operations.
+ (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant).
+ (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here
+ when appropriate.
+ (test_scalar_int_ops): New function for unit self-testing
+ scalar integer transformations in simplify-rtx.c.
+ (test_scalar_ops): Call test_scalar_int_ops for each integer mode.
+ (simplify_rtx_c_tests): Call test_scalar_ops.
+
+2020-06-29 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95916
+ * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle
+ the case of not vectorized externals.
+
+2020-06-29 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h: Do not include <utility>.
+
+2020-06-29 Martin Liska <mliska@suse.cz>
+
+ * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb
+ instead of gimple_stmt_iterator::bb.
+ * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
+ * tree-vectorizer.h: Likewise.
+
+2020-06-29 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro.
+ * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype.
+ * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P
+ and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments.
+ (gcn_dwarf_register_number): New function.
+ (gcn_dwarf_register_span): New function.
+ (TARGET_DWARF_REGISTER_SPAN): New hook macro.
+
+2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com>
+
+ PR tree-optimization/95854
+ * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL
+ if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to
+ unsigned HOST_WIDE_INT.
+
+2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/sparc/sparc.c (epilogue_renumber): Remove register.
+ (sparc_print_operand_address): Likewise.
+ (sparc_type_code): Likewise.
+ (set_extends): Likewise.
+
+2020-06-29 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/92860
+ * optc-save-gen.awk: Add exceptions for arc target.
+
+2020-06-29 Frederik Harwath <frederik@codesourcery.com>
+
+ * doc/sourcebuild.texi: Describe globbing of the
+ dump file scanning commands "suffix" argument.
+
+2020-06-28 Martin Sebor <msebor@redhat.com>
+
+ PR c++/86568
+ * calls.c (maybe_warn_rdwr_sizes): Use location of argument if
+ available.
+ * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust
+ indentation.
+ * tree.c (get_nonnull_args): Consider the this pointer implicitly
+ nonnull.
+ * var-tracking.c (deps_vec): New type.
+ (var_loc_dep_vec): New function.
+ (VAR_LOC_DEP_VEC): Use it.
+
+2020-06-28 Kewen Lin <linkw@linux.ibm.com>
+
+ * internal-fn.c (direct_mask_load_optab_supported_p): Use
+ convert_optab_supported_p instead of direct_optab_supported_p.
+ (direct_mask_store_optab_supported_p): Likewise.
+
+2020-06-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use
+ simplify_using_ranges class.
+ * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges
+ field. Adjust all methods to use new field.
+ * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use
+ simplify_using_ranges class.
+ * tree-vrp.c (class vrp_folder): New simplify_using_ranges
+ field. Adjust all methods to use new field.
+ (simplify_stmt_for_jump_threading): Use simplify_using_ranges class.
+ (vrp_prop::vrp_finalize): New vrp_folder argument.
+ (execute_vrp): Pass folder to vrp_finalize. Use
+ simplify_using_ranges class.
+ Remove cleanup_edges_and_switches call.
+ * vr-values.c (vr_values::op_with_boolean_value_range_p): Change
+ value_range_equiv uses to value_range.
+ (simplify_using_ranges::op_with_boolean_value_range_p): Use
+ simplify_using_ranges class.
+ (check_for_binary_op_overflow): Make static.
+ (vr_values::extract_range_basic): Pass this to
+ check_for_binary_op_overflow.
+ (compare_range_with_value): Change value_range_equiv uses to
+ value_range.
+ (vr_values::vr_values): Initialize simplifier field.
+ Remove uses of to_remove_edges and to_update_switch_stmts.
+ (vr_values::~vr_values): Remove uses of to_remove_edges and
+ to_update_switch_stmts.
+ (vr_values::get_vr_for_comparison): Move to simplify_using_ranges
+ class.
+ (vr_values::compare_name_with_value): Same.
+ (vr_values::compare_names): Same.
+ (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
+ (vr_values::vrp_evaluate_conditional): Same.
+ (vr_values::vrp_visit_cond_stmt): Same.
+ (find_case_label_ranges): Change value_range_equiv uses to
+ value_range.
+ (vr_values::extract_range_from_stmt): Use simplify_using_ranges class.
+ (vr_values::simplify_truth_ops_using_ranges): Move to
+ simplify_using_ranges class.
+ (vr_values::simplify_div_or_mod_using_ranges): Same.
+ (vr_values::simplify_min_or_max_using_ranges): Same.
+ (vr_values::simplify_abs_using_ranges): Same.
+ (vr_values::simplify_bit_ops_using_ranges): Same.
+ (test_for_singularity): Change value_range_equiv uses to
+ value_range.
+ (range_fits_type_p): Same.
+ (vr_values::simplify_cond_using_ranges_1): Same.
+ (vr_values::simplify_cond_using_ranges_2): Make extern.
+ (vr_values::fold_cond): Move to simplify_using_ranges class.
+ (vr_values::simplify_switch_using_ranges): Same.
+ (vr_values::cleanup_edges_and_switches): Same.
+ (vr_values::simplify_float_conversion_using_ranges): Same.
+ (vr_values::simplify_internal_call_using_ranges): Same.
+ (vr_values::two_valued_val_range_p): Same.
+ (vr_values::simplify_stmt_using_ranges): Move to...
+ (simplify_using_ranges::simplify): ...here.
+ * vr-values.h (class vr_values): Move all the simplification of
+ statements using ranges methods and code from here...
+ (class simplify_using_ranges): ...to here.
+ (simplify_cond_using_ranges_2): New extern prototype.
+
+2020-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced
+ member, move outer member.
+ (struct omp_for_data): Add first_nonrect and last_nonrect members.
+ * omp-general.c (omp_extract_for_data): Initialize first_nonrect,
+ last_nonrect and non_rect_referenced members.
+ * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular
+ loops.
+ (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle
+ non-rectangular loops.
+ (extract_omp_for_update_vars): Likewise.
+ (expand_omp_for_generic, expand_omp_for_static_nochunk,
+ expand_omp_for_static_chunk, expand_omp_simd,
+ expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust
+ expand_omp_for_init_vars and extract_omp_for_update_vars callers.
+ (expand_omp_for): Don't sorry on non-composite worksharing-loop or
+ distribute.
+
+2020-06-26 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95655
+ * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED):
+ Removed.
+ * config/i386/i386.c (ix86_frame_pointer_required): Update
+ comments.
+
+2020-06-26 Yichao Yu <yyc1992@gmail.com>
+
+ * multiple_target.c (redirect_to_specific_clone): Fix tests
+ to check individual attribute rather than an attribute list.
+
+2020-06-26 Peter Bergner <bergner@linux.ibm.com>
+
+ * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New.
+ * doc/extend.texi (PowerPC Built-in Functions): Document power10,
+ arch_3_1 and mma.
+
+2020-06-26 Marek Polacek <polacek@redhat.com>
+
+ * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
+ * doc/standards.texi (C Language): Correct the default dialect.
+ (C++ Language): Update the default for C++ to gnu++17.
+
+2020-06-26 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * tree-ssa-reassoc.c (dump_range_entry): New function.
+ (debug_range_entry): New debug function.
+ (update_range_test): Invoke dump_range_entry for dumping.
+ (optimize_range_tests_to_bit_test): Merge the entry test in the
+ bit test when possible and lower the profitability threshold.
+
+2020-06-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95897
+ * tree-vectorizer.h (vectorizable_induction): Remove
+ unused gimple_stmt_iterator * parameter.
+ * tree-vect-loop.c (vectorizable_induction): Likewise.
+ (vect_analyze_loop_operations): Adjust.
+ * tree-vect-stmts.c (vect_analyze_stmt): Likewise.
+ (vect_transform_stmt): Likewise.
+ * tree-vect-slp.c (vect_schedule_slp_instance): Adjust
+ for fold-left reductions, clarify existing reduction case.
+
+2020-06-25 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.md (movsicc): Disable pattern.
+
+2020-06-25 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95839
+ * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature
+ check on the number of datarefs.
+
+2020-06-25 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/rs6000/rs6000-call.c (mma_init_builtins): Cast
+ the insn_data n_operands value to unsigned.
+
+2020-06-25 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_schedule_slp_instance): Always use
+ vector defs to determine insertion place.
+
+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.
+ (PTA_TIGERLAKE): Add PTA_CLWB.
+
+2020-06-25 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95866
+ * tree-vect-stmts.c (vectorizable_shift): Reject incompatible
+ vectorized shift operands. For scalar shifts use lane zero
+ of a vectorized shift operand.
+
+2020-06-25 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/95745
+ PR middle-end/95830
+ * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead
+ SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always
+ return 0.
+ * tree-vect-generic.c (expand_vector_condition): Remove dead
+ SSA_NAMEs used as the first argument of a VEC_COND_EXPR.
+
+2020-06-24 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-call.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-24 Roger Sayle <roger@nextmovesoftware.com>
+ Segher Boessenkool <segher@kernel.crashing.org>
+
+ * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0.
+
+2020-06-24 Roger Sayle <roger@nextmovesoftware.com>
+
+ * simplify-rtx.c (simplify_unary_operation_1): Simplify
+ (parity (parity x)) as (parity x), i.e. PARITY is idempotent.
+
+2020-06-24 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95866
+ * tree-vect-slp.c (vect_slp_tree_uniform_p): New.
+ (vect_build_slp_tree_2): Properly reset matches[0],
+ ignore uniform constants.
+
+2020-06-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95660
+ * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id.
+ (cpu_indicator_init): Likewise.
+ * config/i386/driver-i386.c (host_detect_local_cpu): Updated.
+
+2020-06-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95774
+ * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake
+ detection with AVX512BF16.
+
+2020-06-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95843
+ * common/config/i386/i386-isas.h: New file. Extracted from
+ gcc/config/i386/i386-builtins.c.
+ (_isa_names_table): Add option.
+ (ISA_NAMES_TABLE_START): New.
+ (ISA_NAMES_TABLE_END): Likewise.
+ (ISA_NAMES_TABLE_ENTRY): Likewise.
+ (isa_names_table): Defined with ISA_NAMES_TABLE_START,
+ ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs
+ from enum processor_features.
+ * config/i386/driver-i386.c: Include
+ "common/config/i386/cpuinfo.h" and
+ "common/config/i386/i386-isas.h".
+ (has_feature): New macro.
+ (host_detect_local_cpu): Call cpu_indicator_init to get CPU
+ features. Use has_feature to detect processor features. Call
+ Call get_intel_cpu to get the newer Intel CPU name. Use
+ isa_names_table to generate command-line options.
+ * config/i386/i386-builtins.c: Include
+ "common/config/i386/i386-isas.h".
+ (_arch_names_table): Removed.
+ (isa_names_table): Likewise.
+
+2020-06-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95259
+ * common/config/i386/cpuinfo.h: New file.
+ (__processor_model): Moved from libgcc/config/i386/cpuinfo.h.
+ (__processor_model2): New.
+ (CHECK___builtin_cpu_is): New. Defined as empty if not defined.
+ (has_cpu_feature): New function.
+ (set_cpu_feature): Likewise.
+ (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
+ CHECK___builtin_cpu_is. Return AMD CPU name.
+ (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use
+ Use CHECK___builtin_cpu_is. Return Intel CPU name.
+ (get_available_features): Moved from libgcc/config/i386/cpuinfo.c.
+ Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX,
+ FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB,
+ FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B,
+ FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE,
+ FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM,
+ FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B,
+ FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE,
+ FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
+ FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
+ FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
+ FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
+ FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
+ FEATURE_XSAVEOPT and FEATURE_XSAVES
+ (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c.
+ Also update cpu_model2.
+ * common/config/i386/i386-cpuinfo.h (processor_vendor): Add
+ Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC.
+ (processor_features): Moved from gcc/config/i386/i386-builtins.c.
+ Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP,
+ FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT,
+ FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B,
+ FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C,
+ FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT,
+ FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT,
+ FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI,
+ FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG,
+ FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW,
+ FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED,
+ FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA,
+ FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES,
+ FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC,
+ FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX.
+ (SIZE_OF_CPU_FEATURES): New.
+ * config/i386/i386-builtins.c (processor_features): Removed.
+ (isa_names_table): Replace F_XXX with FEATURE_XXX.
+ (fold_builtin_cpu): Change __cpu_features2 to an array.
+
+2020-06-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95842
+ * common/config/i386/i386-common.c (processor_alias_table): Add
+ processor model and priority to each entry.
+ (pta_size): Updated with -6.
+ (num_arch_names): New.
+ * common/config/i386/i386-cpuinfo.h: New file.
+ * config/i386/i386-builtins.c (feature_priority): Removed.
+ (processor_model): Likewise.
+ (_arch_names_table): Likewise.
+ (arch_names_table): Likewise.
+ (_isa_names_table): Replace P_ZERO with P_NONE.
+ (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use
+ processor_alias_table.
+ (fold_builtin_cpu): Replace arch_names_table with
+ processor_alias_table.
+ * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h".
+ (pta): Add model and priority.
+ (num_arch_names): New.
+
+2020-06-24 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp):
+ Declare.
+ * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
+ Simplify for new position of vectorized SLP loads.
+ (vect_slp_analyze_node_dependences): Adjust for it.
+ (vect_slp_analyze_and_verify_node_alignment): Compute alignment
+ for the first stmts dataref.
+ * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New.
+ (vect_schedule_slp_instance): Emit loads before the
+ first scalar stmt.
+ * tree-vect-stmts.c (vectorizable_load): Do what the comment
+ says and use vect_find_first_scalar_stmt_in_slp.
+
+2020-06-24 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95856
+ * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor
+ region marker -1u.
+
+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-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-low.c (lower_omp_for): Fix two pastos.
+
+2020-06-24 Martin Liska <mliska@suse.cz>
+
+ * optc-save-gen.awk: Compare string options in cl_optimization_compare
+ by strcmp.
+
+2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ * config.gcc: Identify power10 as a 64-bit processor and as valid
+ for --with-cpu and --with-tune.
+
+2020-06-23 David Edelsohn <dje.gcc@gmail.com>
+
+ * Makefile.in (LANG_MAKEFRAGS): Same.
+ (tmake_file): Use -include.
+ (xmake_file): Same.
+
+2020-06-23 Michael Meissner <meissner@linux.ibm.com>
+
+ * REVISION: Delete file meant for a private branch.
+
+2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ PR target/95646
+ * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use
+ 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'.
+
+2020-06-23 Alexandre Oliva <oliva@adacore.com>
+
+ * collect-utils.h (dumppfx): New.
+ * collect-utils.c (dumppfx): Likewise.
+ * lto-wrapper.c (run_gcc): Set global dumppfx.
+ (compile_offload_image): Pass a -dumpbase on to mkoffload.
+ * config/nvptx/mkoffload.c (ptx_dumpbase): New.
+ (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey
+ save_temps.
+ (compile_native): Pass -dumpbase et al to compiler.
+ * config/gcn/mkoffload.c (gcn_dumpbase): New.
+ (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey
+ save_temps. Pass -dumpbase et al to offload target compiler.
+ (compile_native): Pass -dumpbase et al to compiler.
+
+2020-06-23 Michael Meissner <meissner@linux.ibm.com>
+
+ * REVISION: New file.
+
+2020-06-22 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE.
+ Update comment for ISA 3.1.
+ * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE.
+ * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10
+ on AIX, and -mpower10 elsewhere.
+ * config/rs6000/future.md: Delete.
+ * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not
+ TARGET_FUTURE.
+ * config/rs6000/power10.md: New file.
+ * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not
+ PPC_PLATFORM_FUTURE.
+ * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_*
+ names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of
+ RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*.
+ Use BU_P10_* instead of BU_FUTURE_*.
+ * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
+ _ARCH_PWR10 instead of _ARCH_PWR_FUTURE.
+ (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not
+ FUTURE_BUILTIN_VEC_XXEVAL.
+ * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*.
+ Update compiler messages.
+ * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not
+ ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE.
+ * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not
+ PROCESSOR_FUTURE.
+ * config/rs6000/rs6000-string.c: Ditto.
+ * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10"
+ instead of "future", reorder it to right after "power9".
+ * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10,
+ not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use
+ RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages.
+ Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER,
+ not ISA_FUTURE_MASKS_SERVER.
+ (rs6000_opt_masks): Use "power10" instead of "future".
+ (rs6000_builtin_mask_names): Ditto.
+ (rs6000_disable_incompatible_switches): Ditto.
+ * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use
+ -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE.
+ Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10,
+ not RS6000_BTM_FUTURE.
+ * config/rs6000/rs6000.md: Use "power10", not "future". Use
+ TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not
+ "future.md".
+ * config/rs6000/rs6000.opt (mfuture): Delete.
+ (mpower10): New.
+ * config/rs6000/t-rs6000: Use "power10.md", not "future.md".
+ * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE.
+
+2020-06-22 Richard Sandiford <richard.sandiford@arm.com>
+
+ * coretypes.h (first_type): Delete.
+ * recog.h (insn_gen_fn::operator()): Go back to using a decltype.
+
+2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item.
+ (arm_mve_hw): Likewise.
+
+2020-06-22 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/95791
+ * config/i386/i386.c (ix86_dirflag_mode_needed): Skip
+ EXT_REX_SSE_REG_P.
+
+2020-06-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95770
+ * tree-vect-slp.c (vect_schedule_slp_instance): Also consider
+ external defs.
+
+2020-06-22 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
+ (gcn_return_in_memory): Return vectors in memory.
+
+2020-06-22 Jakub Jelinek <jakub@redhat.com>
+
+ * omp-general.c (omp_extract_for_data): For triangular loops with
+ all loop invariant expressions constant where the innermost loop is
+ executed at least once compute number of iterations at compile time.
+
+2020-06-22 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call.
+ (DRIVER_SELF_SPECS): New.
+
+2020-06-22 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New.
+ (RISCV_FTYPE_ATYPES0): New.
+ (riscv_builtins): Using RISCV_USI_FTYPE for frflags.
+ * config/riscv/riscv-ftypes.def: Remove VOID argument.
+
+2020-06-21 David Edelsohn <dje.gcc@gmail.com>
+
+ * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
+ * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
+ (ASM_SPEC32): New.
+ (ASM_SPEC64): New.
+ (ASM_CPU_SPEC): Remove vsx and altivec options.
+ (CPP_SPEC_COMMON): Rename from CPP_SPEC.
+ (CPP_SPEC32): New.
+ (CPP_SPEC64): New.
+ (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
+ (TARGET_DEFAULT): Only define if not BIARCH.
+ (LIB_SPEC_COMMON): Rename from LIB_SPEC.
+ (LIB_SPEC32): New.
+ (LIB_SPEC64): New.
+ (LINK_SPEC_COMMON): Rename from LINK_SPEC.
+ (LINK_SPEC32): New.
+ (LINK_SPEC64): New.
+ (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
+ (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
+ (CPP_SPEC): Same.
+ (CPLUSPLUS_CPP_SPEC): Same.
+ (LIB_SPEC): Same.
+ (LINK_SPEC): Same.
+ (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
+ * config/rs6000/defaultaix64.h: New file.
+ * config/rs6000/t-aix64: New file.
+
+2020-06-21 Peter Bergner <bergner@linux.ibm.com>
+
+ * config/rs6000/predicates.md (mma_assemble_input_operand): New.
+ * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3,
+ BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA
+ built-in functions.
+ (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR,
+ PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN,
+ PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP,
+ PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN,
+ PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN,
+ PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP,
+ PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4,
+ PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP,
+ XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2,
+ XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER,
+ XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN,
+ XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S,
+ XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP,
+ XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins.
+ * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P.
+ Allow zero constants.
+ (print_operand) <case 'A'>: New output modifier.
+ (rs6000_split_multireg_move): Add support for inserting accumulator
+ priming and depriming instructions. Add support for splitting an
+ assemble accumulator pattern.
+ * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin,
+ rs6000_gimple_fold_mma_builtin): New functions.
+ (RS6000_BUILTIN_M): New macro.
+ (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes.
+ (bdesc_mma): Add new MMA built-in support.
+ (htm_expand_builtin): Use RS6000_BTC_OPND_MASK.
+ (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and
+ RS6000_BTM_MMA.
+ (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute.
+ (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p
+ and rs6000_gimple_fold_mma_builtin.
+ (rs6000_expand_builtin): Call mma_expand_builtin.
+ Use RS6000_BTC_OPND_MASK.
+ (rs6000_init_builtins): Adjust comment. Call mma_init_builtins.
+ (htm_init_builtins): Use RS6000_BTC_OPND_MASK.
+ (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and
+ VSX_BUILTIN_XVCVBF16SP.
+ * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY,
+ RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR,
+ RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines.
+ (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST,
+ RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values.
+ * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant.
+ (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2,
+ UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP,
+ UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP,
+ UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN,
+ UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN,
+ UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER,
+ UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP,
+ UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP,
+ UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN,
+ UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN,
+ UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2,
+ UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S,
+ UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8,
+ UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4,
+ UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP,
+ UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN,
+ UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN,
+ UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN,
+ UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP,
+ UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP,
+ UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER,
+ UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN,
+ UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP,
+ UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8,
+ UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP,
+ UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New.
+ (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8,
+ MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4,
+ MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4,
+ MMA_AVVI4I4I4): New define_int_iterator.
+ (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2,
+ avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4,
+ avvi4i4i4): New define_int_attr.
+ (*movpxi): Add zero constant alternative.
+ (mma_assemble_pair, mma_assemble_acc): New define_expand.
+ (*mma_assemble_acc): New define_insn_and_split.
+ (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
+ mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
+ mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
+ mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn.
+ * config/rs6000/rs6000.md (define_attr "type"): New type mma.
+ * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New.
+ (UNSPEC_VSX_XVCVSPBF16): Likewise.
+ (XVCVBF16): New define_int_iterator.
+ (xvcvbf16): New define_int_attr.
+ (vsx_<xvcvbf16>): New define_insn.
+ * doc/extend.texi: Document the mma built-ins.
+
+2020-06-21 Peter Bergner <bergner@linux.ibm.com>
+ Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/mma.md: New file.
+ * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
+ __MMA__ for mma.
+ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support
+ for __vector_pair and __vector_quad types.
+ * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add
+ OPTION_MASK_MMA.
+ (POWERPC_MASKS): Likewise.
+ * config/rs6000/rs6000-modes.def (OI, XI): New integer modes.
+ (POI, PXI): New partial integer modes.
+ * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define.
+ (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P.
+ (rs6000_hard_regno_mode_ok_uncached): Likewise.
+ Add support for POImode being allowed in VSX registers and PXImode
+ being allowed in FP registers.
+ (rs6000_modes_tieable_p): Adjust comment.
+ Add support for POImode and PXImode.
+ (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode
+ XImode, PXImode, V2SImode, V2SFmode and CCFPmode..
+ (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P.
+ Set up appropriate addr_masks for vector pair and vector quad addresses.
+ (rs6000_init_hard_regno_mode_ok): Add support for vector pair and
+ vector quad registers. Setup reload handlers for POImode and PXImode.
+ (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA.
+ (rs6000_option_override_internal): Error if -mmma is specified
+ without -mcpu=future.
+ (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P.
+ (quad_address_p): Change size test to less than 16 bytes.
+ (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair
+ and vector quad instructions.
+ (avoiding_indexed_address_p): Likewise.
+ (rs6000_emit_move): Disallow POImode and PXImode moves involving
+ constants.
+ (rs6000_preferred_reload_class): Prefer VSX registers for POImode
+ and FP registers for PXImode.
+ (rs6000_split_multireg_move): Support splitting POImode and PXImode
+ move instructions.
+ (rs6000_mangle_type): Adjust comment. Add support for mangling
+ __vector_pair and __vector_quad types.
+ (rs6000_opt_masks): Add entry for mma.
+ (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
+ (rs6000_function_value): Use VECTOR_ALIGNMENT_P.
+ (address_to_insn_form): Likewise.
+ (reg_to_non_prefixed): Likewise.
+ (rs6000_invalid_conversion): New function.
+ * config/rs6000/rs6000.h (MASK_MMA): Define.
+ (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled.
+ (VECTOR_ALIGNMENT_P): New helper macro.
+ (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P.
+ (RS6000_BTM_MMA): Define.
+ (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE.
+ (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and
+ RS6000_BTI_vector_quad.
+ (vector_pair_type_node): New.
+ (vector_quad_type_node): New.
+ * config/rs6000/rs6000.md: Include mma.md.
+ (define_mode_iterator RELOAD): Add POI and PXI.
+ * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md.
+ * config/rs6000/rs6000.opt (-mmma): New.
+ * doc/invoke.texi: Document -mmma.
+
+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-06-19 Tobias Burnus <tobias@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED.
+ (output_file_start): Use const 'char *'.
+
+2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
+
+ PR tree-optimization/94880
+ * match.pd (A | B) - B -> (A & ~B): New simplification.
+
+2020-06-19 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust
+ for lane permutations.
+
+2020-06-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95761
+ * tree-vect-slp.c (vect_schedule_slp_instance): Walk all
+ vectorized stmts for finding the last one.
+
+2020-06-18 Felix Yang <felix.yang@huawei.com>
+
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call
+ vect_relevant_for_alignment_p to filter out data references in
+ the loop whose alignment is irrelevant when trying loop peeling
+ to force alignment.
+
+2020-06-18 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ Rename from *cmpqi_ext_1.
+ (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2.
+ (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3.
+ (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4.
+ (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*extv<mode>): Use SWI24 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand.
+ (*extzv<mode>): Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand.
+ (*extzvqi): Use SWI248 mode iterator instead of SImode for
+ ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
+ register_operand.
+ (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ (@insv<mode>_1): Use SWI248 mode iterator for the first operand
+ of ZERO_EXTRACT RTX. Change ext_register_operand predicate to
+ register_operand.
+ (*insvqi_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the
+ first operand of ZERO_EXTRACT RTX. Change ext_register_operand
+ predicate to register_operand.
+ (*insvqi_2): Ditto.
+ (*insvqi_3): Ditto.
+ (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode
+ iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248
+ mode iterator for the first operand of ZERO_EXTRACT RTX.
+ Change ext_register_operand predicate to register_operand.
+ (addqi_ext_1): New expander.
+ (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *addqi_ext_1.
+ (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2.
+ (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (udivmodqi4): Ditto.
+ (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *testqi_ext_1.
+ (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2.
+ (andqi_ext_1): New expander.
+ (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from andqi_ext_1.
+ (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc.
+ (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2.
+ (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1.
+ (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2.
+ (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX.
+ (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode
+ for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first
+ operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate
+ to register_operand. Rename from *xorqi_ext_1_cc.
+ * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT
+ in mode, matching its first operand.
+ (promote_duplicated_reg): Update for renamed insv<mode>_1.
+ * config/i386/predicates.md (ext_register_operand): Remove predicate.
+
+2020-06-18 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/95667
+ PR middle-end/92814
+ * builtins.c (compute_objsize): Remove call to
+ compute_builtin_object_size and instead compute conservative sizes
+ directly here.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * coretypes.h (struct iterator_range): New type.
+ * tree-vect-patterns.c (vect_determine_precisions): Use
+ range-based iterator.
+ (vect_pattern_recog): Likewise.
+ * tree-vect-slp.c (_bb_vec_info): Likewise.
+ (_bb_vec_info::~_bb_vec_info): Likewise.
+ (vect_slp_check_for_constructors): Likewise.
+ * tree-vectorizer.h:Add new iterators
+ and functions that use it.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * config/rs6000/rs6000-call.c (fold_build_vec_cmp):
+ Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument
+ of a VEC_COND_EXPR cannot be tcc_comparison and so that
+ a SSA_NAME needs to be created before we use it for the first
+ argument of the VEC_COND_EXPR.
+ (fold_compare_helper): Pass gsi to fold_build_vec_cmp.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/95739
+ * internal-fn.c (expand_vect_cond_optab_fn): Move the result
+ to the target if necessary.
+ (expand_vect_cond_mask_optab_fn): Likewise.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
+ vcond as we check for NULL pointer.
+
+2020-06-18 Tobias Burnus <tobias@codesourcery.com>
+
+ * gimple-pretty-print.c (dump_binary_rhs): Use braces to
+ silence empty-body warning with gcc_fallthrough.
+
+2020-06-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/95699
+ * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0
+ as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable
+ declarations to the statements that set them where possible.
+
+2020-06-18 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/95713
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow
+ scalar mode halfvectype other than vector boolean for
+ VEC_PACK_TRUNC_EXPR.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ * varasm.c (assemble_variable): Make sure to not
+ defer output when outputting addressed constants.
+ (output_constant_def_contents): Likewise.
+ (add_constant_to_table): Take and pass on whether to
+ defer output.
+ (output_addressed_constants): Likewise.
+ (output_constant_def): Pass on whether to defer output
+ to add_constant_to_table.
+ (tree_output_constant_def): Defer output of constants.
+
+2020-06-18 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_tree::two_operators): Remove.
+ (_slp_tree::lane_permutation): New member.
+ (_slp_tree::code): Likewise.
+ (SLP_TREE_TWO_OPERATORS): Remove.
+ (SLP_TREE_LANE_PERMUTATION): New.
+ (SLP_TREE_CODE): Likewise.
+ (vect_stmt_dominates_stmt_p): Declare.
+ * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function.
+ * tree-vect-stmts.c (vect_model_simple_cost): Remove
+ SLP_TREE_TWO_OPERATORS handling.
+ * tree-vect-slp.c (_slp_tree::_slp_tree): Amend.
+ (_slp_tree::~_slp_tree): Likewise.
+ (vect_two_operations_perm_ok_p): Remove.
+ (vect_build_slp_tree_1): Remove verification of two-operator
+ permutation here.
+ (vect_build_slp_tree_2): When we have two different operators
+ build two computation SLP nodes and a blend.
+ (vect_print_slp_tree): Print the lane permutation if it exists.
+ (slp_copy_subtree): Copy it.
+ (vect_slp_rearrange_stmts): Re-arrange it.
+ (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE
+ VEC_PERM_EXPR explicitely.
+ (vect_schedule_slp_instance): Likewise. Remove old
+ SLP_TREE_TWO_OPERATORS code.
+ (vectorizable_slp_permutation): New function.
+
+2020-06-18 Martin Liska <mliska@suse.cz>
+
+ * tree-vect-generic.c (expand_vector_condition): Check
+ for gassign before inspecting RHS.
+
+2020-06-17 Thomas Schwinge <thomas@codesourcery.com>
+
+ * gimplify.c (omp_notice_threadprivate_variable)
+ (omp_default_clause, omp_notice_variable): 'inform' after 'error'
+ diagnostic. Adjust all users.
+
+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-17 Forrest Timour <forrest.timour@gmail.com>
+
+ * doc/extend.texi (attribute access): Fix a typo.
+
+2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com>
+ Kaipeng Zhou <zhoukaipeng3@huawei.com>
+
+ PR tree-optimization/95199
+ * tree-vect-stmts.c: Eliminate common stmts for bump and offset in
+ strided load/store operations and remove redundant code.
+
+2020-06-17 Richard Sandiford <richard.sandiford@arm.com>
+
+ * coretypes.h (first_type): New alias template.
+ * recog.h (insn_gen_fn::operator()): Use it instead of a decltype.
+ Remove spurious “...” and split the function type out into a typedef.
+
+2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com>
+
+ * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early
+ for PARALLELs.
+
+2020-06-17 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed
+ in *vectype parameter.
+ (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what
+ vect_build_slp_tree_1 computed.
+ (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE.
+ (vect_slp_analyze_node_operations_1): Use the SLP node vector type.
+ (vect_schedule_slp_instance): Likewise.
+ * tree-vect-stmts.c (vect_is_simple_use): Take the vector type
+ from SLP_TREE_VECTYPE.
+
+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-06-17 Martin Liska <mliska@suse.cz>
+
+ * Makefile.in: Add new file.
+ * expr.c (expand_expr_real_2): Add gcc_unreachable as we should
+ not meet this condition.
+ (do_store_flag): Likewise.
+ * gimplify.c (gimplify_expr): Gimplify first argument of
+ VEC_COND_EXPR to be a SSA name.
+ * internal-fn.c (vec_cond_mask_direct): New.
+ (vec_cond_direct): Likewise.
+ (vec_condu_direct): Likewise.
+ (vec_condeq_direct): Likewise.
+ (expand_vect_cond_optab_fn): New.
+ (expand_vec_cond_optab_fn): Likewise.
+ (expand_vec_condu_optab_fn): Likewise.
+ (expand_vec_condeq_optab_fn): Likewise.
+ (expand_vect_cond_mask_optab_fn): Likewise.
+ (expand_vec_cond_mask_optab_fn): Likewise.
+ (direct_vec_cond_mask_optab_supported_p): Likewise.
+ (direct_vec_cond_optab_supported_p): Likewise.
+ (direct_vec_condu_optab_supported_p): Likewise.
+ (direct_vec_condeq_optab_supported_p): Likewise.
+ * internal-fn.def (VCOND): New OPTAB.
+ (VCONDU): Likewise.
+ (VCONDEQ): Likewise.
+ (VCOND_MASK): Likewise.
+ * optabs.c (get_rtx_code): Make it global.
+ (expand_vec_cond_mask_expr): Removed.
+ (expand_vec_cond_expr): Removed.
+ * optabs.h (expand_vec_cond_expr): Likewise.
+ (vector_compare_rtx): Make it global.
+ * passes.def: Add new pass_gimple_isel pass.
+ * tree-cfg.c (verify_gimple_assign_ternary): Add check
+ for VEC_COND_EXPR about first argument.
+ * tree-pass.h (make_pass_gimple_isel): New.
+ * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent
+ propagation of the first argument of a VEC_COND_EXPR.
+ * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as
+ first argument of a VEC_COND_EXPR.
+ (optimize_vec_cond_expr): Likewise.
+ * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME
+ for a first argument of created VEC_COND_EXPR.
+ (expand_vector_condition): Fix coding style.
+ * tree-vect-stmts.c (vectorizable_condition): Gimplify
+ first argument.
+ * gimple-isel.cc: New file.
+
+2020-06-17 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text".
+ (BSS_SECTION_ASM_OP): Use ".bss".
+ (ASM_SPEC): Remove "-mattr=-code-object-v3".
+ (LINK_SPEC): Add "--export-dynamic".
+ * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with
+ PROCESSOR_VEGA10 and PROCESSOR_VEGA20.
+ * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant.
+ (load_image): Remove obsolete relocation handling.
+ Add ".kd" suffix to the symbol names.
+ * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62.
+ (gcn_option_override): Update gcn_isa test.
+ (gcn_kernel_arg_types): Update all the assembler directives.
+ Remove the obsolete options.
+ (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage.
+ (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and
+ PROCESSOR_VEGA20.
+ (output_file_start): Rework assembler file header.
+ (gcn_hsa_declare_function_name): Rework kernel metadata.
+ * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16.
+ * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum.
+ (PROCESSOR_VEGA10): New enum value.
+ (PROCESSOR_VEGA20): New enum value.
+
+2020-06-17 Martin Liska <mliska@suse.cz>
+
+ * gcov-dump.c (print_version): Collapse lisence header to 2 lines
+ in --version.
+ * gcov-tool.c (print_version): Likewise.
+ * gcov.c (print_version): Likewise.
+
+2020-06-17 liuhongt <hongtao.liu@intel.com>
+
+ PR target/95524
+ * config/i386/i386-expand.c
+ (ix86_expand_vec_shift_qihi_constant): New function.
+ * config/i386/i386-protos.h
+ (ix86_expand_vec_shift_qihi_constant): Declare.
+ * config/i386/sse.md (<shift_insn><mode>3): Optimize shift
+ V*QImode by constant.
+
+2020-06-16 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/95649
+ * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless
+ value is a constant.
+
+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-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic
+ arguments.
+ (__arm_vaddq_m_n_s32): Likewise.
+ (__arm_vaddq_m_n_s16): Likewise.
+ (__arm_vaddq_m_n_u8): Likewise.
+ (__arm_vaddq_m_n_u32): Likewise.
+ (__arm_vaddq_m_n_u16): Likewise.
+ (__arm_vaddq_m): Modify polymorphic variant.
+
+2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate
+ and constraint of all the operands.
+ (mve_sqrshrl_sat<supf>_di): Likewise.
+ (mve_uqrshl_si): Likewise.
+ (mve_sqrshr_si): Likewise.
+ (mve_uqshll_di): Likewise.
+ (mve_urshrl_di): Likewise.
+ (mve_uqshl_si): Likewise.
+ (mve_urshr_si): Likewise.
+ (mve_sqshl_si): Likewise.
+ (mve_srshr_si): Likewise.
+ (mve_srshrl_di): Likewise.
+ (mve_sqshll_di): Likewise.
+ * config/arm/predicates.md (arm_low_register_operand): Define.
+
+2020-06-16 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.h (OMP_FOR_NON_RECTANGULAR): Define.
+ * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered
+ or dist_schedule clause on non-rectangular loops. Handle
+ gimplification of non-rectangular lb/b expressions. When changing
+ iteration variable, adjust also non-rectangular lb/b expressions
+ referencing that.
+ * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer
+ members.
+ (struct omp_for_data): Add non_rect member.
+ * omp-general.c (omp_extract_for_data): Handle non-rectangular
+ loops. Fill in non_rect, m1, m2 and outer.
+ * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions.
+ * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported
+ non-rectangular loop cases and assert for cases that can't be
+ non-rectangular.
+ * tree-pretty-print.c (dump_mem_ref): Formatting fix.
+ (dump_omp_loop_non_rect_expr): New function.
+ (dump_generic_node): Handle non-rectangular OpenMP loops.
+ * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare.
+ * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular
+ OpenMP loops.
+
+2020-06-16 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/95690
+ * varasm.c (build_constant_desc): Remove set_mem_attributes call.
+
+2020-06-16 Kito Cheng <kito.cheng@sifive.com>
+
+ PR target/95683
+ * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove
+ assertion and turn it into a early exit check.
+
+2020-06-15 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare
+ new ENSURE_SINGLE_ACCESS constant and move variables down. If it is
+ true and all elements are zero, then always clear. Return GS_ERROR
+ if a temporary would be created for it and NOTIFY_TEMP_CREATION set.
+ (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but
+ the type is aggregate non-addressable, ask gimplify_init_constructor
+ whether it can generate a single access to the target.
+
+2020-06-15 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar
+ access on the LHS is replaced with a scalar access, propagate the
+ TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access.
+
+2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove
+ TARGET_THREADPTR reference.
+ (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use
+ targetm.have_tls instead of TARGET_HAVE_TLS.
+ (xtensa_option_override): Set targetm.have_tls to false in
+ configurations without THREADPTR.
+
+2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
+ assembler/linker.
+ * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto.
+ * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto.
+ * config/xtensa/xtensa.c (xtensa_option_override): Initialize
+ xtensa_windowed_abi if needed.
+ * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New
+ macro.
+ (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
+ * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
+ option variable.
+ (mabi=call0, mabi=windowed): New options.
+ * doc/invoke.texi: Document new -mabi= Xtensa-specific options.
+
+2020-06-15 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/xtensa/xtensa.c (xtensa_can_eliminate): New function.
+ (TARGET_CAN_ELIMINATE): New macro.
+ * config/xtensa/xtensa.h
+ (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM)
+ (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros.
+ (HARD_FRAME_POINTER_REGNUM): Define using
+ XTENSA_*_HARD_FRAME_POINTER_REGNUM.
+ (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM
+ by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and
+ XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM.
+
+2020-06-15 Felix Yang <felix.yang@huawei.com>
+
+ * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename
+ parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS
+ when possible.
+ (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS
+ when possible.
+ * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use
+ LOOP_VINFO_DATAREFS when possible.
+ (update_epilogue_loop_vinfo): Likewise.
+
+2020-06-15 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to
+ unsigned for i.
+ (riscv_gpr_save_operation_p): Change type to unsigned for i and
+ len.
+
+2020-06-15 Hongtao Liu <hongtao.liu@intel.com>
+
+ PR target/95488
+ * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New
+ function.
+ * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare.
+ * config/i386/sse.md (mul<mode>3): Drop mask_name since
+ there's no real simd int8 multiplication instruction with
+ mask. Also optimize it under TARGET_AVX512BW.
+ (mulv8qi3): New expander.
+
+2020-06-12 Marco Elver <elver@google.com>
+
+ * gimplify.c (gimplify_function_tree): Optimize and do not emit
+ IFN_TSAN_FUNC_EXIT in a finally block if we do not need it.
+ * params.opt: Add --param=tsan-instrument-func-entry-exit=.
+ * tsan.c (instrument_memory_accesses): Make
+ fentry_exit_instrument bool depend on new param.
+
+2020-06-12 Felix Yang <felix.yang@huawei.com>
+
+ PR tree-optimization/95570
+ * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function.
+ (vect_verify_datarefs_alignment): Call it to filter out data references
+ in the loop whose alignment is irrelevant.
+ (vect_get_peeling_costs_all_drs): Likewise.
+ (vect_peeling_supportable): Likewise.
+ (vect_enhance_data_refs_alignment): Likewise.
+
+2020-06-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95633
+ * tree-vect-stmts.c (vectorizable_condition): Properly
+ guard the vec_else_clause access with EXTRACT_LAST_REDUCTION.
+
+2020-06-12 Martin Liška <mliska@suse.cz>
+
+ * cgraphunit.c (process_symver_attribute): Wrap weakref keyword.
+ * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new
+ line.
+ * lto-wrapper.c (merge_and_complain): Wrap option names.
+
+2020-06-12 Kewen Lin <linkw@gcc.gnu.org>
+
+ * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename
+ LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
+ LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
+ (vect_set_loop_condition_masked): Renamed to ...
+ (vect_set_loop_condition_partial_vectors): ... this. Rename
+ LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename
+ vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
+ (vect_set_loop_condition_unmasked): Renamed to ...
+ (vect_set_loop_condition_normal): ... this.
+ (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to
+ vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked
+ to vect_set_loop_condition_partial_vectors.
+ (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE
+ to LOOP_VINFO_RGROUP_COMPARE_TYPE.
+ * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored
+ out from ...
+ (vect_analyze_loop_costing): ... this.
+ (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to
+ compare_type.
+ (vect_min_prec_for_max_niters): New, factored out from ...
+ (vect_verify_full_masking): ... this. Rename
+ vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors.
+ Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE.
+ Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE.
+ (vectorizable_reduction): Update some dumpings with partial
+ vectors instead of fully-masked.
+ (vectorizable_live_operation): Likewise.
+ (vect_iv_limit_for_full_masking): Renamed to ...
+ (vect_iv_limit_for_partial_vectors): ... this.
+ * tree-vect-stmts.c (check_load_store_masking): Renamed to ...
+ (check_load_store_for_partial_vectors): ... this. Update some
+ dumpings with partial vectors instead of fully-masked.
+ (vectorizable_store): Rename check_load_store_masking to
+ check_load_store_for_partial_vectors.
+ (vectorizable_load): Likewise.
+ * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ...
+ (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this.
+ (LOOP_VINFO_MASK_IV_TYPE): Renamed to ...
+ (LOOP_VINFO_RGROUP_IV_TYPE): ... this.
+ (vect_iv_limit_for_full_masking): Renamed to ...
+ (vect_iv_limit_for_partial_vectors): this.
+ (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type.
+ Rename iv_type to rgroup_iv_type.
+
+2020-06-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2)
+ (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6)
+ (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10)
+ (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13)
+ (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete.
+ (insn_gen_fn::operator()): Replace overloaded definitions with
+ a parameter-pack version.
+
+2020-06-12 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/93492
+ * config/i386/i386-features.c (rest_of_insert_endbranch):
+ Renamed to ...
+ (rest_of_insert_endbr_and_patchable_area): Change return type
+ to void. Add need_endbr and patchable_area_size arguments.
+ Don't call timevar_push nor timevar_pop. Replace
+ endbr_queued_at_entrance with insn_queued_at_entrance. Insert
+ UNSPECV_PATCHABLE_AREA for patchable area.
+ (pass_data_insert_endbranch): Renamed to ...
+ (pass_data_insert_endbr_and_patchable_area): This. Change
+ pass name to endbr_and_patchable_area.
+ (pass_insert_endbranch): Renamed to ...
+ (pass_insert_endbr_and_patchable_area): This. Add need_endbr
+ and patchable_area_size;.
+ (pass_insert_endbr_and_patchable_area::gate): Set and check
+ need_endbr and patchable_area_size.
+ (pass_insert_endbr_and_patchable_area::execute): Call
+ timevar_push and timevar_pop. Pass need_endbr and
+ patchable_area_size to rest_of_insert_endbr_and_patchable_area.
+ (make_pass_insert_endbranch): Renamed to ...
+ (make_pass_insert_endbr_and_patchable_area): This.
+ * config/i386/i386-passes.def: Replace pass_insert_endbranch
+ with pass_insert_endbr_and_patchable_area.
+ * config/i386/i386-protos.h (ix86_output_patchable_area): New.
+ (make_pass_insert_endbranch): Renamed to ...
+ (make_pass_insert_endbr_and_patchable_area): This.
+ * config/i386/i386.c (ix86_asm_output_function_label): Set
+ function_label_emitted to true.
+ (ix86_print_patchable_function_entry): New function.
+ (ix86_output_patchable_area): Likewise.
+ (x86_function_profiler): Replace endbr_queued_at_entrance with
+ insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR.
+ Call ix86_output_patchable_area to generate patchable area if
+ needed.
+ (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New.
+ * config/i386/i386.h (queued_insn_type): New.
+ (machine_function): Add function_label_emitted. Replace
+ endbr_queued_at_entrance with insn_queued_at_entrance.
+ * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New.
+ (patchable_area): New.
+
+2020-06-11 Martin Liska <mliska@suse.cz>
+
+ * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding
+ style.
+
+2020-06-11 Martin Liska <mliska@suse.cz>
+
+ PR target/95627
+ * config/rs6000/rs6000.c (rs6000_density_test): Skip debug
+ statements.
+
+2020-06-11 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-11 Kewen Lin <linkw@gcc.gnu.org>
+
+ * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ...
+ (vect_set_loop_control): ... this.
+ (vect_maybe_permute_loop_masks): Rename rgroup_masks related things.
+ (vect_set_loop_masks_directly): Renamed to ...
+ (vect_set_loop_controls_directly): ... this. Also rename some
+ variables with ctrl instead of mask. Rename vect_set_loop_mask to
+ vect_set_loop_control.
+ (vect_set_loop_condition_masked): Rename rgroup_masks related things.
+ Also rename some variables with ctrl instead of mask.
+ * tree-vect-loop.c (release_vec_loop_masks): Renamed to ...
+ (release_vec_loop_controls): ... this. Rename rgroup_masks related
+ things.
+ (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to
+ release_vec_loop_controls.
+ (can_produce_all_loop_masks_p): Rename rgroup_masks related things.
+ (vect_get_max_nscalars_per_iter): Likewise.
+ (vect_estimate_min_profitable_iters): Likewise.
+ (vect_record_loop_mask): Likewise.
+ (vect_get_loop_mask): Likewise.
+ * tree-vectorizer.h (struct rgroup_masks): Renamed to ...
+ (struct rgroup_controls): ... this. Also rename mask_type
+ to type and rename masks to controls.
+
+2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
+
+ * tree-vect-loop-manip.c (vect_set_loop_condition): Rename
+ LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P.
+ (vect_gen_vector_loop_niters): Likewise.
+ (vect_do_peeling): Likewise.
+ * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
+ fully_masked_p to using_partial_vectors_p.
+ (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to
+ LOOP_VINFO_USING_PARTIAL_VECTORS_P.
+ (determine_peel_for_niter): Likewise.
+ (vect_estimate_min_profitable_iters): Likewise.
+ (vect_transform_loop): Likewise.
+ * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated.
+ (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro.
+
+2020-06-11 Kewen Lin <linkw@gcc.gnu.org>
+
+ * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename
+ can_fully_mask_p to can_use_partial_vectors_p.
+ (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
+ LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p
+ to saved_can_use_partial_vectors_p.
+ (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to
+ LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P.
+ (vectorizable_live_operation): Likewise.
+ * tree-vect-stmts.c (permute_vec_elements): Likewise.
+ (check_load_store_masking): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+ (vectorizable_condition): Likewise.
+ * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ...
+ (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this.
+ (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p.
+
+2020-06-11 Martin Liska <mliska@suse.cz>
+
+ * optc-save-gen.awk: Quote error string.
+
+2020-06-11 Alexandre Oliva <oliva@adacore.com>
+
+ * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags.
+
+2020-06-11 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove.
+ * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update
+ value.
+ * config/riscv/riscv.c (riscv_output_gpr_save): Remove.
+ * config/riscv/riscv.md (gpr_save): Update output asm pattern.
+
+2020-06-11 Kito Cheng <kito.cheng@sifive.com>
+
+ * config/riscv/predicates.md (gpr_save_operation): New.
+ * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New.
+ (riscv_gpr_save_operation_p): Ditto.
+ * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls):
+ Ignore USEs for gpr_save patter.
+ * config/riscv/riscv.c (gpr_save_reg_order): New.
+ (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save.
+ (riscv_gen_gpr_save_insn): New.
+ (riscv_gpr_save_operation_p): Ditto.
+ * config/riscv/riscv.md (S3_REGNUM): New.
+ (S4_REGNUM): Ditto.
+ (S5_REGNUM): Ditto.
+ (S6_REGNUM): Ditto.
+ (S7_REGNUM): Ditto.
+ (S8_REGNUM): Ditto.
+ (S9_REGNUM): Ditto.
+ (S10_REGNUM): Ditto.
+ (S11_REGNUM): Ditto.
+ (gpr_save): Model USEs correctly.
+
+2020-06-10 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/95353
+ PR middle-end/92939
+ * builtins.c (inform_access): New function.
+ (check_access): Call it. Add argument.
+ (addr_decl_size): Remove.
+ (get_range): New function.
+ (compute_objsize): New overload. Only use compute_builtin_object_size
+ with raw memory function.
+ (check_memop_access): Pass new argument to compute_objsize and
+ check_access.
+ (expand_builtin_memchr, expand_builtin_strcat): Same.
+ (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same.
+ (expand_builtin_stpncpy, check_strncat_sizes): Same.
+ (expand_builtin_strncat, expand_builtin_strncpy): Same.
+ (expand_builtin_memcmp): Same.
+ * builtins.h (check_nul_terminated_array): Declare extern.
+ (check_access): Add argument.
+ (struct access_ref, struct access_data): New structs.
+ * gimple-ssa-warn-restrict.c (clamp_offset): New helper.
+ (builtin_access::overlap): Call it.
+ * tree-object-size.c (decl_init_size): Declare extern.
+ (addr_object_size): Correct offset computation.
+ * tree-object-size.h (decl_init_size): Declare.
+ * tree-ssa-strlen.c (handle_integral_assign): Remove a call
+ to maybe_warn_overflow when assigning to an SSA_NAME.
+
+2020-06-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.c (vect_determine_vectorization_factor):
+ Skip debug stmts.
+ (_loop_vec_info::_loop_vec_info): Likewise.
+ (vect_update_vf_for_slp): Likewise.
+ (vect_analyze_loop_operations): Likewise.
+ (update_epilogue_loop_vinfo): Likewise.
+ * tree-vect-patterns.c (vect_determine_precisions): Likewise.
+ (vect_pattern_recog): Likewise.
+ * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise.
+ (_bb_vec_info::_bb_vec_info): Likewise.
+ * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized):
+ Likewise.
+
+2020-06-10 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95576
+ * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts.
+
+2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com>
+
+ PR target/95523
+ * config/aarch64/aarch64-sve-builtins.h
+ (sve_switcher::m_old_maximum_field_alignment): New member.
+ * config/aarch64/aarch64-sve-builtins.cc
+ (sve_switcher::sve_switcher): Save maximum_field_alignment in
+ m_old_maximum_field_alignment and clear maximum_field_alignment.
+ (sve_switcher::~sve_switcher): Restore maximum_field_alignment.
+
+2020-06-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector
+ of gimple * stmts.
+ (_stmt_vec_info::vec_stmts): Likewise.
+ (vec_info::stmt_vec_info_ro): New flag.
+ (vect_finish_replace_stmt): Adjust declaration.
+ (vect_finish_stmt_generation): Likewise.
+ (vectorizable_induction): Likewise.
+ (vect_transform_reduction): Likewise.
+ (vectorizable_lc_phi): Likewise.
+ * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not
+ allocate stmt infos for increments.
+ (vect_record_grouped_load_vectors): Adjust.
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
+ (vectorize_fold_left_reduction): Likewise.
+ (vect_transform_reduction): Likewise.
+ (vect_transform_cycle_phi): Likewise.
+ (vectorizable_lc_phi): Likewise.
+ (vectorizable_induction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ (vect_transform_loop): Likewise.
+ * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro.
+ * tree-vect-slp.c (vect_get_slp_vect_def): Adjust.
+ (vect_get_slp_defs): Likewise.
+ (vect_transform_slp_perm_load): Likewise.
+ (vect_schedule_slp_instance): Likewise.
+ (vectorize_slp_instance_root_stmt): Likewise.
+ * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise.
+ (vect_finish_stmt_generation_1): Do not allocate a stmt info.
+ (vect_finish_replace_stmt): Do not return anything.
+ (vect_finish_stmt_generation): Likewise.
+ (vect_build_gather_load_calls): Adjust.
+ (vectorizable_bswap): Likewise.
+ (vectorizable_call): Likewise.
+ (vectorizable_simd_clone_call): Likewise.
+ (vect_create_vectorized_demotion_stmts): Likewise.
+ (vectorizable_conversion): Likewise.
+ (vectorizable_assignment): Likewise.
+ (vectorizable_shift): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_scan_store): Likewise.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+ (vectorizable_condition): Likewise.
+ (vectorizable_comparison): Likewise.
+ (vect_transform_stmt): Likewise.
+ * tree-vectorizer.c (vec_info::vec_info): Initialize
+ stmt_vec_info_ro.
+ (vec_info::replace_stmt): Copy over stmt UID rather than
+ unsetting/setting a stmt info allocating a new UID.
+ (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro.
+
+2020-06-10 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value):
+ Add stmt parameter.
+ * gimple-ssa-evrp.c (class evrp_folder): New.
+ (class evrp_dom_walker): Remove.
+ (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker.
+ * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter.
+ * tree-ssa-copy.c (copy_folder::get_value): Same.
+ * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
+ Pass stmt to get_value.
+ (substitute_and_fold_engine::replace_phi_args_in): Same.
+ (substitute_and_fold_dom_walker::after_dom_children): Call
+ post_fold_bb.
+ (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New.
+ (substitute_and_fold_dom_walker::propagate_into_phi_args): New.
+ (substitute_and_fold_dom_walker::before_dom_children): Adjust to
+ call virtual functions for folding, pre_folding, and post folding.
+ Call get_value with PHI. Tweak dump.
+ * tree-ssa-propagate.h (class substitute_and_fold_engine):
+ New argument to get_value.
+ New virtual function pre_fold_bb.
+ New virtual function post_fold_bb.
+ New virtual function pre_fold_stmt.
+ New virtual function post_new_stmt.
+ New function propagate_into_phi_args.
+ * tree-vrp.c (vrp_folder::get_value): Add stmt argument.
+ * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump
+ output.
+ (vr_values::fold_cond): New.
+ (vr_values::simplify_cond_using_ranges_1): Call fold_cond.
+ * vr-values.h (class vr_values): Add
+ simplify_cond_using_ranges_when_edge_is_known.
+
+2020-06-10 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-10 Tamar Christina <tamar.christina@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul.
+
+2020-06-10 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-data-refs.c (vect_vfa_access_size): Adjust.
+ (vect_record_grouped_load_vectors): Likewise.
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
+ (vectorize_fold_left_reduction): Likewise.
+ (vect_transform_reduction): Likewise.
+ (vect_transform_cycle_phi): Likewise.
+ (vectorizable_lc_phi): Likewise.
+ (vectorizable_induction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ (vect_transform_loop): Likewise.
+ * tree-vect-slp.c (vect_get_slp_defs): New function, split out
+ from overload.
+ * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove.
+ (vect_get_vec_def_for_operand): Likewise.
+ (vect_get_vec_def_for_stmt_copy): Likewise.
+ (vect_get_vec_defs_for_stmt_copy): Likewise.
+ (vect_get_vec_defs_for_operand): New function.
+ (vect_get_vec_defs): Likewise.
+ (vect_build_gather_load_calls): Adjust.
+ (vect_get_gather_scatter_ops): Likewise.
+ (vectorizable_bswap): Likewise.
+ (vectorizable_call): Likewise.
+ (vectorizable_simd_clone_call): Likewise.
+ (vect_get_loop_based_defs): Remove.
+ (vect_create_vectorized_demotion_stmts): Adjust.
+ (vectorizable_conversion): Likewise.
+ (vectorizable_assignment): Likewise.
+ (vectorizable_shift): Likewise.
+ (vectorizable_operation): Likewise.
+ (vectorizable_scan_store): Likewise.
+ (vectorizable_store): Likewise.
+ (vectorizable_load): Likewise.
+ (vectorizable_condition): Likewise.
+ (vectorizable_comparison): Likewise.
+ (vect_transform_stmt): Adjust and remove no longer applicable
+ sanity checks.
+ * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
+ STMT_VINFO_VEC_STMTS.
+ (vec_info::free_stmt_vec_info): Relase it.
+ * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove.
+ (_stmt_vec_info::vec_stmts): Add.
+ (STMT_VINFO_VEC_STMT): Remove.
+ (STMT_VINFO_VEC_STMTS): New.
+ (vect_get_vec_def_for_operand_1): Remove.
+ (vect_get_vec_def_for_operand): Likewise.
+ (vect_get_vec_defs_for_stmt_copy): Likewise.
+ (vect_get_vec_def_for_stmt_copy): Likewise.
+ (vect_get_vec_defs): New overloads.
+ (vect_get_vec_defs_for_operand): New.
+ (vect_get_slp_defs): Declare.
+
+2020-06-10 Qian Chao <qianchao9@huawei.com>
+
+ PR tree-optimization/95569
+ * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE.
+
+2020-06-10 Martin Liska <mliska@suse.cz>
+
+ PR tree-optimization/92860
+ * optc-save-gen.awk: Generate new function cl_optimization_compare.
+ * opth-gen.awk: Generate declaration of the function.
+
+2020-06-09 Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
+ 'future' PowerPC platform.
+ (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
+ (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
+ * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
+ MMA HWCAP2 bits.
+ * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
+ (rs6000_clone_map): Add 'future' system target_clones support.
+
+2020-06-09 Michael Kuhn <gcc@ikkoku.de>
+
+ * Makefile.in (ZSTD_INC): Define.
+ (ZSTD_LIB): Include ZSTD_LDFLAGS.
+ (CFLAGS-lto-compress.o): Add ZSTD_INC.
+ * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
+ AC_SUBST.
+ * configure: Rebuilt.
+
+2020-06-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/95552
+ * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.
+
+2020-06-09 Marco Elver <elver@google.com>
+
+ * params.opt: Define --param=tsan-distinguish-volatile=[0,1].
+ * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
+ builtin for volatile instrumentation of reads/writes.
+ (BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
+ (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
+ * tsan.c (get_memory_access_decl): Argument if access is
+ volatile. If param tsan-distinguish-volatile is non-zero, and
+ access if volatile, return volatile instrumentation decl.
+ (instrument_expr): Check if access is volatile.
+
+2020-06-09 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.c (vectorizable_induction): Remove dead code.
+
+2020-06-09 Tobias Burnus <tobias@codesourcery.com>
+
+ * omp-offload.c (add_decls_addresses_to_decl_constructor,
+ omp_finish_file): With in_lto_p, stream out all offload-table
+ items even if the symtab_node does not exist.
+
+2020-06-09 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
+
+2020-06-09 Martin Liska <mliska@suse.cz>
+
+ * gcov-dump.c (print_usage): Fix spacing for --raw option
+ in --help.
+
+2020-06-09 Martin Liska <mliska@suse.cz>
+
+ * cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
+ (SANITIZE_ATTRIBUTE_MISMATCH): ...this.
+ * ipa-inline.c (sanitize_attrs_match_for_inline_p):
+ Handle all sanitizer options.
+ (can_inline_edge_p): Use renamed CIF_* enum value.
+
+2020-06-09 Joe Ramsay <joe.ramsay@arm.com>
+
+ * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
+ unpacked vectors.
+ (@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
+ (@aarch64_bic<mode>): Enable unpacked BIC.
+ (*bic<mode>3): Enable unpacked BIC.
+
+2020-06-09 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/95365
+ * doc/gcov.texi: Compile and link one example in 2 steps.
+
+2020-06-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/95527
+ * match.pd (__builtin_ffs (X) cmp CST): New optimizations.
+
+2020-06-09 Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
+ 'future' PowerPC platform.
+ (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
+ (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
+ * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
+ MMA HWCAP2 bits.
+ * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
+ (rs6000_clone_map): Add 'future' system target_clones support.
+
+2020-06-08 Tobias Burnus <tobias@codesourcery.com>
+
+ PR lto/94848
+ PR middle-end/95551
+ * omp-offload.c (add_decls_addresses_to_decl_constructor,
+ omp_finish_file): Skip removed items.
+ * lto-cgraph.c (output_offload_tables): Likewise; set force_output
+ to this node for variables and functions.
+
+2020-06-08 Jason Merrill <jason@redhat.com>
+
+ * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4.
+ * configure.ac: Remove AX_CXX_COMPILE_STDCXX.
+ * configure: Regenerate.
+
+2020-06-08 Martin Sebor <msebor@redhat.com>
+
+ * postreload.c (reload_cse_simplify_operands): Clear first array element
+ before using it. Assert a precondition.
+
+2020-06-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/95528
+ * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use
+ VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the
+ type is vector boolean.
+
+2020-06-08 Tamar Christina <tamar.christina@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments.
+
+2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS
+ instead of VFP_REGS.
+
+2020-06-08 Martin Liska <mliska@suse.cz>
+
+ * config/rs6000/vector.md: Replace FAIL with gcc_unreachable
+ in all vcond* patterns.
+
+2020-06-08 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * common/config/arm/arm-common.c (INCLUDE_ALGORITHM):
+ Define. No longer include <algorithm>.
+
+2020-06-07 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/i386/i386.md (paritydi2, paritysi2): Expand reduction
+ via shift and xor to an USPEC PARITY matching a parityhi2_cmp.
+ (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split.
+ (parityhi2, parityqi2): New expanders.
+ (parityhi2_cmp): Implement set parity flag with xorb insn.
+ (parityqi2_cmp): Implement set parity flag with testb insn.
+ New peephole2s to use these insns (UNSPEC PARITY) when appropriate.
+
+2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
+
+ PR target/95018
+ * config/rs6000/rs6000.c (rs6000_option_override_internal):
+ Override flag_cunroll_grow_size.
+
+2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
+
+ * common.opt (flag_cunroll_grow_size): New flag.
+ * toplev.c (process_options): Set flag_cunroll_grow_size.
+ * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
+ Use flag_cunroll_grow_size.
+
+2020-06-06 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/95548
+ * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int.
+ (ipa_odr_summary_write): Update streaming.
+ (ipa_odr_read_section): Update streaming.
+
+2020-06-06 Alexandre Oliva <oliva@adacore.com>
+
+ PR driver/95456
+ * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0).
+
+2020-06-05 Thomas Schwinge <thomas@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * gimplify.c (gimplify_adjust_omp_clauses): Remove
+ 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives.
+
+2020-06-05 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95539
+ * tree-vect-data-refs.c
+ (vect_slp_analyze_and_verify_instance_alignment): Use
+ SLP_TREE_REPRESENTATIVE for the data-ref check.
+ * tree-vect-stmts.c (vectorizable_load): Reset stmt_info
+ back to the first scalar stmt rather than the
+ SLP_TREE_REPRESENTATIVE to match previous behavior.
+
+2020-06-05 Felix Yang <felix.yang@huawei.com>
+
+ PR target/95254
+ * expr.c (emit_move_insn): Check src and dest of the copy to see
+ if one or both of them are subregs, try to remove the subregs when
+ innermode and outermode are equal in size and the mode change involves
+ an implicit round trip through memory.
+
+2020-06-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/95535
+ * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New
+ define_insn_and_split patterns.
+ (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New
+ define_insn patterns.
+
+2020-06-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * alloc-pool.h (object_allocator::remove_raw): New.
+ * tree-ssa-math-opts.c (struct occurrence): Use NSMDI.
+ (occurrence::occurrence): Add.
+ (occurrence::~occurrence): Likewise.
+ (occurrence::new): Likewise.
+ (occurrence::delete): Likewise.
+ (occ_new): Remove.
+ (insert_bb): Use new occurence (...) instead of occ_new.
+ (register_division_in): Likewise.
+ (free_bb): Use delete occ instead of manually removing
+ from the pool.
+
+2020-06-05 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/95493
+ * cfgexpand.c (expand_debug_expr): Avoid calling
+ set_mem_attributes_minus_bitpos when we were expanding
+ an SSA name.
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
+ ARRAY_REF special-casing, add CONSTRUCTOR to the set of
+ special-cases we do not want MEM_EXPRs for. Assert
+ we end up with reasonable MEM_EXPRs.
+
+2020-06-05 Lili Cui <lili.cui@intel.com>
+
+ PR target/95525
+ * config/i386/i386.h (PTA_WAITPKG): Change bitmask value.
+
+2020-06-04 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/10138
+ PR middle-end/95136
+ * attribs.c (init_attr_rdwr_indices): Move function here.
+ * attribs.h (rdwr_access_hash, rdwr_map): Define.
+ (attr_access): Add 'none'.
+ (init_attr_rdwr_indices): Declared function.
+ * builtins.c (warn_for_access)): New function.
+ (check_access): Call it.
+ * builtins.h (checK-access): Add an optional argument.
+ * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h.
+ (init_attr_rdwr_indices): Declare extern.
+ (append_attrname): Handle attr_access::none.
+ (maybe_warn_rdwr_sizes): Same.
+ (initialize_argument_information): Update comments.
+ * doc/extend.texi (attribute access): Document 'none'.
+ * tree-ssa-uninit.c (struct wlimits): New.
+ (maybe_warn_operand): New function.
+ (maybe_warn_pass_by_reference): Same.
+ (warn_uninitialized_vars): Refactor code into maybe_warn_operand.
+ Also call for function calls.
+ (pass_late_warn_uninitialized::execute): Adjust comments.
+ (execute_early_warn_uninitialized): Same.
+
+2020-06-04 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR middle-end/95464
+ * lra.c (lra_emit_move): Add processing STRICT_LOW_PART.
+ * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output
+ reload if the original insn has it too.
+
+2020-06-04 Richard Biener <rguenther@suse.de>
+
+ * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
+ Ensure that tmp_ha is marked TREE_ADDRESSABLE.
+
+2020-06-04 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/95113
+ * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call
+ exceptions check to...
+ * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this
+ new function.
+ * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it.
+ * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter
+ fun.
+
+2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ PR target/94735
+ * config/arm/predicates.md (mve_scatter_memory): Define to
+ match (mem (reg)) for scatter store memory.
+ * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify
+ define_insn to define_expand.
+ (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise.
+ (mve_vstrhq_scatter_offset_<supf><mode>): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise.
+ (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise.
+ (mve_vstrdq_scatter_offset_<supf>v2di): Likewise.
+ (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise.
+ (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise.
+ (mve_vstrhq_scatter_offset_fv8hf): Likewise.
+ (mve_vstrhq_scatter_offset_p_fv8hf): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise.
+ (mve_vstrwq_scatter_offset_fv4sf): Likewise.
+ (mve_vstrwq_scatter_offset_p_fv4sf): Likewise.
+ (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise.
+ (mve_vstrwq_scatter_offset_<supf>v4si): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise.
+ (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter
+ stores.
+ (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
+ (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
+ (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
+ (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
+ (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
+ (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
+ (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
+ (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
+ (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
+ (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
+ (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
+ (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
+ (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
+ (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
+
+2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic
+ arguments.
+ (__arm_vbicq_n_s16): Likewise.
+ (__arm_vbicq_n_u32): Likewise.
+ (__arm_vbicq_n_s32): Likewise.
+ (__arm_vbicq): Modify polymorphic variant.
+
+2020-06-04 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (vect_get_slp_vect_def): Declare.
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
+ * tree-vect-stmts.c (vect_transform_stmt): Likewise.
+ (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE.
+ * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single
+ use ...
+ (vect_get_slp_defs): ... here.
+ (vect_get_slp_vect_def): New function.
+
+2020-06-04 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_tree::lanes): New.
+ (SLP_TREE_LANES): Likewise.
+ * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it.
+ (vectorizable_reduction): Likewise.
+ (vect_transform_cycle_phi): Likewise.
+ (vectorizable_induction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes.
+ (vect_create_new_slp_node): Likewise.
+ (slp_copy_subtree): Copy it.
+ (vect_optimize_slp): Use it.
+ (vect_slp_analyze_node_operations_1): Likewise.
+ (vect_slp_convert_to_external): Likewise.
+ (vect_bb_vectorization_profitable_p): Likewise.
+ * tree-vect-stmts.c (vectorizable_load): Likewise.
+ (get_vectype_for_scalar_type): Likewise.
+
+2020-06-04 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove.
+ (vect_build_slp_tree_2): Simplify building all external op
+ nodes from scalars.
+ (vect_slp_analyze_node_operations): Remove push/pop of
+ STMT_VINFO_DEF_TYPE.
+ (vect_schedule_slp_instance): Likewise.
+ * tree-vect-stmts.c (ect_check_store_rhs): Pass in the
+ stmt_info, use the vect_is_simple_use overload combining
+ SLP and stmt_info analysis.
+ (vect_is_simple_cond): Likewise.
+ (vectorizable_store): Adjust.
+ (vectorizable_condition): Likewise.
+ (vect_is_simple_use): Fully handle invariant SLP nodes
+ here. Amend stmt_info operand extraction with COND_EXPR
+ and masked stores.
+ * tree-vect-loop.c (vectorizable_reduction): Deal with
+ COND_EXPR representation ugliness.
+
+2020-06-04 Hongtao Liu <hongtao.liu@inte.com>
+
+ PR target/95254
+ * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>):
+ Refine from *vcvtps2ph_store<mask_name>.
+ (vcvtps2ph256<mask_name>): Refine constraint from vm to v.
+ (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
+ (*vcvtps2ph256<merge_mask_name>): New define_insn.
+ (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto.
+ * config/i386/subst.md (merge_mask): New define_subst.
+ (merge_mask_name): New define_subst_attr.
+ (merge_mask_operand3): Ditto.
+
+2020-06-04 Hao Liu <hliu@os.amperecomputing.com>
+
+ PR tree-optimization/89430
+ * tree-ssa-phiopt.c
+ (struct name_to_bb): Rename to ref_to_bb; add a new field exp;
+ remove ssa_name_ver, store, offset fields.
+ (struct ssa_names_hasher): Rename to refs_hasher; update functions.
+ (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs.
+ (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs
+ and COMPONENT_REFs.
+
+2020-06-04 Andreas Schwab <schwab@suse.de>
+
+ PR target/95154
+ * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external.
+
+2020-06-04 Hongtao.liu <hongtao.liu@intel.com>
+
+ * config/i386/sse.md (pmov_dst_3_lower): New mode attribute.
+ (trunc<mode><pmov_dst_3_lower>2): Refine from
+ trunc<mode><pmov_dst_3>2.
+
+2020-06-03 Vitor Guidi <vitor.guidi@usp.br>
+
+ * match.pd (tanh/sinh -> 1/cosh): New simplification.
+
+2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ PR target/95347
+ * config/rs6000/rs6000.c (is_stfs_insn): Rename to
+ is_lfs_stfs_insn and make it recognize lfs as well.
+ (prefixed_store_p): Use is_lfs_stfs_insn().
+ (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs.
+
+2020-06-03 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
+ streamer-hooks.h.
+ (odr_enums): New static var.
+ (struct odr_enum_val): New struct.
+ (class odr_enum): New struct.
+ (odr_enum_map): New hashtable.
+ (odr_types_equivalent_p): Drop code testing TYPE_VALUES.
+ (add_type_duplicate): Likewise.
+ (free_odr_warning_data): Do not free TYPE_VALUES.
+ (register_odr_enum): New function.
+ (ipa_odr_summary_write): New function.
+ (ipa_odr_read_section): New function.
+ (ipa_odr_summary_read): New function.
+ (class pass_ipa_odr): New pass.
+ (make_pass_ipa_odr): New function.
+ * ipa-utils.h (register_odr_enum): Declare.
+ * lto-section-in.c: (lto_section_name): Add odr_types section.
+ * lto-streamer.h (enum lto_section_type): Add odr_types section.
+ * passes.def: Add odr_types pass.
+ * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
+ TYPE_VALUES.
+ (hash_tree): Likewise.
+ * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
+ Likewise.
+ * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
+ Likewise.
+ * timevar.def (TV_IPA_ODR): New timervar.
+ * tree-pass.h (make_pass_ipa_odr): Declare.
+ * tree.c (free_lang_data_in_type): Regiser ODR types.
+
+2020-06-03 Romain Naour <romain.naour@gmail.com>
+
+ * Makefile.in (SELFTEST_DEPS): Move before including language makefile
+ fragments.
+
+2020-06-03 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95487
+ * tree-vect-stmts.c (vectorizable_store): Use a truth type
+ for the scatter mask.
+
+2020-06-03 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/95495
+ * tree-vect-slp.c (vect_slp_analyze_node_operations): Use
+ SLP_TREE_REPRESENTATIVE in the shift assertion.
+
+2020-06-03 Tom Tromey <tromey@adacore.com>
+
+ * spellcheck.c (CASE_COST): New define.
+ (BASE_COST): New define.
+ (get_edit_distance): Recognize case changes.
+ (get_edit_distance_cutoff): Update.
+ (test_edit_distances): Update.
+ (get_old_cutoff): Update.
+ (test_find_closest_string): Add case sensitivity test.
+
+2020-06-03 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over
+ the cost vector to unset the visited flag on stmts.
+
+2020-06-03 Tobias Burnus <tobias@codesourcery.com>
+
+ * gimplify.c (omp_notice_variable): Use new hook.
+ * langhooks-def.h (lhd_omp_predetermined_mapping): Declare.
+ (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define
+ (LANG_HOOKS_DECLS): Add it.
+ * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr.
+ (lhd_omp_predetermined_mapping): New.
+ * langhooks.h (struct lang_hooks_for_decls): Add new hook.
+
+2020-06-03 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes;
+ add LTO_first_tree_tag and LTO_first_gimple_tag.
+ (lto_tag_is_tree_code_p): Update.
+ (lto_tag_is_gimple_code_p): Update.
+ (lto_gimple_code_to_tag): Update.
+ (lto_tag_to_gimple_code): Update.
+ (lto_tree_code_to_tag): Update.
+ (lto_tag_to_tree_code): Update.
+
+2020-06-02 Felix Yang <felix.yang@huawei.com>
+
+ PR target/95459
+ * config/aarch64/aarch64.c (aarch64_short_vector_p):
+ Leave later code to report an error if SVE is disabled.
+
+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-06-02 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ PR target/95347
+ * config/rs6000/rs6000.c (prefixed_store_p): Add special case
+ for stfs.
+ (is_stfs_insn): New helper function.
+
+2020-06-02 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of
+ references.
+ * lto-streamer-out.c (stream_write_tree_ref): Likewise.
+
+2020-06-02 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
+ * config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
+ * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.
+
+2020-06-02 Eric Botcazou <ebotcazou@gcc.gnu.org>
+
+ PR middle-end/95395
+ * optabs.c (expand_unop): Fix bits/bytes confusion in latest change.
+ * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals.
+
+2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+
+ * config/s390/s390.c (print_operand): Emit vector alignment
+ hints for z13.
+
+2020-06-02 Martin Liska <mliska@suse.cz>
+
+ * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters
+ as they have variable number of counters.
+ * gcov-dump.c (main): Add new option -r.
+ (print_usage): Likewise.
+ (tag_counters): All new raw format.
+ * gcov-io.h (struct gcov_kvp): New.
+ (GCOV_TOPN_VALUES): Remove.
+ (GCOV_TOPN_VALUES_COUNTERS): Likewise.
+ (GCOV_TOPN_MEM_COUNTERS): New.
+ (GCOV_TOPN_DISK_COUNTERS): Likewise.
+ (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise.
+ * ipa-profile.c (ipa_profile_generate_summary): Use
+ GCOV_TOPN_MAXIMUM_TRACKED_VALUES.
+ (ipa_profile_write_edge_summary): Likewise.
+ (ipa_profile_read_edge_summary): Likewise.
+ (ipa_profile): Remove usage of GCOV_TOPN_VALUES.
+ * profile.c (sort_hist_values): Sort variable number
+ of counters.
+ (compute_value_histograms): Special case for TOP N counters
+ that have dynamic number of key-value pairs.
+ * value-prof.c (dump_histogram_value): Dump variable number
+ of key-value pairs.
+ (stream_in_histogram_value): Stream in variable number
+ of key-value pairs for TOP N counter.
+ (get_nth_most_common_value): Deal with variable number
+ of key-value pairs.
+ (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES
+ for loop iteration.
+ (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS
+ to n_counters.
+ * doc/gcov-dump.texi: Document new -r option.
+
+2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR target/95420
+ * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a.
+
+2020-06-01 Jeff Law <law@torsion.usersys.redhat.com>
+
+ * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn
+ returns (const_int 0) for the destination, then emit nothing.
+
+2020-06-01 Jan Hubicka <hubicka@ucw.cz>
+
+ * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref,
+ LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref,
+ LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref,
+ LTO_const_decl_ref, LTO_imported_decl_ref,
+ LTO_translation_unit_decl_ref, LTO_global_decl_ref and
+ LTO_namelist_decl_ref; add LTO_global_stream_ref.
+ * lto-streamer-in.c (lto_input_tree_ref): Simplify.
+ (lto_input_scc): Update.
+ (lto_input_tree_1): Update.
+ * lto-streamer-out.c (lto_indexable_tree_ref): Simlify.
+ * lto-streamer.c (lto_tag_name): Update.
+
+2020-06-01 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref.
+ (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref.
+ * lto-cgraph.c (lto_output_node): Likewise.
+ (lto_output_varpool_node): Likewise.
+ (output_offload_tables): Likewise.
+ (input_node): Likewise.
+ (input_varpool_node): Likewise.
+ (input_offload_tables): Likewise.
+ * lto-streamer-in.c (lto_input_tree_ref): Declare.
+ (lto_input_var_decl_ref): Declare.
+ (lto_input_fn_decl_ref): Declare.
+ * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream.
+ (lto_output_var_decl_index): Rename to ..
+ (lto_output_var_decl_ref): ... this.
+ (lto_output_fn_decl_index): Rename to ...
+ (lto_output_fn_decl_ref): ... this.
+ * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams.
+ (DEFINE_DECL_STREAM_FUNCS): Remove.
+ (lto_output_var_decl_index): Remove.
+ (lto_output_fn_decl_index): Remove.
+ (lto_output_var_decl_ref): Declare.
+ (lto_output_fn_decl_ref): Declare.
+ (lto_input_var_decl_ref): Declare.
+ (lto_input_fn_decl_ref): Declare.
+
+2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
+
+ * cgraphclones.c (materialize_all_clones): Adjust replace map dump.
+ * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not
+ dump infomation if there is no adjusted parameter.
+ * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string.
+
+2020-06-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * Makefile.in (gimple-array-bounds.o): New.
+ * tree-vrp.c: Move array bounds code...
+ * gimple-array-bounds.cc: ...here...
+ * gimple-array-bounds.h: ...and here.
+
+2020-06-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * Makefile.in (OBJS): Add value-range-equiv.o.
+ * tree-vrp.c (*value_range_equiv*): Move to...
+ * value-range-equiv.cc: ...here.
+ * tree-vrp.h (class value_range_equiv): Move to...
+ * value-range-equiv.h: ...here.
+ * vr-values.h: Include value-range-equiv.h.
+
+2020-06-01 Feng Xue <fxue@os.amperecomputing.com>
+
+ PR ipa/93429
+ * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate
+ lattice for simple pass-through by-ref argument.
+
2020-05-31 Jeff Law <law@redhat.com>
* lra.c (add_auto_inc_notes): Remove function.