+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
+
+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/predicates.md (reload_operand):
+ New predicate.
+ * config/xtensa/xtensa.md: New peephole2 pattern.
+
+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.md (*round_up_to_even):
+ New insn-and-split pattern.
+ (*signed_ge_zero): Ditto.
+
+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
+ xtensa_emit_sibcall): New prototypes.
+ (xtensa_expand_epilogue): Add new argument that specifies whether
+ or not sibling call.
+ * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
+ New macro definition.
+ (xtensa_prepare_expand_call): New function in order to share
+ the common code.
+ (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
+ New functions.
+ (xtensa_expand_epilogue): Add new argument sibcall_p and use it
+ for sibling call handling.
+ * config/xtensa/xtensa.md (call, call_value):
+ Use xtensa_prepare_expand_call.
+ (call_internal, call_value_internal):
+ Add the condition in order to be disabled if sibling call.
+ (sibcall, sibcall_value, sibcall_epilogue): New expansions.
+ (sibcall_internal, sibcall_value_internal): New insn patterns,
+ and split ones in order to take care of the indirect sibcalls.
+
+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * doc/invoke.texi: Document -mextra-l32r-costs= option.
+
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/105962
+ * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
+ * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
+ Extend -fdiagnostics-path-format=separate-events so that with
+ -fdiagnostics-show-path-depths it prints fndecls as well as stack
+ depths.
+
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ * value-relation.h: Add "final" and "override" to relation_oracle
+ vfunc implementations as appropriate.
+
+2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR middle-end/105975
+ Revert everything apart from the expand_fn_using_insn and
+ expand_direct_optab_fn changes from:
+ * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
+ (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
+ (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
+ (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
+ * internal-fn.h (direct_internal_fn_info::directly_mapped): New
+ member variable.
+ (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
+ (direct_internal_fn_p): Also return true for internal functions
+ that map directly to instructions defined target-insns.def.
+ (direct_internal_fn): Adjust comment accordingly.
+ * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
+ (vectorizable_optab2): New local macros.
+ (not_direct): Initialize directly_mapped.
+ (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
+ (gather_load_direct, len_load_direct, mask_store_direct)
+ (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
+ (vec_cond_direct, scatter_store_direct, len_store_direct)
+ (vec_set_direct, unary_direct, binary_direct, ternary_direct)
+ (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
+ (while_direct, fold_extract_direct, fold_left_direct)
+ (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
+ (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
+ (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
+ (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
+ (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
+ (direct_internal_fn_types): Handle functions that map to instructions
+ defined in target-insns.def.
+ (direct_internal_fn_types): Likewise.
+ (direct_internal_fn_supported_p): Likewise.
+ (internal_fn_expanders): Likewise.
+ (expand_fn_using_insn): New function,
+ split out and adapted from...
+ (expand_direct_optab_fn): ...here.
+ (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
+ (expand_GOMP_SIMT_EXIT): Likewise.
+ (expand_GOMP_SIMT_LANE): Likewise.
+ (expand_GOMP_SIMT_LAST_LANE): Likewise.
+ (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
+ (expand_GOMP_SIMT_VOTE_ANY): Likewise.
+ (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
+ (expand_GOMP_SIMT_XCHG_IDX): Likewise.
+
+2022-06-15 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/105981
+ * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
+ to first_reg and second_reg respectively. Initialize them correctly
+ when generating big-endian code.
+
+2022-06-15 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/105974
+ * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
+
+2022-06-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/105971
+ * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
+ FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
+ to leak less surprising alias results.
+
+2022-06-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/105969
+ * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
+ by zero in overflow check.
+
+2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR tree-optimization/105254
+ PR tree-optimization/105940
+ Revert:
+ * config/aarch64/aarch64.cc
+ (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
+ loop_vec_info as argument. Restrict the unroll factor to values
+ that divide the VF.
+ (aarch64_vector_costs::finish_cost): Update call accordingly.
+
+2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ * read-rtl.cc (find_int): Substitute symbolic constants
+ before converting the string to an integer.
+
+2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
+ Richard Biener <rguenther@suse.de>
+
+ * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
+ left shifts by a constant when the result is truncated, and the
+ shift constant is well-defined.
+ * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
+ support for rotations of signed integer types, by lowering
+ using unsigned vector shifts.
+
+2022-06-15 liuhongt <hongtao.liu@intel.com>
+
+ PR target/105953
+ * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
+ operands[3].
+
2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
PR rtl-optimization/105041
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/105962
+ * analyzer.opt (fanalyzer-undo-inlining): New option.
+ * checker-path.cc: Include "diagnostic-core.h" and
+ "inlining-iterator.h".
+ (event_kind_to_string): Handle EK_INLINED_CALL.
+ (class inlining_info): New class.
+ (checker_event::checker_event): Move here from checker-path.h.
+ Store original fndecl and depth, and calculate effective fndecl
+ and depth based on inlining information.
+ (checker_event::dump): Emit original depth as well as effective
+ depth when they differ; likewise for fndecl.
+ (region_creation_event::get_desc): Use m_effective_fndecl.
+ (inlined_call_event::get_desc): New.
+ (inlined_call_event::get_meaning): New.
+ (checker_path::inject_any_inlined_call_events): New.
+ * checker-path.h (enum event_kind): Add EK_INLINED_CALL.
+ (checker_event::checker_event): Make protected, and move
+ definition to checker-path.cc.
+ (checker_event::get_fndecl): Use effective fndecl.
+ (checker_event::get_stack_depth): Use effective stack depth.
+ (checker_event::get_logical_location): Use effective stack depth.
+ (checker_event::get_original_stack_depth): New.
+ (checker_event::m_fndecl): Rename to...
+ (checker_event::m_original_fndecl): ...this.
+ (checker_event::m_depth): Rename to...
+ (checker_event::m_original_depth): ...this.
+ (checker_event::m_effective_fndecl): New field.
+ (checker_event::m_effective_depth): New field.
+ (class inlined_call_event): New checker_event subclass.
+ (checker_path::inject_any_inlined_call_events): New decl.
+ * diagnostic-manager.cc: Include "inlining-iterator.h".
+ (diagnostic_manager::emit_saved_diagnostic): Call
+ checker_path::inject_any_inlined_call_events.
+ (diagnostic_manager::prune_for_sm_diagnostic): Handle
+ EK_INLINED_CALL.
+ * engine.cc (tainted_args_function_custom_event::get_desc): Use
+ effective fndecl.
+ * inlining-iterator.h: New file.
+
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-manager.cc (saved_diagnostic::dump_dot_id): New.
+ (saved_diagnostic::dump_as_dot_node): New.
+ * diagnostic-manager.h (saved_diagnostic::dump_dot_id): New decl.
+ (saved_diagnostic::dump_as_dot_node): New decl.
+ * engine.cc (exploded_node::dump_dot): Add nodes for saved
+ diagnostics.
+
2022-06-02 David Malcolm <dmalcolm@redhat.com>
* checker-path.cc (checker_event::get_meaning): New.
+2022-06-15 Nathan Sidwell <nathan@acm.org>
+
+ * module.cc (module_state::write_readme): Use less confusing
+ importable unit names.
+
2022-06-14 Nathan Sidwell <nathan@acm.org>
* cp-tree.h (fini_modules): Add has_inits parm.
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-attribs.cc (d_langhook_attribute_table): Add no_sanitize.
+ (d_handle_no_sanitize_attribute): New function.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-attribs.cc (d_langhook_attribute_table): Add visibility.
+ (insert_type_attribute): Use decl_attributes instead of
+ merge_attributes.
+ (insert_decl_attribute): Likewise.
+ (apply_user_attributes): Do nothing when no UDAs applied.
+ (d_handle_visibility_attribute): New function.
+ * d-gimplify.cc (d_gimplify_binary_expr): Adjust.
+ * d-tree.h (set_visibility_for_decl): Declare.
+ * decl.cc (get_symbol_decl): Move setting of visibility flags to...
+ (set_visibility_for_decl): ... here. New function.
+ * types.cc (TypeVisitor::visit (TypeStruct *)): Call
+ set_visibility_for_decl().
+ (TypeVisitor::visit (TypeClass *)): Likewise.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * d-attribs.cc (apply_user_attributes): Set ATTR_FLAG_TYPE_IN_PLACE
+ only on incomplete types.
+ * d-codegen.cc (copy_aggregate_type): Set TYPE_STUB_DECL after copy.
+ * d-compiler.cc (Compiler::onParseModule): Adjust.
+ * d-tree.h (AGGREGATE_OR_ENUM_TYPE_CHECK): Define.
+ (TYPE_FORWARD_REFERENCES): Define.
+ * decl.cc (gcc_attribute_p): Update documentation.
+ (DeclVisitor::visit (StructDeclaration *)): Exit before building type
+ node if gcc.attributes symbol.
+ (DeclVisitor::visit (ClassDeclaration *)): Build type node and add
+ TYPE_NAME to current binding level before emitting anything else.
+ (DeclVisitor::visit (InterfaceDeclaration *)): Likewise.
+ (DeclVisitor::visit (EnumDeclaration *)): Likewise.
+ (build_type_decl): Move rest_of_decl_compilation() call to
+ finish_aggregate_type().
+ * types.cc (insert_aggregate_field): Move layout_decl() call to
+ finish_aggregate_type().
+ (insert_aggregate_bitfield): Likewise.
+ (layout_aggregate_members): Adjust.
+ (finish_incomplete_fields): New function.
+ (finish_aggregate_type): Handle forward referenced field types. Call
+ rest_of_type_compilation() after completing the aggregate.
+ (TypeVisitor::visit (TypeEnum *)): Don't set size and alignment until
+ after apply_user_attributes(). Call rest_of_type_compilation() after
+ completing the enumeral.
+ (TypeVisitor::visit (TypeStruct *)): Call build_type_decl() before
+ apply_user_attributes(). Don't set size, alignment, and mode until
+ after apply_user_attributes().
+ (TypeVisitor::visit (TypeClass *)): Call build_type_decl() before
+ applly_user_attributes().
+
2022-06-13 Iain Buclaw <ibuclaw@gdcproject.org>
* d-builtins.cc: Include builtins.h.
+2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * gcc.target/xtensa/sibcalls.c: New.
+
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/105962
+ * gcc.dg/analyzer/inlining-1-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-1-no-undo.c: New test.
+ * gcc.dg/analyzer/inlining-1.c: New test.
+ * gcc.dg/analyzer/inlining-2-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-2.c: New test.
+ * gcc.dg/analyzer/inlining-3-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-3.c: New test.
+ * gcc.dg/analyzer/inlining-4-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-4.c: New test.
+ * gcc.dg/analyzer/inlining-5-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-5.c: New test.
+ * gcc.dg/analyzer/inlining-6-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-6.c: New test.
+ * gcc.dg/analyzer/inlining-7-multiline.c: New test.
+ * gcc.dg/analyzer/inlining-7.c: New test.
+
+2022-06-15 David Malcolm <dmalcolm@redhat.com>
+
+ * gcc.dg/analyzer/uninit-1.c: Add test coverage of attempts
+ to jump through an uninitialized function pointer, and of attempts
+ to pass an uninitialized value to a function call.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * gdc.dg/asan/attr_no_sanitize1.d: New test.
+ * gdc.dg/ubsan/attr_no_sanitize2.d: New test.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * gdc.dg/attr_visibility1.d: New test.
+ * gdc.dg/attr_visibility2.d: New test.
+ * gdc.dg/attr_visibility3.d: New test.
+
+2022-06-15 David Edelsohn <dje.gcc@gmail.com>
+
+ * g++.dg/cpp1z/aligned-new9.C: Skip on AIX.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * gdc.dg/Wpadded.d: New test.
+
+2022-06-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/105971
+ * gcc.dg/torture/pr106971.c: New testcase.
+
+2022-06-15 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/105969
+ * gcc.dg/pr105969.c: New testcase.
+
+2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/cost_model_14.c: New test.
+
+2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
+ Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/fold-convlshift-4.c: New test case.
+ * gcc.dg/optimize-bswaphi-1.c: Update found bswap count.
+ * gcc.dg/tree-ssa/pr61839_3.c: Shift is now optimized before VRP.
+ * gcc.dg/vect/vect-over-widen-1-big-array.c: Remove obsolete tests.
+ * gcc.dg/vect/vect-over-widen-1.c: Likewise.
+ * gcc.dg/vect/vect-over-widen-3-big-array.c: Likewise.
+ * gcc.dg/vect/vect-over-widen-3.c: Likewise.
+ * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
+ * gcc.dg/vect/vect-over-widen-4.c: Likewise.
+
+2022-06-15 liuhongt <hongtao.liu@intel.com>
+
+ * g++.target/i386/pr105953.C: New test.
+
2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
PR rtl-optimization/105041
+2022-06-15 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c (main): Initialize
+ q to ddress of an automatic variable. Use -5 instead of -1 in
+ omp_get_mapped_ptr call. Add test with omp_initial_device.
+ * testsuite/libgomp.fortran/get-mapped-ptr-1.f90 (main): Use -5 instead
+ of -1 in omp_get_mapped_ptr call. Add test with omp_initial_device.
+ Renumber stop arguments afterwards.
+
2022-06-13 Jakub Jelinek <jakub@redhat.com>
* omp.h.in (omp_initial_device, omp_invalid_device): New enumerators.
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * libdruntime/gcc/attributes.d (no_sanitize): Define.
+ (noSanitize): Define.
+
+2022-06-15 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * libdruntime/gcc/attributes.d (visibility): Define.
+ (hidden): Define.
+
2022-06-13 Iain Buclaw <ibuclaw@gdcproject.org>
* libdruntime/MERGE: Merge upstream druntime 454471d8.
+2022-06-15 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/105717
+ * include/bits/hashtable_policy.h (_ConvertToValueType): New.
+ * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
+ (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
+ (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
+ (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
+ const allocator_type&, true_type)): Use this.insert range.
+ (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
+ const allocator_type&, false_type)): Use _M_insert.
+ * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
+ is done.
+ * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
+ * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
+
2022-06-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/62187