]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ChangeLog
Use pc_or_label_operand to collapse a couple more patterns in preparation for the...
[thirdparty/gcc.git] / gcc / ChangeLog
index d23ebffc24b22bab6667468b66b92ca2311d2351..3a090452a969d5bbb249a6546bdc4837f0120792 100644 (file)
@@ -1,3 +1,987 @@
+2020-05-17 Jeff Law  <law@redhat.com>
+
+       * config/h8300/predicates.md (pc_or_label_operand): New predicate.
+       * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate
+       into a single pattern using pc_or_label_operand.
+       * config/h8300/combiner.md (bit branch patterns): Likewise.
+       * config/h8300/peepholes.md (HImode and SImode branches): Likewise.
+
+2020-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/95021
+       * config/i386/i386-features.c (has_non_address_hard_reg):
+       Renamed to ...
+       (pseudo_reg_set): This.  Return the SET expression.  Ignore
+       pseudo register push.
+       (general_scalar_to_vector_candidate_p): Combine single_set and
+       has_non_address_hard_reg calls to pseudo_reg_set.
+       (timode_scalar_to_vector_candidate_p): Likewise.
+       * config/i386/i386.md (*pushv1ti2): New pattern.
+
+2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       Revert:
+       2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (operand_less_p): Move to...
+       * vr-values.c (operand_less_p): ...here.
+       * tree-vrp.h (operand_less_p): Remove.
+
+2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (operand_less_p): Move to...
+       * vr-values.c (operand_less_p): ...here.
+       * tree-vrp.h (operand_less_p): Remove.
+
+2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (class vrp_insert): Remove prototype for
+       live_on_edge.
+
+2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (class live_names): New.
+       (live_on_edge): Move into live_names.
+       (build_assert_expr_for): Move into vrp_insert.
+       (find_assert_locations_in_bb): Rename from
+       find_assert_locations_1.
+       (process_assert_insertions_for): Move into vrp_insert.
+       (compare_assert_loc): Same.
+       (remove_range_assertions): Same.
+       (dump_asserts_for): Rename to vrp_insert::dump.
+       (debug_asserts_for): Rename to vrp_insert::debug.
+       (dump_all_asserts): Rename to vrp_insert::dump.
+       (debug_all_asserts): Rename to vrp_insert::debug.
+
+2020-05-17  Aldy Hernandez  <aldyh@redhat.com>
+
+       * tree-vrp.c (class vrp_prop): Move check_all_array_refs,
+       check_array_ref, check_mem_ref, and search_for_addr_array
+       into new class...
+       (class array_bounds_checker): ...here.
+       (class check_array_bounds_dom_walker): Adjust to use
+       array_bounds_checker.
+       (check_all_array_refs): Move into array_bounds_checker and rename
+       to check.
+       (class vrp_folder): Make fold_predicate_in private.
+
+2020-05-15 Jeff Law  <law@redhat.com>
+
+       * config/h8300/h8300.md (SFI iterator): New iterator for
+       SFmode and SImode.
+       * config/h8300/peepholes.md (memory comparison): Use mode
+       iterator to consolidate 3 patterns into one.
+       (stack allocation and stack store): Handle SFmode.  Handle
+       8 byte allocations.
+
+2020-05-15  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require
+       RS6000_BTM_POWERPC64.
+
+2020-05-15  Uroš Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (SWI48DWI): New mode iterator.
+       (*push<mode>2): Allow XMM registers.
+       (*pushdi2_rex64): Ditto.
+       (*pushsi2_rex64): Ditto.
+       (*pushsi2): Ditto.
+       (push XMM reg splitter): New splitter
+
+       (*pushdf) Change "x" operand constraint to "v".
+       (*pushsf_rex64): Ditto.
+       (*pushsf): Ditto.
+
+2020-05-15  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/92260
+       * tree-vect-slp.c (vect_get_constant_vectors): Compute
+       the number of vector stmts in a canonical way.
+
+2020-05-15  Martin Liska  <mliska@suse.cz>
+
+       * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation
+       warning.
+
+2020-05-15  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp.
+
+2020-05-15  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/95133
+       * gimple-ssa-split-paths.c
+       (find_block_to_duplicate_for_splitting_paths): Check for
+       normal edges.
+
+2020-05-15  Christophe Lyon  <christophe.lyon@linaro.org>
+
+        * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt
+        routines.
+        (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p.
+
+2020-05-15  Tobias Burnus  <tobias@codesourcery.com>
+
+       PR middle-end/94635
+       * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with
+       OMP_TARGET_EXIT_DATA, use 'release:' unless the associated
+       item is 'delete:'.
+
+2020-05-15  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/i386.md (isa): Add sse3_noavx.
+       (enabled): Handle sse3_noavx.
+
+       * config/i386/mmx.md (mmx_haddv2sf3): New expander.
+       (*mmx_haddv2sf3): Rename from mmx_haddv2sf3.  Add SSE/AVX
+       alternatives.  Match commutative vec_select selector operands.
+       (*mmx_haddv2sf3_low): New insn pattern.
+
+       (*mmx_hsubv2sf3): Add SSE/AVX alternatives.
+       (*mmx_hsubv2sf3_low): New insn pattern.
+
+2020-05-15  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/33315
+       * tree-ssa-sink.c: Include tree-eh.h.
+       (sink_stats): Add commoned member.
+       (sink_common_stores_to_bb): New function implementing store
+       commoning by sinking to the successor.
+       (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned.
+       (pass_sink_code::execute): Likewise.  Record commoned stores
+       in statistics.
+
+2020-05-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+
+       PR rtl-optimization/37451, part of PR target/61837
+       * loop-doloop.c (doloop_simplify_count): New function.  Simplify
+       (add -1; zero_ext; add +1) to zero_ext when not wrapping.
+       (doloop_modify): Call doloop_simplify_count.
+
+2020-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR jit/94778
+       * doc/sourcebuild.texi: Document effective target lgccjit.
+
+2020-05-14  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a
+       define_expand, and rename the original to ...
+       (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand.
+       (add<mode>3_zext_dup_exec): Likewise, with ...
+       (add<mode>3_vcc_zext_dup_exec): ... this.
+       (add<mode>3_zext_dup2): Likewise, with ...
+       (add<mode>3_zext_dup_exec): ... this.
+       (add<mode>3_zext_dup2_exec): Likewise, with ...
+       (add<mode>3_zext_dup2): ... this.
+       * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch
+       addv64di3_zext* calls to use addv64di3_vcc_zext*.
+
+2020-05-14  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/sse.md (truncv2dfv2df2): New insn pattern.
+       (extendv2sfv2df2): Ditto.
+
+2020-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2020-05-14  Christophe Lyon  <christophe.lyon@linaro.org>
+
+       * config/arm/arm.c (reg_needs_saving_p): New function.
+       (use_return_insn): Use reg_needs_saving_p.
+       (arm_get_vfp_saved_size): Likewise.
+       (arm_compute_frame_layout): Likewise.
+       (arm_save_coproc_regs): Likewise.
+       (thumb1_expand_epilogue): Likewise.
+       (arm_expand_epilogue_apcs_frame): Likewise.
+       (arm_expand_epilogue): Likewise.
+
+2020-05-14  Christophe Lyon  <christophe.lyon@linaro.org>
+
+        * config/arm/arm.c (thumb1_expand_prologue): Update error message.
+
+2020-05-14  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1.
+
+       (floatv2siv2df2): New expander.
+       (floatunsv2siv2df2): New insn pattern.
+
+       (fix_truncv2dfv2si2): New expander.
+       (fixuns_truncv2dfv2si2): New insn pattern.
+
+2020-05-14  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR target/95105
+       * config/aarch64/aarch64-sve-builtins.cc
+       (handle_arm_sve_vector_bits_attribute): Create a copy of the
+       original type's TYPE_MAIN_VARIANT, then reapply all the differences
+       between the original type and its main variant.
+
+2020-05-14  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/95118
+       * real.c (real_to_decimal_for_mode): Make sure we handle
+       a zero with nonzero exponent.
+
+2020-05-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (GTFILES): Add omp-general.c.
+       * cgraph.h (struct cgraph_node): Add declare_variant_alt and
+       calls_declare_variant_alt members and initialize them in the
+       ctor.
+       * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct
+       calls to declare_variant_alt nodes.
+       * lto-cgraph.c (lto_output_node): Write declare_variant_alt
+       and calls_declare_variant_alt.
+       (input_overwrite_node): Read them back.
+       * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt
+       bit.
+       * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt
+       bit.
+       (tree_function_versioning): Copy calls_declare_variant_alt bit.
+       * omp-offload.c (execute_omp_device_lower): Call
+       omp_resolve_declare_variant on direct function calls.
+       (pass_omp_device_lower::gate): Also enable for
+       calls_declare_variant_alt functions.
+       * omp-general.c (omp_maybe_offloaded): Return false after inlining.
+       (omp_context_selector_matches): Handle the case when
+       cfun->curr_properties has PROP_gimple_any bit set.
+       (struct omp_declare_variant_entry): New type.
+       (struct omp_declare_variant_base_entry): New type.
+       (struct omp_declare_variant_hasher): New type.
+       (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal):
+       New methods.
+       (omp_declare_variants): New variable.
+       (struct omp_declare_variant_alt_hasher): New type.
+       (omp_declare_variant_alt_hasher::hash,
+       omp_declare_variant_alt_hasher::equal): New methods.
+       (omp_declare_variant_alt): New variables.
+       (omp_resolve_late_declare_variant): New function.
+       (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant
+       when called late.  Create a magic declare_variant_alt fndecl and
+       cgraph node and return that if decision needs to be deferred until
+       after gimplification.
+       * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt
+       bit.
+
+       PR middle-end/95108
+       * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member.
+       (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in
+       entry block if info->after_stmt is NULL, otherwise add after that stmt
+       and update it after adding each stmt.
+       (ipa_simd_modify_function_body): Initialize info.after_stmt.
+
+       * function.h (struct function): Add has_omp_target bit.
+       * omp-offload.c (omp_discover_declare_target_fn_r): New function,
+       old renamed to ...
+       (omp_discover_declare_target_tgt_fn_r): ... this.
+       (omp_discover_declare_target_var_r): Call
+       omp_discover_declare_target_tgt_fn_r instead of
+       omp_discover_declare_target_fn_r.
+       (omp_discover_implicit_declare_target): Also queue functions with
+       has_omp_target bit set, for those walk with
+       omp_discover_declare_target_fn_r, for declare target to functions
+       walk with omp_discover_declare_target_tgt_fn_r.
+
+2020-05-14  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id.
+       Add SSE/AVX alternative.  Change operand predicates from
+       nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+       (fix_truncv2sfv2si2): New expander.
+       (fixuns_truncv2sfv2si2): New insn pattern.
+
+       (mmx_floatv2siv2sf2): rename from mmx_floatv2si2.
+       Add SSE/AVX alternative.  Change operand predicates from
+       nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+       (floatv2siv2sf2): New expander.
+       (floatunsv2siv2sf2): New insn pattern.
+
+       * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID):
+       Update for rename.
+       (IX86_BUILTIN_PI2FD): Ditto.
+
+2020-05-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack
+       expander.
+       * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New
+       expanders.
+
+2020-05-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * config/s390/s390.c (allocate_stack_space): Add missing updates
+       of last_probe_offset.
+
+2020-05-14  Andreas Krebbel  <krebbel@linux.ibm.com>
+
+       * config/s390/s390.md ("allocate_stack"): Call
+       anti_adjust_stack_and_probe_stack_clash when stack clash
+       protection is enabled.
+       * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove
+       prototype. Remove static.
+       * explow.h (anti_adjust_stack_and_probe_stack_clash): Add
+       prototype.
+
+2020-05-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_extractl): New #define.
+       (vec_extracth): Likewise.
+       * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant.
+       (UNSPEC_EXTRACTR): Likewise.
+       (vextractl<mode>): New expansion.
+       (vextractl<mode>_internal): New insn.
+       (vextractr<mode>): New expansion.
+       (vextractr<mode>_internal): New insn.
+       * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx):
+       New built-in function.
+       (__builtin_altivec_vextduhvlx): Likewise.
+       (__builtin_altivec_vextduwvlx): Likewise.
+       (__builtin_altivec_vextddvlx): Likewise.
+       (__builtin_altivec_vextdubvhx): Likewise.
+       (__builtin_altivec_vextduhvhx): Likewise.
+       (__builtin_altivec_vextduwvhx): Likewise.
+       (__builtin_altivec_vextddvhx): Likewise.
+       (__builtin_vec_extractl): New overloaded built-in function.
+       (__builtin_vec_extracth): Likewise.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
+       Define overloaded forms of __builtin_vec_extractl and
+       __builtin_vec_extracth.
+       (builtin_function_type): Add cases to mark arguments of new
+       built-in functions as unsigned.
+       (rs6000_common_init_builtins): Add
+       opaque_ftype_opaque_opaque_opaque_opaque.
+       * config/rs6000/rs6000.md (du_or_d): New mode attribute.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Add description of vec_extractl and
+       vec_extractr built-in functions.
+
+2020-05-13  Richard Biener  <rguenther@suse.de>
+
+       * target.def (add_stmt_cost): Add new vectype parameter.
+       * targhooks.c (default_add_stmt_cost): Adjust.
+       * targhooks.h (default_add_stmt_cost): Likewise.
+       * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new
+       vectype parameter.
+       * config/arm/arm.c (arm_add_stmt_cost): Likewise.
+       * config/i386/i386.c (ix86_add_stmt_cost): Likewise.
+       * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
+
+       * tree-vectorizer.h (stmt_info_for_cost::vectype): Add.
+       (dump_stmt_cost): Add new vectype parameter.
+       (add_stmt_cost): Likewise.
+       (record_stmt_cost): Likewise.
+       (record_stmt_cost): Add overload with old signature.
+       * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
+       Adjust.
+       (vect_get_known_peeling_cost): Likewise.
+       (vect_estimate_min_profitable_iters): Likewise.
+       * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter.
+       * tree-vect-stmts.c (record_stmt_cost): Likewise.
+       (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter
+       and pass down correct vectype and NULL stmt_info.
+       (vect_model_simple_cost): Adjust.
+       (vect_model_store_cost): Likewise.
+
+2020-05-13  Richard Biener  <rguenther@suse.de>
+
+       * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove.
+       (_slp_instance::group_size): Likewise.
+       * tree-vect-loop.c (vectorizable_reduction): The group size
+       is the number of lanes in the node.
+       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
+       (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE,
+       verify it matches the instance trees number of lanes.
+       (vect_slp_analyze_node_operations_1): Use the numer of lanes
+       in the node as group size.
+       (vect_bb_vectorization_profitable_p): Use the instance root
+       number of lanes for the size of life.
+       (vect_schedule_slp_instance): Use the number of lanes as
+       group_size.
+       * tree-vect-stmts.c (vectorizable_load): Remove SLP instance
+       parameter.  Use the number of lanes of the load for the group
+       size in the gap adjustment code.
+       (vect_analyze_stmt): Adjust.
+       (vect_transform_stmt): Likewise.
+
+2020-05-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/95080
+       * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even
+       if the last insn is a note.
+
+       PR tree-optimization/95060
+       * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR
+       if it is the single use of the FMA internal builtin.
+
+2020-05-13  Bin Cheng  <bin.cheng@linux.alibaba.com>
+
+       PR tree-optimization/94969
+       * tree-data-dependence.c (constant_access_functions): Rename to...
+       (invariant_access_functions): ...this.  Add parameter.  Check for
+       invariant access function, rather than constant.
+       (build_classic_dist_vector): Call above function.
+       * tree-loop-distribution.c (pg_add_dependence_edges): Add comment.
+
+2020-05-13  Hongtao Liu  <hongtao.liu@intel.com>
+
+       PR target/94118
+       * doc/extend.texi (x86Operandmodifiers): Document more x86
+       operand modifier.
+       * gcc/config/i386/i386.c: Add comment for operand modifier N and I.
+
+2020-05-12  Giuliano Belinassi  <giuliano.belinassi@usp.br>
+
+       * tree-vrp.c (class vrp_insert): New.
+       (insert_range_assertions): Move to class vrp_insert.
+       (dump_all_asserts): Same as above.
+       (dump_asserts_for): Same as above.
+       (live): Same as above.
+       (need_assert_for): Same as above.
+       (live_on_edge): Same as above.
+       (finish_register_edge_assert_for): Same as above.
+       (find_switch_asserts): Same as above.
+       (find_assert_locations): Same as above.
+       (find_assert_locations_1): Same as above.
+       (find_conditional_asserts): Same as above.
+       (process_assert_insertions): Same as above.
+       (register_new_assert_for): Same as above.
+       (vrp_prop): New variable fun.
+       (vrp_initialize): New parameter.
+       (identify_jump_threads): Same as above.
+       (execute_vrp): Same as above.
+
+
+2020-05-12  Keith Packard  <keith.packard@sifive.com>
+
+       * config/riscv/riscv.c (riscv_unique_section): New.
+       (TARGET_ASM_UNIQUE_SECTION): New.
+
+2020-05-12  Craig Blackmore  <craig.blackmore@embecosm.com>
+
+       * config.gcc:  Add riscv-shorten-memrefs.o to extra_objs for riscv.
+       * config/riscv/riscv-passes.def: New file.
+       * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare.
+       * config/riscv/riscv-shorten-memrefs.c: New file.
+       * config/riscv/riscv.c (tree-pass.h): New include.
+       (riscv_compressed_reg_p): New Function
+       (riscv_compressed_lw_offset_p): Likewise.
+       (riscv_compressed_lw_address_p): Likewise.
+       (riscv_shorten_lw_offset): Likewise.
+       (riscv_legitimize_address): Attempt to convert base + large_offset
+       to compressible new_base + small_offset.
+       (riscv_address_cost): Make anticipated compressed load/stores
+       cheaper for code size than uncompressed load/stores.
+       (riscv_register_priority): Move compressed register check to
+       riscv_compressed_reg_p.
+       * config/riscv/riscv.h (C_S_BITS): Define.
+       (CSW_MAX_OFFSET): Define.
+       * config/riscv/riscv.opt (mshorten-memefs): New option.
+       * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule.
+       (PASSES_EXTRA): Add riscv-passes.def.
+       * doc/invoke.texi: Document -mshorten-memrefs.
+
+       * config/riscv/riscv.c (riscv_new_address_profitable_p): New function.
+       (TARGET_NEW_ADDRESS_PROFITABLE_P): Define.
+       * doc/tm.texi: Regenerate.
+       * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P):  New hook.
+       * sched-deps.c (attempt_change): Use old address if it is cheaper than
+       new address.
+       * target.def (new_address_profitable_p): New hook.
+       * targhooks.c (default_new_address_profitable_p): New function.
+       * targhooks.h (default_new_address_profitable_p): Declare.
+
+2020-05-12  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (copysignv2sf3): New expander.
+       (xorsignv2sf3): Ditto.
+       (signbitv2sf3): Ditto.
+
+2020-05-12  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (fmav2sf4): New insn pattern.
+       (fmsv2sf4): Ditto.
+       (fnmav2sf4): Ditto.
+       (fnmsv2sf4): Ditto.
+
+2020-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.in (CET_HOST_FLAGS): New.
+       (COMPILER): Add $(CET_HOST_FLAGS).
+       * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
+       AC_SUBST(CET_HOST_FLAGS).  Clear CET_HOST_FLAGS if jit isn't
+       enabled.
+       * aclocal.m4: Regenerated.
+       * configure: Likewise.
+
+2020-05-12  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (<code>v2sf2): New insn pattern.
+       (*mmx_<code>v2sf2): New insn_and_split pattern.
+       (*mmx_nabsv2sf2): Ditto.
+       (*mmx_andnotv2sf3): New insn pattern.
+       (*mmx_<code>v2sf3): Ditto.
+       * config/i386/i386.md (absneg_op): New code attribute.
+       * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode.
+       (ix86_build_signbit_mask): Ditto.
+
+2020-05-12  Richard Biener  <rguenther@suse.de>
+
+       * tree-ssa-live.c (remove_unused_locals): Remove dead debug
+       bind resets.
+
+2020-05-12  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
+       Update prototype to include "local" argument.
+       * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add
+       "local" argument.  Handle local common decls.
+       * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust
+       msp430_output_aligned_decl_common call with 0 for "local" argument.
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
+
+2020-05-12  Richard Biener  <rguenther@suse.de>
+
+       * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
+
+2020-05-12  Martin Liska  <mliska@suse.cz>
+
+       PR sanitizer/95033
+       PR sanitizer/95051
+       * sanopt.c (sanitize_rewrite_addressable_params):
+       Clear DECL_NOT_GIMPLE_REG_P for argument.
+
+2020-05-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/94980
+       * tree-vect-generic.c (expand_vector_comparison): Use
+       vector_element_bits_tree to get the element size in bits,
+       rather than using TYPE_SIZE.
+       (expand_vector_condition, vector_element): Likewise.
+
+2020-05-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/94980
+       * tree-vect-generic.c (build_replicated_const): Take the number
+       of bits as a parameter, instead of the type of the elements.
+       (do_plus_minus): Update accordingly, using vector_element_bits
+       to calculate the correct number of bits.
+       (do_negate): Likewise.
+
+2020-05-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/94980
+       * tree.h (vector_element_bits, vector_element_bits_tree): Declare.
+       * tree.c (vector_element_bits, vector_element_bits_tree): New.
+       * match.pd: Use the new functions instead of determining the
+       vector element size directly from TYPE_SIZE(_UNIT).
+       * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
+       * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise.
+       * tree-vect-stmts.c (vect_is_simple_cond): Likewise.
+       * tree-vect-generic.c (expand_vector_piecewise): Likewise.
+       (expand_vector_conversion): Likewise.
+       (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as
+       a divisor.  Convert the dividend to bits to compensate.
+       * tree-vect-loop.c (vectorizable_live_operation): Call
+       vector_element_bits instead of open-coding it.
+
+2020-05-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * omp-offload.h (omp_discover_implicit_declare_target): Declare.
+       * omp-offload.c: Include context.h.
+       (omp_declare_target_fn_p, omp_declare_target_var_p,
+       omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r,
+       omp_discover_implicit_declare_target): New functions.
+       * cgraphunit.c (analyze_functions): Call
+       omp_discover_implicit_declare_target.
+
+2020-05-12  Richard Biener  <rguenther@suse.de>
+
+       * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize
+       literal constant &MEM[..] to a constant literal.
+
+2020-05-12  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/95045
+       * dbgcnt.def (lim): Add debug-counter.
+       * tree-ssa-loop-im.c: Include dbgcnt.h.
+       (find_refs_for_sm): Use lim debug counter for store motion
+       candidates.
+       (do_store_motion): Rename form store_motion.  Commit edge
+       insertions...
+       (store_motion_loop): ... here.
+       (tree_ssa_lim): Adjust.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm.
+       (vec_ctzm): Rename to vec_cnttzm.
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+       Change fourth operand for vec_ternarylogic to require
+       compatibility with unsigned SImode rather than unsigned QImode.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
+       Remove overloaded forms of vec_gnb that are no longer needed.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Replace vec_clzm with vec_cntlzm;
+       replace vec_ctzm with vec_cntlzm; remove four unwanted forms of
+       vec_gnb; move vec_ternarylogic documentation into this section
+       and replace const unsigned char with const unsigned int as its
+       fourth argument.
+
+2020-05-11  Carl Love  <cel@us.ibm.com>
+
+       * config/rs6000/altivec.h (vec_genpcvm): New #define.
+       * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in
+       instantiation.
+       (XXGENPCVM_V8HI): Likewise.
+       (XXGENPCVM_V4SI): Likewise.
+       (XXGENPCVM_V2DI): Likewise.
+       (XXGENPCVM): New overloaded built-in instantiation.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add
+       entries for FUTURE_BUILTIN_VEC_XXGENPCVM.
+       (altivec_expand_builtin): Add special handling for
+       FUTURE_BUILTIN_VEC_XXGENPCVM.
+       (builtin_function_type): Add handling for
+       FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}.
+       * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator.
+       (UNSPEC_XXGENPCV): New constant.
+       (xxgenpcvm_<mode>_internal): New insn.
+       (xxgenpcvm_<mode>): New expansion.
+       * doc/extend.texi: Add documentation for vec_genpcvm built-ins.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_strir): New #define.
+       (vec_stril): Likewise.
+       (vec_strir_p): Likewise.
+       (vec_stril_p): Likewise.
+       * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant.
+       (UNSPEC_VSTRIL): Likewise.
+       (vstrir_<mode>): New expansion.
+       (vstrir_code_<mode>): New insn.
+       (vstrir_p_<mode>): New expansion.
+       (vstrir_p_code_<mode>): New insn.
+       (vstril_<mode>): New expansion.
+       (vstril_code_<mode>): New insn.
+       (vstril_p_<mode>): New expansion.
+       (vstril_p_code_<mode>): New insn.
+       * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr):
+       New built-in function.
+       (__builtin_altivec_vstrihr): Likewise.
+       (__builtin_altivec_vstribl): Likewise.
+       (__builtin_altivec_vstrihl): Likewise.
+       (__builtin_altivec_vstribr_p): Likewise.
+       (__builtin_altivec_vstrihr_p): Likewise.
+       (__builtin_altivec_vstribl_p): Likewise.
+       (__builtin_altivec_vstrihl_p): Likewise.
+       (__builtin_vec_strir): New overloaded built-in function.
+       (__builtin_vec_stril): Likewise.
+       (__builtin_vec_strir_p): Likewise.
+       (__builtin_vec_stril_p): Likewise.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
+       Define overloaded forms of __builtin_vec_strir,
+       __builtin_vec_stril, __builtin_vec_strir_p, and
+       __builtin_vec_stril_p.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Add description of vec_stril,
+       vec_stril_p, vec_strir, and vec_strir_p built-in functions.
+
+2020-05-11  Kelvin Nilsen  <wschmidt@linux.ibm.com>
+
+       * config/rs6000/altivec.h (vec_ternarylogic): New #define.
+       * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant.
+       (xxeval): New insn.
+       * config/rs6000/predicates.md (u8bit_cint_operand): New predicate.
+       * config/rs6000/rs6000-builtin.def: Add handling of new macro
+       RS6000_BUILTIN_4.
+       (BU_FUTURE_V_4): New macro. Use it.
+       (BU_FUTURE_OVERLOAD_4): Likewise.
+       * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add
+       handling for quaternary built-in functions.
+       (altivec_resolve_overloaded_builtin): Add special-case handling
+       for __builtin_vec_xxeval.
+       * config/rs6000/rs6000-call.c: Add handling of new macro
+       RS6000_BUILTIN_4 in initialization of rs6000_builtin_info,
+       bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg,
+       bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays.
+       (altivec_overloaded_builtins): Add definitions for
+       FUTURE_BUILTIN_VEC_XXEVAL.
+       (bdesc_4arg): New array.
+       (htm_expand_builtin): Add handling for quaternary built-in
+       functions.
+       (rs6000_expand_quaternop_builtin): New function.
+       (rs6000_expand_builtin): Add handling for quaternary built-in
+       functions.
+       (rs6000_init_builtins): Initialize builtin_mode_to_type entries
+       for unsigned QImode and unsigned HImode.
+       (builtin_quaternary_function_type): New function.
+       (rs6000_common_init_builtins): Add handling of quaternary
+       operations.
+       * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined
+       constant.
+       (RS6000_BTC_PREDICATE): Change value of constant.
+       (RS6000_BTC_ABS): Likewise.
+       (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4.
+       * doc/extend.texi (PowerPC AltiVec Built-In Functions Available
+       for a Future Architecture): Add description of vec_ternarylogic
+       built-in function.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in
+       function.
+       (__builtin_pextd): Likewise.
+       * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant.
+       (UNSPEC_PEXTD): Likewise.
+       (pdepd): New insn.
+       (pextd): Likewise.
+       * doc/extend.texi (Basic PowerPC Built-in Functions Available for
+       a Future Architecture): Add descriptions of __builtin_pdepd and
+       __builtin_pextd functions.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_clrl): New #define.
+       (vec_clrr): Likewise.
+       * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant.
+       (UNSPEC_VCLRRB): Likewise.
+       (vclrlb): New insn.
+       (vclrrb): Likewise.
+       * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New
+       built-in function.
+       (__builtin_altivec_vclrrb): Likewise.
+       (__builtin_vec_clrl): New overloaded built-in function.
+       (__builtin_vec_clrr): Likewise.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
+       Define overloaded forms of __builtin_vec_clrl and
+       __builtin_vec_clrr.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Add descriptions of vec_clrl and
+       vec_clrr.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New
+       built-in function definition.
+       (__builtin_cnttzdm): Likewise.
+       * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant.
+       (UNSPEC_CNTTZDM): Likewise.
+       (cntlzdm): New insn.
+       (cnttzdm): Likewise.
+       * doc/extend.texi (Basic PowerPC Built-in Functions available for
+       a Future Architecture): Add descriptions of __builtin_cntlzdm and
+       __builtin_cnttzdm functions.
+
+2020-05-11  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (sqrtv2sf2): New insn pattern.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/altivec.h (vec_cfuge): New #define.
+       * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant.
+       (vcfuged): New insn.
+       * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged):
+       New built-in function.
+       * config/rs6000/rs6000-call.c (builtin_function_type): Add
+       handling for FUTURE_BUILTIN_VCFUGED case.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Add description of vec_cfuge built-in
+       function.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New
+       #define.
+       (BU_FUTURE_MISC_1): Likewise.
+       (BU_FUTURE_MISC_2): Likewise.
+       (BU_FUTURE_MISC_3): Likewise.
+       (__builtin_cfuged): New built-in function definition.
+       * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant.
+       (cfuged): New insn.
+       * doc/extend.texi (Basic PowerPC Built-in Functions Available for
+       a Future Architecture): New subsubsection.
+
+2020-05-11  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/95049
+       * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition
+       between different constants.
+
+2020-05-11  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+           Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * config/rs6000/altivec.h (vec_gnb): New #define.
+       * config/rs6000/altivec.md (UNSPEC_VGNB): New constant.
+       (vgnb): New insn.
+       * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New
+       #define.
+       (BU_FUTURE_OVERLOAD_2): Likewise.
+       (BU_FUTURE_OVERLOAD_3): Likewise.
+       (__builtin_altivec_gnb): New built-in function.
+       (__buiiltin_vec_gnb): New overloaded built-in function.
+       * config/rs6000/rs6000-call.c (altivec_overloaded_builtins):
+       Define overloaded forms of __builtin_vec_gnb.
+       (rs6000_expand_binop_builtin): Add error checking for 2nd argument
+       of __builtin_vec_gnb.
+       (builtin_function_type): Mark return value and arguments unsigned
+       for FUTURE_BUILTIN_VGNB.
+       * doc/extend.texi (PowerPC AltiVec Built-in Functions Available
+       for a Future Architecture): Add description of vec_gnb built-in
+       function.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+           Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * config/rs6000/altivec.h (vec_pdep): New macro implementing new
+       built-in function.
+       (vec_pext): Likewise.
+       * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant.
+       (UNSPEC_VPEXTD): Likewise.
+       (vpdepd): New insn.
+       (vpextd): Likewise.
+       * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New
+       built-in function.
+       (__builtin_altivec_vpextd): Likewise.
+       * config/rs6000/rs6000-call.c (builtin_function_type): Add
+       handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD
+       cases.
+       * doc/extend.texi (PowerPC Altivec Built-in Functions Available
+       for a Future Architecture): Add description of vec_pdep and
+       vec_pext built-in functions.
+
+2020-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+           Bill Schmidt  <wschmidt@linux.ibm.com>
+
+       * config/rs6000/altivec.h (vec_clzm): New macro.
+       (vec_ctzm): Likewise.
+       * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant.
+       (UNSPEC_VCTZDM): Likewise.
+       (vclzdm): New insn.
+       (vctzdm): Likewise.
+       * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro.
+       (BU_FUTURE_V_1): Likewise.
+       (BU_FUTURE_V_2): Likewise.
+       (BU_FUTURE_V_3): Likewise.
+       (__builtin_altivec_vclzdm): New builtin definition.
+       (__builtin_altivec_vctzdm): Likewise.
+       * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause
+       _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is
+       set.
+       * config/rs6000/rs6000-call.c (builtin_function_type): Set return
+       value and parameter types to be unsigned for VCLZDM and VCTZDM.
+       * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
+       support for TARGET_FUTURE flag.
+       * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant.
+       * doc/extend.texi (PowerPC Altivec Built-in Functions Available
+       for a Future Architecture): New subsubsection.
+
+2020-05-11  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/94988
+       PR tree-optimization/95025
+       * tree-ssa-loop-im.c (seq_entry): Make a struct, add from.
+       (sm_seq_push_down): Take extra parameter denoting where we
+       moved the ref to.
+       (execute_sm_exit): Re-issue sm_other stores in the correct
+       order.
+       (sm_seq_valid_bb): When always executed, allow sm_other to
+       prevail inbetween sm_ord and record their stored value.
+       (hoist_memory_references): Adjust refs_not_supported propagation
+       and prune sm_other from the end of the ordered sequences.
+
+2020-05-11  Felix Yang  <felix.yang@huawei.com>
+
+       PR target/94991
+       * config/aarch64/aarch64.md (mov<mode>):
+       Bitcasts to the equivalent integer mode using gen_lowpart
+       instead of doing FAIL for scalar floating point move.
+
+2020-05-11  Alex Coplan  <alex.coplan@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case
+       to correctly calculate cost for new pattern (*csinv3_uxtw_insn3).
+       * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New.
+       (*csinv3_uxtw_insn2): New.
+       (*csinv3_uxtw_insn3): New.
+       * config/aarch64/iterators.md (neg_not_cs): New.
+
+2020-05-11  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint
+       instead of "Yv" for AVX alternatives.  Add "prefix" attribute.
+       (*mmx_addv2sf3): Ditto.
+       (*mmx_subv2sf3): Ditto.
+       (*mmx_mulv2sf3): Ditto.
+       (*mmx_<code>v2sf3): Ditto.
+       (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
+
+2020-05-11  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/95046
+       * config/i386/i386.c (ix86_vector_mode_supported_p):
+       Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE.
+       * config/i386/mmx.md (*mov<mode>_internal): Do not set
+       mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE.
+
+       (mmx_addv2sf3): Change operand predicates from
+       nonimmediate_operand to register_mmxmem_operand.
+       (addv2sf3): New expander.
+       (*mmx_addv2sf3): Add SSE/AVX alternatives.  Change operand
+       predicates from nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+
+       (mmx_subv2sf3): Change operand predicate from
+       nonimmediate_operand to register_mmxmem_operand.
+       (mmx_subrv2sf3): Ditto.
+       (subv2sf3): New expander.
+       (*mmx_subv2sf3): Add SSE/AVX alternatives.  Change operand
+       predicates from nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+
+       (mmx_mulv2sf3): Change operand predicates from
+       nonimmediate_operand to register_mmxmem_operand.
+       (mulv2sf3): New expander.
+       (*mmx_mulv2sf3): Add SSE/AVX alternatives.  Change operand
+       predicates from nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+
+       (mmx_<code>v2sf3): Change operand predicates from
+       nonimmediate_operand to register_mmxmem_operand.
+       (<code>v2sf3): New expander.
+       (*mmx_<code>v2sf3): Add SSE/AVX alternatives.  Change operand
+       predicates from nonimmediate_operand to register_mmxmem_operand.
+       Enable instruction pattern for TARGET_MMX_WITH_SSE.
+       (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
+
+2020-05-11  Martin Liska  <mliska@suse.cz>
+
+       PR c/95040
+       * common.opt: Fix typo in option description.
+
+2020-05-11  Martin Liska  <mliska@suse.cz>
+
+       PR gcov-profile/94928
+       * gcov-io.h: Add caveat about coverage format parsing and
+       possible outdated documentation.
+
 2020-05-11  Xiong Hu Luo  <luoxhu@linux.ibm.com>
 
        PR tree-optimization/83403