+2022-12-23 Arsen Arsenović <arsen@aarsen.me>
+
+ * dg-out-generator.pl: New file.
+
2022-12-21 Martin Liska <mliska@suse.cz>
* filter-clang-warnings.py: Simplify.
+2022-12-23 Jakub Jelinek <jakub@redhat.com>
+ Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-ssa-phiopt.cc (value_replacement): Instead of resetting
+ phires range info, union it with carg.
+
+2022-12-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/108068
+ * tree.h (real_maybe_zerop): Declare.
+ * tree.cc (real_maybe_zerop): Define.
+ * tree-ssa-dom.cc (record_edge_info): Use it instead of
+ real_zerop or TREE_CODE (op1) == SSA_NAME || real_zerop. Always set
+ can_infer_simple_equiv to false for decimal floating point types.
+
+2022-12-23 Roger Sayle <roger@nextmovesoftware.com>
+
+ PR target/107548
+ * config/i386/i386-features.cc (scalar_chain::add_insn): The
+ operands of a VEC_SELECT don't need to added to the scalar chain.
+ (general_scalar_chain::compute_convert_gain) <case VEC_SELECT>:
+ Provide gains for performing STV on a VEC_SELECT.
+ (general_scalar_chain::convert_insn): Convert VEC_SELECT to pshufd,
+ psrldq or no-op.
+ (general_scalar_to_vector_candidate_p): Handle VEC_SELECT of a
+ single element from a vector register to a scalar register.
+
+2022-12-23 H.J. Lu <hjl.tools@gmail.com>
+ Roger Sayle <roger@nextmovesoftware.com>
+
+ PR target/106933
+ PR target/106959
+ * config/i386/i386-features.cc (single_def_chain_p): New predicate
+ function to check that a pseudo's use-def chain is in SSA form.
+ (timode_scalar_to_vector_candidate_p): Check that TImode regs that
+ are SET_DEST or SET_SRC of an insn match/are single_def_chain_p.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/vector.md: Fix contraints.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-protos.h (get_avl_type_rtx): New function.
+ * config/riscv/riscv-v.cc (get_avl_type_rtx): Ditto.
+ * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): New
+ class.
+ (BASE): Ditto.
+ * config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ * config/riscv/riscv-vector-builtins-functions.def (vle): Ditto.
+ (vse): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Ditto.
+ (struct loadstore_def): Ditto.
+ (SHAPE): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_U_OPS): New
+ macro.
+ (DEF_RVV_F_OPS): Ditto.
+ (vuint8mf8_t): Add corresponding mask type.
+ (vuint8mf4_t): Ditto.
+ (vuint8mf2_t): Ditto.
+ (vuint8m1_t): Ditto.
+ (vuint8m2_t): Ditto.
+ (vuint8m4_t): Ditto.
+ (vuint8m8_t): Ditto.
+ (vuint16mf4_t): Ditto.
+ (vuint16mf2_t): Ditto.
+ (vuint16m1_t): Ditto.
+ (vuint16m2_t): Ditto.
+ (vuint16m4_t): Ditto.
+ (vuint16m8_t): Ditto.
+ (vuint32mf2_t): Ditto.
+ (vuint32m1_t): Ditto.
+ (vuint32m2_t): Ditto.
+ (vuint32m4_t): Ditto.
+ (vuint32m8_t): Ditto.
+ (vuint64m1_t): Ditto.
+ (vuint64m2_t): Ditto.
+ (vuint64m4_t): Ditto.
+ (vuint64m8_t): Ditto.
+ (vfloat32mf2_t): Ditto.
+ (vfloat32m1_t): Ditto.
+ (vfloat32m2_t): Ditto.
+ (vfloat32m4_t): Ditto.
+ (vfloat32m8_t): Ditto.
+ (vfloat64m1_t): Ditto.
+ (vfloat64m2_t): Ditto.
+ (vfloat64m4_t): Ditto.
+ (vfloat64m8_t): Ditto.
+ * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Adjust for new
+ macro.
+ (DEF_RVV_I_OPS): Ditto.
+ (DEF_RVV_U_OPS): New macro.
+ (DEF_RVV_F_OPS): New macro.
+ (use_real_mask_p): New function.
+ (use_real_merge_p): Ditto.
+ (get_tail_policy_for_pred): Ditto.
+ (get_mask_policy_for_pred): Ditto.
+ (function_builder::apply_predication): Ditto.
+ (function_builder::append_base_name): Ditto.
+ (function_builder::append_sew): Ditto.
+ (function_expander::add_vundef_operand): Ditto.
+ (function_expander::add_mem_operand): Ditto.
+ (function_expander::use_contiguous_load_insn): Ditto.
+ (function_expander::use_contiguous_store_insn): Ditto.
+ * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Adjust for
+ adding mask type.
+ (vbool64_t): Ditto.
+ (vbool32_t): Ditto.
+ (vbool16_t): Ditto.
+ (vbool8_t): Ditto.
+ (vbool4_t): Ditto.
+ (vbool2_t): Ditto.
+ (vbool1_t): Ditto.
+ (vint8mf8_t): Ditto.
+ (vint8mf4_t): Ditto.
+ (vint8mf2_t): Ditto.
+ (vint8m1_t): Ditto.
+ (vint8m2_t): Ditto.
+ (vint8m4_t): Ditto.
+ (vint8m8_t): Ditto.
+ (vint16mf4_t): Ditto.
+ (vint16mf2_t): Ditto.
+ (vint16m1_t): Ditto.
+ (vint16m2_t): Ditto.
+ (vint16m4_t): Ditto.
+ (vint16m8_t): Ditto.
+ (vint32mf2_t): Ditto.
+ (vint32m1_t): Ditto.
+ (vint32m2_t): Ditto.
+ (vint32m4_t): Ditto.
+ (vint32m8_t): Ditto.
+ (vint64m1_t): Ditto.
+ (vint64m2_t): Ditto.
+ (vint64m4_t): Ditto.
+ (vint64m8_t): Ditto.
+ (vfloat32mf2_t): Ditto.
+ (vfloat32m1_t): Ditto.
+ (vfloat32m2_t): Ditto.
+ (vfloat32m4_t): Ditto.
+ (vfloat32m8_t): Ditto.
+ (vfloat64m1_t): Ditto.
+ (vfloat64m4_t): Ditto.
+ * config/riscv/riscv-vector-builtins.h
+ (function_expander::add_output_operand): New function.
+ (function_expander::add_all_one_mask_operand): Ditto.
+ (function_expander::add_fixed_operand): Ditto.
+ (function_expander::vector_mode): Ditto.
+ (function_base::apply_vl_p): Ditto.
+ (function_base::can_be_overloaded_p): Ditto.
+ * config/riscv/riscv-vsetvl.cc (get_vl): Remove restrict of supporting
+ AVL is not VLMAX.
+ * config/riscv/t-riscv: Add include file.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct vsetvl_def): Add
+ "__riscv_" prefix.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-builtins-bases.cc: Change it to no side effects.
+ * config/riscv/vector.md (@vsetvl<mode>_no_side_effects): New pattern.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-builtins-bases.cc: Remove side effects.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vsetvl.cc (anticipatable_occurrence_p): Fix
+ incorrect annotations.
+ (available_occurrence_p): Ditto.
+ (backward_propagate_worthwhile_p): Ditto.
+ (can_backward_propagate_p): Ditto.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vsetvl.cc (vlmax_avl_insn_p): Fix multi-line
+ conditional.
+ (vsetvl_insn_p): Ditto.
+ (same_bb_and_before_p): Ditto.
+ (same_bb_and_after_or_equal_p): Ditto.
+
2022-12-22 Andrew Carlotti <andrew.carlotti@arm.com>
* doc/md.texi: Move example code remark next to it's code block.
+2022-12-23 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/108116
+ * constexpr.cc (maybe_constant_value): Clear
+ processing_template_decl before calling break_out_target_exprs.
+ * init.cc (get_nsdmi): Likewise.
+ * tree.cc (break_out_target_exprs): Assert processing_template_decl
+ is cleared.
+
+2022-12-23 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/107853
+ * constraint.cc (maybe_substitute_reqs_for): Substitute into
+ the template-head requirements of a template friend using only
+ its outer arguments via outer_template_args.
+ * cp-tree.h (outer_template_args): Declare.
+ * pt.cc (outer_template_args): Define, factored out and
+ generalized from ...
+ (ctor_deduction_guides_for): ... here.
+
+2022-12-23 Iain Sandoe <iain@sandoe.co.uk>
+
+ * g++spec.cc (lang_specific_driver): Preserve -static-libstdc++ in
+ the driver command line for targets without -Bstatic/dynamic support
+ in their static linker.
+
2022-12-21 Jakub Jelinek <jakub@redhat.com>
PR c++/108180
+2022-12-23 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/108131
+ * array.cc (match_array_element_spec): Avoid too early simplification
+ of matched array element specs that can lead to a misinterpretation
+ when used as array bounds in array declarations.
+
+2022-12-23 Julian Brown <julian@codesourcery.com>
+
+ * dump-parse-tree.cc (show_attr): Fix OMP-UDR-ARTIFICIAL-VAR typo.
+ * trans-openmp.cc (gfc_trans_omp_array_section): Replace stray unicode
+ m-dash character with hyphen.
+
+2022-12-23 Steve Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/106731
+ * trans-array.cc (gfc_trans_auto_array_allocation): Remove gcc_assert (!TREE_STATIC()).
+
2022-12-22 Harald Anlauf <anlauf@gmx.de>
PR fortran/69604
+2022-12-23 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/108131
+ * gfortran.dg/pr103505.f90: Adjust expected patterns.
+ * gfortran.dg/pr108131.f90: New test.
+
+2022-12-23 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/108116
+ * g++.dg/cpp0x/nsdmi-template24.C: New test.
+
+2022-12-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/108068
+ * gcc.dg/dfp/pr108068.c: New test.
+
+2022-12-23 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/107853
+ * g++.dg/cpp2a/concepts-friend12.C: New test.
+ * g++.dg/cpp2a/concepts-friend13.C: New test.
+
+2022-12-23 Roger Sayle <roger@nextmovesoftware.com>
+
+ PR target/107548
+ * gcc.target/i386/pr107548-1.c: New test V4SI case.
+ * gcc.target/i386/pr107548-2.c: New test V2DI case.
+
+2022-12-23 H.J. Lu <hjl.tools@gmail.com>
+ Roger Sayle <roger@nextmovesoftware.com>
+
+ PR target/106933
+ PR target/106959
+ * gcc.target/i386/pr106933-1.c: New test case.
+ * gcc.target/i386/pr106933-2.c: Likewise.
+ * gcc.target/i386/pr106959-1.c: Likewise.
+ * gcc.target/i386/pr106959-2.c: Likewise.
+ * gcc.target/i386/pr106959-3.c: Likewise.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.target/riscv/rvv/base/vle-constraint-1.c: New test.
+
+2022-12-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.target/riscv/rvv/base/vsetvl-1.c: Add "__riscv_" prefix.
+
+2022-12-23 Steve Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/106731
+ * gfortran.dg/pr106731.f90: New test.
+
+2022-12-23 Arsen Arsenović <arsen@aarsen.me>
+ Jonathan Wakely <jwakely@redhat.com>
+
+ * g++.dg/contracts/contracts-access1.C: Convert to new default
+ violation handler.
+ * g++.dg/contracts/contracts-assume2.C: Ditto.
+ * g++.dg/contracts/contracts-config1.C: Ditto.
+ * g++.dg/contracts/contracts-constexpr1.C: Ditto.
+ * g++.dg/contracts/contracts-ctor-dtor1.C: Ditto.
+ * g++.dg/contracts/contracts-deduced2.C: Ditto.
+ * g++.dg/contracts/contracts-friend1.C: Ditto.
+ * g++.dg/contracts/contracts-multiline1.C: Ditto.
+ * g++.dg/contracts/contracts-post3.C: Ditto.
+ * g++.dg/contracts/contracts-pre10.C: Ditto.
+ * g++.dg/contracts/contracts-pre2.C: Ditto.
+ * g++.dg/contracts/contracts-pre2a2.C: Ditto.
+ * g++.dg/contracts/contracts-pre3.C: Ditto.
+ * g++.dg/contracts/contracts-pre4.C: Ditto.
+ * g++.dg/contracts/contracts-pre5.C: Ditto.
+ * g++.dg/contracts/contracts-pre7.C: Ditto.
+ * g++.dg/contracts/contracts-pre9.C: Ditto.
+ * g++.dg/contracts/contracts-redecl3.C: Ditto.
+ * g++.dg/contracts/contracts-redecl4.C: Ditto.
+ * g++.dg/contracts/contracts-redecl6.C: Ditto.
+ * g++.dg/contracts/contracts-redecl7.C: Ditto.
+ * g++.dg/contracts/contracts-tmpl-spec1.C: Ditto.
+ * g++.dg/contracts/contracts-tmpl-spec2.C: Ditto.
+ * g++.dg/contracts/contracts-tmpl-spec3.C: Ditto.
+ * g++.dg/contracts/contracts10.C: Ditto.
+ * g++.dg/contracts/contracts14.C: Ditto.
+ * g++.dg/contracts/contracts15.C: Ditto.
+ * g++.dg/contracts/contracts16.C: Ditto.
+ * g++.dg/contracts/contracts17.C: Ditto.
+ * g++.dg/contracts/contracts19.C: Ditto.
+ * g++.dg/contracts/contracts25.C: Ditto.
+ * g++.dg/contracts/contracts3.C: Ditto.
+ * g++.dg/contracts/contracts35.C: Ditto.
+ * g++.dg/contracts/contracts5.C: Ditto.
+ * g++.dg/contracts/contracts7.C: Ditto.
+ * g++.dg/contracts/contracts9.C: Ditto.
+
2022-12-22 Jason Merrill <jason@redhat.com>
* g++.dg/coroutines/coro.h: #include <stdio.h> instead of
+2022-12-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config.host (i[34567]86-*-mingw*): Add thread fragment after EH one
+ as well as new i386/t-slibgcc-mingw fragment.
+ (x86_64-*-mingw*): Likewise.
+ * config/i386/gthr-win32.h: If _WIN32_WINNT is at least 0x0600, define
+ both __GTHREAD_HAS_COND and __GTHREADS_CXX0X to 1.
+ Error out if _GTHREAD_USE_MUTEX_TIMEDLOCK is 1.
+ Include stdlib.h instead of errno.h and do not include _mingw.h.
+ (CONST_CAST2): Add specific definition for C++.
+ (ATTRIBUTE_UNUSED): New macro.
+ (__UNUSED_PARAM): Delete.
+ Define WIN32_LEAN_AND_MEAN before including windows.h.
+ (__gthread_objc_data_tls): Use TLS_OUT_OF_INDEXES instead of (DWORD)-1.
+ (__gthread_objc_init_thread_system): Likewise.
+ (__gthread_objc_thread_get_data): Minor tweak.
+ (__gthread_objc_condition_allocate): Use ATTRIBUTE_UNUSED.
+ (__gthread_objc_condition_deallocate): Likewise.
+ (__gthread_objc_condition_wait): Likewise.
+ (__gthread_objc_condition_broadcast): Likewise.
+ (__gthread_objc_condition_signal): Likewise.
+ Include sys/time.h.
+ (__gthr_win32_DWORD): New typedef.
+ (__gthr_win32_HANDLE): Likewise.
+ (__gthr_win32_CRITICAL_SECTION): Likewise.
+ (__gthr_win32_CONDITION_VARIABLE): Likewise.
+ (__gthread_t): Adjust.
+ (__gthread_key_t): Likewise.
+ (__gthread_mutex_t): Likewise.
+ (__gthread_recursive_mutex_t): Likewise.
+ (__gthread_cond_t): New typedef.
+ (__gthread_time_t): Likewise.
+ (__GTHREAD_MUTEX_INIT_DEFAULT): Delete.
+ (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
+ (__GTHREAD_COND_INIT_FUNCTION): Define.
+ (__GTHREAD_TIME_INIT): Likewise.
+ (__gthr_i486_lock_cmp_xchg): Delete.
+ (__gthr_win32_create): Declare.
+ (__gthr_win32_join): Likewise.
+ (__gthr_win32_self): Likewise.
+ (__gthr_win32_detach): Likewise.
+ (__gthr_win32_equal): Likewise.
+ (__gthr_win32_yield): Likewise.
+ (__gthr_win32_mutex_destroy): Likewise.
+ (__gthr_win32_cond_init_function): Likewise if __GTHREADS_HAS_COND is 1.
+ (__gthr_win32_cond_broadcast): Likewise.
+ (__gthr_win32_cond_signal): Likewise.
+ (__gthr_win32_cond_wait): Likewise.
+ (__gthr_win32_cond_timedwait): Likewise.
+ (__gthr_win32_recursive_mutex_init_function): Delete.
+ (__gthr_win32_recursive_mutex_lock): Likewise.
+ (__gthr_win32_recursive_mutex_unlock): Likewise.
+ (__gthr_win32_recursive_mutex_destroy): Likewise.
+ (__gthread_create): New inline function.
+ (__gthread_join): Likewise.
+ (__gthread_self): Likewise.
+ (__gthread_detach): Likewise.
+ (__gthread_equal): Likewise.
+ (__gthread_yield): Likewise.
+ (__gthread_cond_init_function): Likewise if __GTHREADS_HAS_COND is 1.
+ (__gthread_cond_broadcast): Likewise.
+ (__gthread_cond_signal): Likewise.
+ (__gthread_cond_wait): Likewise.
+ (__gthread_cond_timedwait): Likewise.
+ (__GTHREAD_WIN32_INLINE): New macro.
+ (__GTHREAD_WIN32_COND_INLINE): Likewise.
+ (__GTHREAD_WIN32_ACTIVE_P): Likewise.
+ Define WIN32_LEAN_AND_MEAN before including windows.h.
+ (__gthread_once): Minor tweaks.
+ (__gthread_key_create): Use ATTRIBUTE_UNUSED and TLS_OUT_OF_INDEXES.
+ (__gthread_key_delete): Minor tweak.
+ (__gthread_getspecific): Likewise.
+ (__gthread_setspecific): Likewise.
+ (__gthread_mutex_init_function): Reimplement.
+ (__gthread_mutex_destroy): Likewise.
+ (__gthread_mutex_lock): Likewise.
+ (__gthread_mutex_trylock): Likewise.
+ (__gthread_mutex_unlock): Likewise.
+ (__gthr_win32_abs_to_rel_time): Declare.
+ (__gthread_recursive_mutex_init_function): Reimplement.
+ (__gthread_recursive_mutex_destroy): Likewise.
+ (__gthread_recursive_mutex_lock): Likewise.
+ (__gthread_recursive_mutex_trylock): Likewise.
+ (__gthread_recursive_mutex_unlock): Likewise.
+ (__gthread_cond_destroy): New inline function.
+ (__gthread_cond_wait_recursive): Likewise.
+ * config/i386/gthr-win32.c: Delete everything.
+ Include gthr-win32.h to get the out-of-line version of inline routines.
+ Add compile-time checks for the local version of the Win32 types.
+ * config/i386/gthr-win32-cond.c: New file.
+ * config/i386/gthr-win32-thread.c: Likewise.
+ * config/i386/t-gthr-win32: Add config/i386/gthr-win32-thread.c to the
+ EH part, config/i386/gthr-win32-cond.c and config/i386/gthr-win32.c to
+ the static version of libgcc.
+ * config/i386/t-slibgcc-mingw: New file.
+ * config/i386/libgcc-mingw.ver: Likewise.
+
2022-12-16 Thomas Neumann <tneumann@users.sourceforge.net>
* unwind-dw2-fde.c: Initialize fde object lazily when
+2022-12-23 Eric Botcazou <ebotcazou@adacore.com>
+
+ * acinclude.m4 (GLIBCXX_EXPORT_FLAGS): Substitute CPPFLAGS.
+ (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Set ac_has_sched_yield and
+ ac_has_win32_sleep to yes for MinGW. Change HAVE_WIN32_SLEEP
+ into _GLIBCXX_USE_WIN32_SLEEP.
+ (GLIBCXX_CHECK_GTHREADS): Add _WIN32_THREADS to compilation flags for
+ Win32 threads and force _GTHREAD_USE_MUTEX_TIMEDLOCK to 0 for them.
+ Add -D_WIN32_WINNT=0x0600 to compilation flags if yes was configured
+ and add it to CPPFLAGS on success.
+ * config.h.in: Regenerate.
+ * configure: Likewise.
+ * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32):
+ Define to 1.
+ * config/os/mingw32/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32): Ditto
+ * src/c++11/thread.cc (get_nprocs): Provide Win32 implementation if
+ _GLIBCXX_USE_GET_NPROCS_WIN32 is defined. Replace HAVE_WIN32_SLEEP
+ with USE_WIN32_SLEEP.
+ * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Add
+ missing conditional compilation.
+ * testsuite/lib/libstdc++.exp (check_v3_target_sleep): Add support for
+ _GLIBCXX_USE_WIN32_SLEEP.
+ (check_v3_target_nprocs): Likewise for _GLIBCXX_USE_GET_NPROCS_WIN32.
+
+2022-12-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add
+ definition.
+
+2022-12-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++20/tzdb.cc: Remove static_assert.
+
+2022-12-23 Arsen Arsenović <arsen@aarsen.me>
+ Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/107792
+ PR libstdc++/107778
+ * src/experimental/contract.cc (handle_contract_violation): Make
+ output more readable.
+
2022-12-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/105730