]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Daily bump.
authorGCC Administrator <gccadmin@gcc.gnu.org>
Sat, 13 Nov 2021 00:16:39 +0000 (00:16 +0000)
committerGCC Administrator <gccadmin@gcc.gnu.org>
Sat, 13 Nov 2021 00:16:39 +0000 (00:16 +0000)
ChangeLog
gcc/ChangeLog
gcc/DATESTAMP
gcc/analyzer/ChangeLog
gcc/fortran/ChangeLog
gcc/jit/ChangeLog
gcc/testsuite/ChangeLog
include/ChangeLog
libbacktrace/ChangeLog
libgomp/ChangeLog
libstdc++-v3/ChangeLog

index 63948b0d1f6ff851669a057b297a4e4d684bf237..4b8570bc9741febcde17b3bfd9bbae8f8918b525 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-11-12  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.def (configure-opcodes): Depend on configure-bfd.
+       * Makefile.in: Regenerate.
+
 2021-11-03  Maciej W. Rozycki  <macro@embecosm.com>
 
        * MAINTAINERS: Clarify the policy WRT the Write After Approval
index 7356889757bc63634aaae911d0fd514990f37ce4..6767e5348e826393c37891e31504f09f16644c59 100644 (file)
@@ -1,3 +1,229 @@
+2021-11-12  Stafford Horne  <shorne@gmail.com>
+
+       * config/or1k/or1k-protos.h (or1k_profile_hook): New function.
+       * config/or1k/or1k.h (PROFILE_HOOK): Change macro to reference
+       new function or1k_profile_hook.
+       * config/or1k/or1k.c (struct machine_function): Add new field
+       set_mcount_arg_insn.
+       (or1k_profile_hook): New function.
+       (or1k_init_pic_reg): Update to inject pic rtx after _mcount arg
+       when profiling.
+       (or1k_frame_pointer_required): Frame pointer no longer needed
+       when profiling.
+
+2021-11-12  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/103209
+       * tree-ssa-structalias.c (find_func_aliases_for_call): Fix
+       use of handle_rhs_call
+
+2021-11-12  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR tree-optimization/103202
+       * gimple-range-path.cc
+       (path_range_query::compute_ranges_in_block): Solve PHI imports first.
+
+2021-11-12  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-pure-const.c (propagate_pure_const): Remove redundant check;
+       fix call of ipa_make_function_const and ipa_make_function_pure.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_vector_op::n_advsimd_ops): Delete.
+       (aarch64_vector_op::m_seen_loads): Likewise.
+       (aarch64_vector_costs::aarch64_vector_costs): Don't push to
+       m_advsimd_ops.
+       (aarch64_vector_op::count_ops): Remove vectype and factor parameters.
+       Remove code that tries to predict different vec_flags from the
+       current loop's.
+       (aarch64_vector_costs::add_stmt_cost): Update accordingly.
+       Remove m_advsimd_ops handling.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_vector_costs::m_saw_sve_only_op)
+       (aarch64_sve_only_stmt_p): Delete.
+       (aarch64_vector_costs::prefer_unrolled_loop): New function,
+       extracted from adjust_body_cost.
+       (aarch64_vector_costs::better_main_loop_than_p): New function,
+       using heuristics extracted from adjust_body_cost and
+       adjust_body_cost_sve.
+       (aarch64_vector_costs::adjust_body_cost_sve): Remove
+       advsimd_cycles_per_iter and could_use_advsimd parameters.
+       Update after changes above.
+       (aarch64_vector_costs::adjust_body_cost): Update after changes above.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_vec_op_count::m_vf_factor):
+       New member variable.
+       (aarch64_vec_op_count::aarch64_vec_op_count): Add a parameter for it.
+       (aarch64_vec_op_count::vf_factor): New function.
+       (aarch64_vector_costs::aarch64_vector_costs): When costing for
+       neoverse-512tvb, pass a vf_factor of 2 for the Neoverse V1 version
+       of an SVE loop.
+       (aarch64_vector_costs::adjust_body_cost): Read the vf factor
+       instead of hard-coding 2.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c
+       (aarch64_vec_op_count::rename_cycles_per_iter): New function.
+       (aarch64_vec_op_count::min_nonpred_cycles_per_iter): Likewise.
+       (aarch64_vec_op_count::min_pred_cycles_per_iter): Likewise.
+       (aarch64_vec_op_count::min_cycles_per_iter): Likewise.
+       (aarch64_vec_op_count::dump): Move earlier in file.  Dump the
+       above properties too.
+       (aarch64_estimate_min_cycles_per_iter): Delete.
+       (adjust_body_cost): Use aarch64_vec_op_count::min_cycles_per_iter
+       instead of aarch64_estimate_min_cycles_per_iter.  Rely on the dump
+       routine to print CPI estimates.
+       (adjust_body_cost_sve): Likewise.  Use the other functions above
+       instead of doing the work inline.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_vec_op_count): Allow default
+       initialization.
+       (aarch64_vec_op_count::base_issue_info): Remove handling of null
+       issue_infos.
+       (aarch64_vec_op_count::simd_issue_info): Likewise.
+       (aarch64_vec_op_count::sve_issue_info): Likewise.
+       (aarch64_vector_costs::m_ops): Turn into a vector.
+       (aarch64_vector_costs::m_advsimd_ops): Likewise.
+       (aarch64_vector_costs::aarch64_vector_costs): Add entries to
+       the vectors based on aarch64_tune_params.
+       (aarch64_vector_costs::analyze_loop_vinfo): Update the pred_ops
+       of all entries in m_ops.
+       (aarch64_vector_costs::add_stmt_cost): Call count_ops for all
+       entries in m_ops.
+       (aarch64_estimate_min_cycles_per_iter): Remove issue_info
+       parameter and get the information from the ops instead.
+       (aarch64_vector_costs::adjust_body_cost_sve): Take a
+       aarch64_vec_issue_info instead of a aarch64_vec_op_count.
+       (aarch64_vector_costs::adjust_body_cost): Update call accordingly.
+       Exit earlier if m_ops is empty for either cost structure.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_vector_costs::m_scalar_ops)
+       (aarch64_vector_costs::m_sve_ops): Replace with...
+       (aarch64_vector_costs::m_ops): ...this.
+       (aarch64_vector_costs::analyze_loop_vinfo): Update accordingly.
+       (aarch64_vector_costs::adjust_body_cost_sve): Likewise.
+       (aarch64_vector_costs::aarch64_vector_costs): Likewise.
+       Initialize m_vec_flags here rather than in add_stmt_cost.
+       (aarch64_vector_costs::count_ops): Test for scalar reductions too.
+       Allow vectype to be null.
+       (aarch64_vector_costs::add_stmt_cost): Call count_ops for scalar
+       code too.  Don't require vectype to be nonnull.
+       (aarch64_vector_costs::adjust_body_cost): Take the loop_vec_info
+       and scalar costs as parameters.  Use the scalar costs to determine
+       the cycles per iteration of the scalar loop, then multiply it
+       by the estimated VF.
+       (aarch64_vector_costs::finish_cost): Update call accordingly.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_dr_type): New function.
+       (aarch64_vector_costs::count_ops): Use it rather than the
+       vectype to determine floatness.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_sve_in_loop_reduction_latency):
+       Remove vectype parameter and get floatness from the type of the
+       stmt lhs instead.
+       (arch64_in_loop_reduction_latency): Likewise.
+       (aarch64_detect_vector_stmt_subtype): Update caller.
+       (aarch64_vector_costs::count_ops): Likewise.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_sve_op_count): Fold into...
+       (aarch64_vec_op_count): ...this.  Add a constructor.
+       (aarch64_vec_op_count::vec_flags): New function.
+       (aarch64_vec_op_count::base_issue_info): Likewise.
+       (aarch64_vec_op_count::simd_issue_info): Likewise.
+       (aarch64_vec_op_count::sve_issue_info): Likewise.
+       (aarch64_vec_op_count::m_issue_info): New member variable.
+       (aarch64_vec_op_count::m_vec_flags): Likewise.
+       (aarch64_vector_costs): Add a constructor.
+       (aarch64_vector_costs::m_sve_ops): Change type to aarch64_vec_op_count.
+       (aarch64_vector_costs::aarch64_vector_costs): New function.
+       Initialize m_scalar_ops, m_advsimd_ops and m_sve_ops.
+       (aarch64_vector_costs::count_ops): Remove vec_flags and
+       issue_info parameters, using the new aarch64_vec_op_count
+       functions instead.
+       (aarch64_vector_costs::add_stmt_cost): Update call accordingly.
+       (aarch64_sve_op_count::dump): Fold into...
+       (aarch64_vec_op_count::dump): ..here.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c: Include tree-dfa.h.
+       (aarch64_check_consecutive_mems): New function that takes MEM_EXPR
+       and MEM_OFFSET into account.
+       (aarch64_swap_ldrstr_operands): Use it.
+       (aarch64_operands_ok_for_ldpstp): Likewise.  Check that the
+       address of the second memory doesn't depend on the result of
+       the first load.
+
+2021-11-12  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-pure-const.c (ipa_make_function_pure): Fix exit condition.
+
+2021-11-12  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/103175
+       * ipa-modref.c (modref_lattice::merge): Add sanity check.
+       (callee_to_caller_flags): Make flags adjustment sane.
+       (modref_eaf_analysis::analyze_ssa_name): Likewise.
+
+2021-11-12  Jan Hubicka  <jh@suse.cz>
+
+       PR ipa/103200
+       * ipa-modref.c (analyze_function, modref_propagate_in_scc): Do
+       not mark pure/const function if there are side-effects.
+
+2021-11-12  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * tree.h (OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P): New access macro for
+       'implicit' bit, using 'base.deprecated_flag' field of tree_node.
+       * tree-pretty-print.c (dump_omp_clause): Add support for printing
+       implicit attribute in tree dumping.
+       * gimplify.c (gimplify_adjust_omp_clauses_1):
+       Set OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P to 1 if map clause is implicitly
+       created.
+       (gimplify_adjust_omp_clauses): Adjust place of adding implicitly created
+       clauses, from simple append, to starting of list, after non-map clauses.
+       * omp-low.c (lower_omp_target): Add GOMP_MAP_IMPLICIT bits into kind
+       values passed to libgomp for implicit maps.
+
+2021-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * omp-builtins.def (BUILT_IN_GOMP_TEAMS): Remove.
+       (BUILT_IN_GOMP_TEAMS4): New.
+       * builtin-types.def (BT_FN_VOID_UINT_UINT): Remove.
+       (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New.
+       * omp-low.c (lower_omp_teams): Use GOMP_teams4 instead of
+       GOMP_teams, pass to it also num_teams lower-bound expression
+       or a dup of upper-bound if it is missing and a flag whether
+       it is the first call or not.
+
+2021-11-12  Martin Liska  <mliska@suse.cz>
+
+       PR tree-optimization/102497
+       * gimple-predicate-analysis.cc (add_pred): Remove unused
+       function:
+
+2021-11-12  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/103204
+       * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the
+       top operand after folding in an address.
+
 2021-11-11  Aldy Hernandez  <aldyh@redhat.com>
 
        * gimple-range-path.cc (path_range_query::path_range_query): New
index 966610a0bddeb726b99e76587be8f3973e49578a..f0484966df27e534a163cd478e086d072619082c 100644 (file)
@@ -1 +1 @@
-20211112
+20211113
index 0a1bf12e6324b854b7c8865763d333fd237479ee..f6bf272628443624826b737bf95887d47a835332 100644 (file)
@@ -1,3 +1,8 @@
+2021-11-12  David Malcolm  <dmalcolm@redhat.com>
+
+       * engine.cc (exploded_node::on_stmt_pre): Return when handling
+       "__analyzer_dump_state".
+
 2021-11-11  Richard Biener  <rguenther@suse.de>
 
        * supergraph.cc: Include bitmap.h.
index 09071cb8a93a0441ae294ce649b6e1c2533ff291..0216f126dd953b4353f713d18714d5f98612ab33 100644 (file)
@@ -1,3 +1,45 @@
+2021-11-12  Tobias Burnus  <tobias@codesourcery.com>
+
+       * parse.c (decode_omp_directive): Fix permitting 'nowait' for some
+       combined directives, add missing 'omp end ... loop'.
+       (gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result.
+       * openmp.c (resolve_omp_clauses): Add missing combined loop constructs
+       case values to the 'if(directive-name: ...)' check.
+       * trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if
+       first leaf construct accepting it.
+
+2021-11-12  Martin Jambor  <mjambor@suse.cz>
+
+       * trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl
+       instead of building DEBUG_EXPR_DECL manually.
+
+2021-11-12  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/97896
+       * intrinsic.c (add_sym_4ind): Remove.
+       (add_functions): Use add_sym4 instead of add_sym4ind.
+       Don’t special case the index intrinsic.
+       * iresolve.c (gfc_resolve_index_func): Use the individual arguments
+       directly instead of the full argument list.
+       * intrinsic.h (gfc_resolve_index_func): Update the declaration
+       accordingly.
+       * trans-decl.c (gfc_get_extern_function_decl): Don’t modify the
+       list of arguments in the case of the index intrinsic.
+       * trans-array.h (gfc_get_intrinsic_for_expr,
+       gfc_get_proc_ifc_for_expr): New.
+       * trans-array.c (gfc_get_intrinsic_for_expr,
+       arg_evaluated_for_scalarization): New.
+       (gfc_walk_elemental_function_args): Add intrinsic procedure
+       as argument.  Count arguments.  Check arg_evaluated_for_scalarization.
+       * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
+       * trans-stmt.c (get_intrinsic_for_code): New.
+       (gfc_trans_call): Update call.
+
+2021-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * types.def (BT_FN_VOID_UINT_UINT): Remove.
+       (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New.
+
 2021-11-11  Tobias Burnus  <tobias@codesourcery.com>
 
        * gfortran.h (struct gfc_omp_clauses): Rename num_teams to
index 334fd3942e89a15e3036de5fae79f39d4d2189fd..d7f7cc5dd9cae854b603b9055b942beed19a3429 100644 (file)
@@ -1,3 +1,11 @@
+2021-11-12  David Malcolm  <dmalcolm@redhat.com>
+
+       PR jit/103199
+       * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile):
+       Increase size of buffer.
+       * docs/examples/tut04-toyvm/toyvm.cc
+       (compilation_state::create_function): Likewise.
+
 2021-09-10  Petter Tomner  <tomner@kth.se>
 
        * jit-playback.c: Moved global var processing to after loc handling.
index 0911163582adb1f2c086c89ee8d0e9bd72c4000b..99120299b9c743e3a990d64a2136bb7ee134d3cb 100644 (file)
@@ -1,3 +1,44 @@
+2021-11-12  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/103209
+       * gcc.dg/tree-ssa/pta-callused.c: Update template.
+       * gcc.c-torture/execute/pr103209.c: New test.
+
+2021-11-12  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * gcc.target/aarch64/stp_1.c: New test.
+
+2021-11-12  Tobias Burnus  <tobias@codesourcery.com>
+
+       * gfortran.dg/gomp/unexpected-end.f90: Update dg-error.
+       * gfortran.dg/gomp/clauses-1.f90: New test.
+       * gfortran.dg/gomp/nowait-2.f90: New test.
+       * gfortran.dg/gomp/nowait-3.f90: New test.
+
+2021-11-12  Martin Liska  <mliska@suse.cz>
+
+       PR testsuite/103051
+       * gcc.dg/vect/tsvc/vect-tsvc-s112.c: Skip test for old Power
+       CPUs.
+
+2021-11-12  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * c-c++-common/gomp/target-implicit-map-1.c: New test.
+       * c-c++-common/goacc/combined-reduction.c: Adjust scan test pattern.
+       * c-c++-common/goacc/firstprivate-mappings-1.c: Likewise.
+       * c-c++-common/goacc/mdc-1.c: Likewise.
+       * g++.dg/goacc/firstprivate-mappings-1.C: Likewise.
+
+2021-11-12  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/97896
+       * gfortran.dg/index_5.f90: New.
+
+2021-11-12  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/103204
+       * gcc.dg/torture/pr103204.c: New testcase.
+
 2021-11-11  Bill Schmidt  <wschmidt@linux.ibm.com>
 
        * gcc.target/powerpc/test_mffsl.c: Require Power9.
index 0f69b44638f6c8ceb5030f10b2c5e17b82a883a1..67c067254bf8d3466b1a11736787d28aa61ea2eb 100644 (file)
@@ -1,3 +1,11 @@
+2021-11-12  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_3): Define special bit macro.
+       (GOMP_MAP_IMPLICIT): New special map kind bits value.
+       (GOMP_MAP_FLAG_SPECIAL_BITS): Define helper mask for whole set of
+       special map kind bits.
+       (GOMP_MAP_IMPLICIT_P): New predicate macro for implicit map kinds.
+
 2021-11-05  Gerald Pfeifer  <gerald@pfeifer.com>
            Jakub Jelinek  <jakub@redhat.com>
 
index 2c8a8a4de0e6eaff0b0359e614049fc6a52c8071..983f81672fb1d1c7e9fd93b5dca273acc57dae2a 100644 (file)
@@ -1,3 +1,10 @@
+2021-11-12  Martin Liska  <mliska@suse.cz>
+
+       PR libbacktrace/103167
+       * elf.c (elf_uncompress_lzma_block): Cast to unsigned int.
+       (elf_uncompress_lzma): Likewise.
+       * xztest.c (test_samples): memcpy only if v > 0.
+
 2021-10-22  Martin Liska  <mliska@suse.cz>
 
        PR testsuite/102742
index 26a8476961acb41dec2f427a45390fe97e061861..ed26b8d543f52ab361cd4f9bf17c6bf63d606673 100644 (file)
@@ -1,3 +1,34 @@
+2021-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/103201
+       * config/gcn/icv-device.c (omp_get_num_teams, omp_get_team_num): Move
+       to ...
+       * config/gcn/teams.c: ... here.  New file.
+
+2021-11-12  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * target.c (gomp_map_vars_existing): Add 'bool implicit' parameter, add
+       implicit map handling to allow a "superset" existing map as valid case.
+       (get_kind): Adjust to filter out GOMP_MAP_IMPLICIT bits in return value.
+       (get_implicit): New function to extract implicit status.
+       (gomp_map_fields_existing): Adjust arguments in calls to
+       gomp_map_vars_existing, and add uses of get_implicit.
+       (gomp_map_vars_internal): Likewise.
+       * testsuite/libgomp.c-c++-common/target-implicit-map-1.c: New test.
+
+2021-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * libgomp_g.h (GOMP_teams4): Declare.
+       * libgomp.map (GOMP_5.1): Export GOMP_teams4.
+       * target.c (GOMP_teams4): New function.
+       * config/nvptx/target.c (GOMP_teams): Remove.
+       (GOMP_teams4): New function.
+       * config/gcn/target.c (GOMP_teams): Remove.
+       (GOMP_teams4): New function.
+       * testsuite/libgomp.c/teams-4.c (main): Expect exactly 2
+       teams instead of <= 2.
+       * testsuite/libgomp.c-c++-common/teams-2.c: New test.
+
 2021-11-11  Tobias Burnus  <tobias@codesourcery.com>
 
        * testsuite/libgomp.fortran/teams-1.f90: New test.
index e0f5f6230e243a453aaa26d536a8904332db4883..34a130ea6686c8161b927efbe1c0984b83f50417 100644 (file)
@@ -1,3 +1,88 @@
+2021-11-12  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/59675
+       * acinclude.m4 (libtool_VERSION): Bump version.
+       * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
+       export new symbol.
+       * configure: Regenerate.
+       * include/bits/c++config (__replacement_assert): Remove, declare
+       __glibcxx_assert_fail instead.
+       * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
+       replace __replacement_assert, writing to stderr instead of
+       stdout.
+       * testsuite/util/testsuite_abi.cc: Update latest version.
+
+2021-11-12  Jonathan Wakely  <jwakely@redhat.com>
+           Josh Marshall  <joshua.r.marshall.1991@gmail.com>
+
+       * include/bits/alloc_traits.h (_Destroy): Make constexpr for
+       C++20 mode.
+       * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
+       Likewise.
+       * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
+       overload constexpr for C++20.
+       * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
+       of inline namespace.
+       (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
+       (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
+       (vector<bool, A>>): Add constexpr to every member function.
+       (_Bvector_base::_M_allocate): Initialize storage during constant
+       evaluation.
+       (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
+       instead of memset.
+       (__fill_bvector_n): New helper function to replace memset during
+       constant evaluation.
+       * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
+       Move logic to ...
+       (__do_uninit_copy): New function.
+       (__uninitialized_fill<false>): Move logic to ...
+       (__do_uninit_fill): New function.
+       (__uninitialized_fill_n<false>): Move logic to ...
+       (__do_uninit_fill_n): New function.
+       (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
+       (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
+       Add constexpr.
+       (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
+       (__uninitialized_fill_n_a): Add constexpr. Use
+       __do_uninit_fill_n.
+       (__uninitialized_default_n, __uninitialized_default_n_a)
+       (__relocate_a_1, __relocate_a): Add constexpr.
+       * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
+       (_Vector_base, vector): Add constexpr to every member function.
+       (_Vector_impl::_S_adjust): Disable ASan annotation during
+       constant evaluation.
+       (_Vector_base::_S_use_relocate): Disable bitwise-relocation
+       during constant evaluation.
+       (vector::_Temporary_value): Use a union for storage.
+       * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
+       to every member function.
+       * include/std/vector (erase_if, erase): Add constexpr.
+       * testsuite/23_containers/headers/vector/synopsis.cc: Add
+       constexpr for C++20 mode.
+       * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
+       compile-only test using constant expressions.
+       * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
+       namespace for _S_word_bit.
+       * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
+       Likewise.
+       * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
+       * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
+       for C++20 and move C++17 test to ...
+       * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
+       * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
+       * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
+       * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
+       * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
+       * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
+       * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
+       * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
+       * testsuite/23_containers/vector/cons/constexpr.cc: New test.
+       * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
+       * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
+       * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
+       * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
+       * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
+
 2021-11-11  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/debug/deque (deque::operator=(const deque&)): Remove