[gcc(refs/vendors/redhat/heads/gcc-16-branch)] Merge commit 'r16-6248-g1c555ba67a34ced2460a065eac05ae2e2693ca4d' into redhat/gcc-16-branch
Jakub Jelinek
jakub@gcc.gnu.org
Thu Dec 18 15:53:37 GMT 2025
https://gcc.gnu.org/g:f73d23f06a1b8aa7cdce95a6092c0ce0f5650a00
commit f73d23f06a1b8aa7cdce95a6092c0ce0f5650a00
Merge: a6b13f8f708c 1c555ba67a34
Author: Jakub Jelinek <jakub@redhat.com>
Date: Thu Dec 18 16:53:07 2025 +0100
Merge commit 'r16-6248-g1c555ba67a34ced2460a065eac05ae2e2693ca4d' into redhat/gcc-16-branch
Diff:
ChangeLog | 8 +
MAINTAINERS | 3 +-
contrib/ChangeLog | 5 +
contrib/test_installed | 14 +
gcc/ChangeLog | 581 +
gcc/DATESTAMP | 2 +-
gcc/Makefile.in | 4 +-
gcc/ada/ChangeLog | 13 +
gcc/ada/sem_attr.adb | 21 +-
gcc/algol68/ChangeLog | 69 +
gcc/algol68/a68-imports.cc | 109 +-
gcc/algol68/a68-lang.cc | 43 +-
gcc/algol68/a68-parser-bottom-up.cc | 2 +
gcc/algol68/a68-parser-pragmat.cc | 5 +
gcc/algol68/a68-parser-scanner.cc | 75 +-
gcc/algol68/a68.h | 3 +
gcc/algol68/ga68.texi | 40 +
gcc/algol68/lang.opt | 18 +
gcc/algol68/lang.opt.urls | 12 +
gcc/analyzer/ChangeLog | 51 +
gcc/analyzer/checker-event.cc | 6 +
gcc/analyzer/checker-event.h | 3 +
gcc/analyzer/engine.cc | 26 +-
gcc/analyzer/ops.cc | 9 +-
gcc/analyzer/ops.h | 8 +-
gcc/analyzer/region-model-manager.cc | 5 +
gcc/analyzer/region-model.cc | 40 +-
gcc/analyzer/region-model.h | 3 +-
gcc/analyzer/supergraph-fixup-locations.cc | 5 +-
gcc/analyzer/supergraph-sorting.cc | 9 +-
gcc/analyzer/supergraph.cc | 10 +-
gcc/asan.cc | 231 +-
gcc/asan.h | 10 +-
gcc/builtins.def | 1 +
gcc/c-family/c-common.cc | 4 +-
gcc/c-family/c-omp.cc | 1 +
gcc/c/c-parser.cc | 1 +
gcc/cfgexpand.cc | 29 +-
gcc/cgraph.cc | 150 +-
gcc/cgraph.h | 202 +-
gcc/cgraphclones.cc | 17 +-
gcc/cgraphunit.cc | 3 +-
gcc/common.opt | 4 +
gcc/common.opt.urls | 3 +
gcc/common/config/aarch64/aarch64-common.cc | 87 +-
gcc/common/config/i386/cpuinfo.h | 25 +
gcc/common/config/i386/i386-common.cc | 26 +-
gcc/common/config/i386/i386-cpuinfo.h | 2 +
gcc/common/config/i386/i386-isas.h | 1 +
gcc/config.gcc | 13 +-
gcc/config.in | 6 +
gcc/config/aarch64/aarch64-arches.def | 1 +
gcc/config/aarch64/aarch64-builtins.cc | 7 +-
gcc/config/aarch64/aarch64-c.cc | 3 +
gcc/config/aarch64/aarch64-cores.def | 2 +
gcc/config/aarch64/aarch64-feature-deps.h | 23 +-
gcc/config/aarch64/aarch64-linux.h | 4 +-
gcc/config/aarch64/aarch64-option-extensions.def | 87 +-
gcc/config/aarch64/aarch64-protos.h | 3 +
gcc/config/aarch64/aarch64-sve-builtins-sve2.def | 8 +-
gcc/config/aarch64/aarch64-tune.md | 2 +-
gcc/config/aarch64/aarch64.cc | 326 +-
gcc/config/aarch64/aarch64.h | 15 +-
gcc/config/aarch64/aarch64.md | 128 +-
gcc/config/aarch64/aarch64.opt | 5 +
gcc/config/aarch64/constraints.md | 21 +
gcc/config/aarch64/cygming.h | 14 +
gcc/config/aarch64/iterators.md | 20 +
gcc/config/aarch64/olympus.md | 199 +
gcc/config/aarch64/predicates.md | 13 +-
gcc/config/aarch64/tuning_models/olympus.h | 363 +-
gcc/config/avr/avr-protos.h | 2 -
gcc/config/avr/avr.cc | 156 +-
gcc/config/i386/avx10_2bf16intrin.h | 72 +-
gcc/config/i386/avx512bmmintrin.h | 89 +
gcc/config/i386/avx512bmmvlintrin.h | 118 +
gcc/config/i386/cpuid.h | 3 +
gcc/config/i386/cygming.h | 24 +
gcc/config/i386/driver-i386.cc | 5 +
gcc/config/i386/i386-builtin.def | 8 +
gcc/config/i386/i386-c.cc | 9 +
gcc/config/i386/i386-isa.def | 1 +
gcc/config/i386/i386-options.cc | 10 +-
gcc/config/i386/i386.cc | 2 +-
gcc/config/i386/i386.h | 3 +
gcc/config/i386/i386.md | 2 +-
gcc/config/i386/i386.opt | 4 +
gcc/config/i386/i386.opt.urls | 3 +
gcc/config/i386/immintrin.h | 4 +
gcc/config/i386/sse.md | 57 +
gcc/config/i386/x86-tune-sched.cc | 2 +
gcc/config/i386/x86-tune.def | 18 +-
gcc/config/i386/xmmintrin.h | 12 +-
gcc/config/loongarch/loongarch.cc | 7 +-
gcc/config/riscv/sync.md | 54 +-
gcc/config/xtensa/xtensa.cc | 135 +-
gcc/configure | 38 +-
gcc/configure.ac | 23 +
gcc/cp/ChangeLog | 91 +
gcc/cp/constraint.cc | 20 +-
gcc/cp/cp-tree.h | 56 +-
gcc/cp/decl.cc | 25 +-
gcc/cp/error.cc | 7 +-
gcc/cp/module.cc | 11 +-
gcc/cp/parser.cc | 59 +-
gcc/cp/parser.h | 2 +-
gcc/cp/pt.cc | 38 +-
gcc/cp/rtti.cc | 9 +-
gcc/cselib.cc | 8 +-
gcc/doc/extend.texi | 6 +
gcc/doc/install.texi | 4 +
gcc/doc/invoke.texi | 58 +-
gcc/doc/md.texi | 10 +
gcc/doc/tm.texi | 6 +-
gcc/flag-types.h | 4 +
gcc/fortran/dump-parse-tree.cc | 14 +
gcc/fortran/openmp.cc | 75 +-
gcc/fortran/trans-openmp.cc | 24 +
gcc/gcc.cc | 12 +
gcc/gengtype.cc | 1 +
gcc/gimplify.cc | 7 +-
gcc/haifa-sched.cc | 7 +-
gcc/internal-fn.cc | 77 +-
gcc/internal-fn.def | 1 +
gcc/ipa-cp.cc | 98 +-
gcc/ipa-devirt.cc | 215 +-
gcc/ipa-inline.cc | 2 +-
gcc/ipa-profile.cc | 2 +-
gcc/ipa-prop.cc | 722 +-
gcc/ipa-prop.h | 5 +
gcc/ipa-utils.h | 23 +-
gcc/ipa.cc | 2 +-
gcc/lto-cgraph.cc | 24 +-
gcc/m2/ChangeLog | 18 +
gcc/m2/gm2-compiler/P3SymBuild.mod | 31 +-
gcc/m2/gm2-libs/FIO.def | 30 +-
gcc/m2/gm2-libs/FIO.mod | 53 +-
gcc/omp-low.cc | 9 +
gcc/opts-common.cc | 17 +-
gcc/opts.cc | 31 +-
gcc/params.opt | 8 +
gcc/predict.cc | 2 +-
gcc/rust/ChangeLog | 308 +
gcc/rust/ast/rust-ast-collector.cc | 3218 ++--
gcc/rust/ast/rust-ast-collector.h | 49 +-
gcc/rust/ast/rust-ast-dump.cc | 15 +-
gcc/rust/ast/rust-ast-dump.h | 53 +-
gcc/rust/ast/rust-ast.cc | 14 +-
gcc/rust/ast/rust-ast.h | 23 +-
gcc/rust/ast/rust-expr.h | 10 +-
gcc/rust/ast/rust-item.h | 16 +-
gcc/rust/ast/rust-macro.h | 2 +-
gcc/rust/expand/rust-macro-builtins-include.cc | 3 +-
gcc/rust/expand/rust-macro-builtins-offset-of.cc | 4 +-
gcc/rust/expand/rust-macro-expand.cc | 8 +-
gcc/rust/hir/rust-ast-lower.cc | 4 +-
gcc/rust/parse/rust-parse-error.h | 326 +
gcc/rust/parse/rust-parse-impl-attribute.hxx | 390 +
gcc/rust/parse/rust-parse-impl-expr.hxx | 4106 ++++++
gcc/rust/parse/rust-parse-impl-lexer.cc | 2 +-
gcc/rust/parse/rust-parse-impl-macro.cc | 2 +-
gcc/rust/parse/rust-parse-impl-macro.hxx | 621 +
gcc/rust/parse/rust-parse-impl-path.hxx | 679 +
gcc/rust/parse/rust-parse-impl-pattern.hxx | 1253 ++
gcc/rust/parse/rust-parse-impl-proc-macro.cc | 4 +-
gcc/rust/parse/rust-parse-impl-ttree.hxx | 158 +
gcc/rust/parse/rust-parse-impl-utils.hxx | 252 +
gcc/rust/parse/rust-parse-impl.h | 14596 -------------------
gcc/rust/parse/rust-parse-impl.hxx | 7205 +++++++++
gcc/rust/parse/rust-parse-utils.h | 127 +
gcc/rust/parse/rust-parse.h | 142 +-
gcc/rust/rust-session-manager.cc | 83 +-
gcc/rust/rust-session-manager.h | 17 +
gcc/sanopt.cc | 2 +-
gcc/target-insns.def | 2 +
gcc/target.def | 10 +-
gcc/testsuite/ChangeLog | 250 +
.../compile/error-compile-unknown-tag-1.a68 | 6 +-
.../algol68/compile/error-module-coercions-1.a68 | 9 +-
.../algol68/compile/error-module-ranges-1.a68 | 5 -
gcc/testsuite/algol68/compile/module-2.a68 | 8 -
.../algol68/compile/module-pub-mangling-1.a68 | 6 -
.../algol68/compile/module-pub-mangling-2.a68 | 6 -
.../algol68/compile/module-pub-mangling-3.a68 | 6 -
.../algol68/compile/module-pub-mangling-4.a68 | 6 -
.../algol68/compile/module-pub-mangling-5.a68 | 6 -
.../algol68/compile/module-pub-mangling-6.a68 | 8 -
gcc/testsuite/algol68/compile/modules/compile.exp | 5 +-
.../algol68/compile/warning-module-hidding-1.a68 | 8 +-
.../algol68/execute/modules/Modules20.map | 2 +
gcc/testsuite/algol68/execute/modules/execute.exp | 6 +-
.../algol68/execute/modules/module-bar.a68 | 1 +
.../algol68/execute/modules/module-foo.a68 | 1 +
gcc/testsuite/algol68/execute/modules/module11.a68 | 4 +-
.../algol68/execute/modules/program-19.a68 | 6 +
.../algol68/execute/modules/program-20.a68 | 6 +
gcc/testsuite/c-c++-common/analyzer/arith-1.c | 13 +
.../analyzer/infinite-recursion-pr122975.c | 5 +
.../c-c++-common/analyzer/strlen-pr123085.c | 8 +
.../c-c++-common/gomp/target-device-type-1.c | 24 +
gcc/testsuite/g++.dg/cpp0x/noexcept91a.C | 26 +
.../g++.dg/cpp23/class-deduction-inherited10.C | 11 +
.../g++.dg/cpp23/class-deduction-inherited9.C | 31 +
gcc/testsuite/g++.dg/cpp26/literals2.C | 1 +
gcc/testsuite/g++.dg/cpp2a/concepts-lambda25.C | 28 +
gcc/testsuite/g++.dg/modules/lambda-13.h | 22 +
gcc/testsuite/g++.dg/modules/lambda-13_a.H | 6 +
gcc/testsuite/g++.dg/modules/lambda-13_b.C | 6 +
gcc/testsuite/g++.dg/parse/pr121443.C | 11 +
gcc/testsuite/g++.dg/plugin/plugin.exp | 6 +-
gcc/testsuite/g++.dg/template/crash133.C | 6 +
gcc/testsuite/g++.dg/template/dependent-name19.C | 22 +
gcc/testsuite/g++.dg/vect/pr64410.cc | 5 +-
gcc/testsuite/g++.target/i386/mv29.C | 6 +
gcc/testsuite/gcc.dg/gomp/static-chunk-size-one.c | 2 +-
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-1_0.c | 41 +
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-1_1.c | 19 +
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-2_0.c | 43 +
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-2_1.c | 22 +
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-3_0.c | 43 +
gcc/testsuite/gcc.dg/lto/fnptr-from-rec-3_1.c | 19 +
.../crash-test-nested-write-through-null-html.py | 3 +-
.../crash-test-nested-write-through-null-sarif.py | 3 +-
.../plugin/crash-test-write-through-null-stderr.c | 2 +-
.../gcc.dg/plugin/diagnostic-test-graphs-html.c | 2 +-
gcc/testsuite/gcc.dg/plugin/plugin.exp | 6 +-
gcc/testsuite/gcc.dg/pr122343-1.c | 9 +
gcc/testsuite/gcc.dg/pr123110-1.c | 31 +
.../torture/builtin-shufflevector-pr123156.c | 40 +
gcc/testsuite/gcc.dg/tree-ssa/copy-headers-13.c | 25 +
gcc/testsuite/gcc.dg/vect/vect-early-break_40.c | 3 +-
.../gcc.dg/vect/vect-uncounted-prolog-peel_1.c | 23 +
gcc/testsuite/gcc.dg/vect/vect-uncounted-run_1.c | 56 +
gcc/testsuite/gcc.dg/vect/vect-uncounted-run_2.c | 41 +
gcc/testsuite/gcc.dg/vect/vect-uncounted-run_3.c | 42 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_1.c | 24 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_2.c | 21 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_3.c | 27 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_4.c | 22 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_5.c | 20 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_6.c | 24 +
gcc/testsuite/gcc.dg/vect/vect-uncounted_7.c | 24 +
gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c | 4 +-
gcc/testsuite/gcc.target/aarch64/memtag/alloca-1.c | 15 +
gcc/testsuite/gcc.target/aarch64/memtag/alloca-2.c | 15 +
gcc/testsuite/gcc.target/aarch64/memtag/alloca-3.c | 28 +
.../gcc.target/aarch64/memtag/arguments-1.c | 3 +
.../gcc.target/aarch64/memtag/arguments-2.c | 3 +
.../gcc.target/aarch64/memtag/arguments-3.c | 3 +
.../gcc.target/aarch64/memtag/arguments-4.c | 16 +
.../gcc.target/aarch64/memtag/arguments.c | 3 +
gcc/testsuite/gcc.target/aarch64/memtag/basic-1.c | 14 +
gcc/testsuite/gcc.target/aarch64/memtag/basic-3.c | 28 +
.../gcc.target/aarch64/memtag/basic-struct.c | 22 +
.../aarch64/memtag/cfi-mte-memtag-frame-1.c | 11 +
.../gcc.target/aarch64/memtag/large-array.c | 23 +
.../gcc.target/aarch64/memtag/local-no-escape.c | 22 +
gcc/testsuite/gcc.target/aarch64/memtag/memtag.exp | 32 +
gcc/testsuite/gcc.target/aarch64/memtag/mte-sig.h | 15 +
.../aarch64/memtag/no-sanitize-attribute.c | 18 +
gcc/testsuite/gcc.target/aarch64/memtag/texec-1.c | 27 +
gcc/testsuite/gcc.target/aarch64/memtag/texec-2.c | 22 +
gcc/testsuite/gcc.target/aarch64/memtag/texec-3.c | 37 +
.../gcc.target/aarch64/memtag/value-init.c | 14 +
.../gcc.target/aarch64/memtag/vararray-gimple.c | 16 +
gcc/testsuite/gcc.target/aarch64/memtag/vararray.c | 15 +
gcc/testsuite/gcc.target/aarch64/memtag/vla-1.c | 39 +
gcc/testsuite/gcc.target/aarch64/memtag/vla-2.c | 48 +
.../gcc.target/aarch64/memtag/zero-init.c | 14 +
gcc/testsuite/gcc.target/aarch64/options_set_30.c | 10 +
.../gcc.target/aarch64/pragma_cpp_predefs_5.c | 221 +
.../aarch64/sve/acle/general/attributes_1.c | 4 +
.../aarch64/sve/acle/general/attributes_9.c | 9 +
gcc/testsuite/gcc.target/i386/avx512bmm-1.c | 26 +
gcc/testsuite/gcc.target/i386/avx512bmmvl-1.c | 35 +
gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 +
gcc/testsuite/gcc.target/i386/pr120881-1a.c | 2 +-
gcc/testsuite/gcc.target/i386/pr120881-1b.c | 2 +-
gcc/testsuite/gcc.target/i386/pr121572-1a.c | 2 +-
.../gcc.target/i386/shift-gf2p8affine-2.c | 1 +
gcc/testsuite/gcc.target/loongarch/pr123171.c | 54 +
.../gcc.target/loongarch/vect-mode-tieable.c | 47 +
.../loongarch/vector/lasx/vect-extract-256-128.c | 6 +-
gcc/testsuite/gfortran.dg/bessel_6.f90 | 1 +
gcc/testsuite/gfortran.dg/erf_2.F90 | 1 +
.../gfortran.dg/gomp/target-device-type-1.f90 | 21 +
.../gfortran.dg/integer_exponentiation_3.F90 | 1 +
.../gfortran.dg/integer_exponentiation_5.F90 | 1 +
gcc/testsuite/gfortran.dg/pr122936.f90 | 43 +
gcc/testsuite/gm2/pim/fail/badprocedure.mod | 7 +
gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod | 181 +-
gcc/testsuite/gm2/pimlib/run/pass/testclose.mod | 41 +
gcc/testsuite/gnat.dg/reduce4.adb | 9 +
gcc/testsuite/gnat.dg/reduce5.adb | 36 +
gcc/testsuite/lib/algol68-dg.exp | 6 +-
gcc/testsuite/lib/algol68-torture.exp | 6 -
gcc/testsuite/lib/plugin-support.exp | 19 +-
gcc/testsuite/lib/target-supports.exp | 46 +-
gcc/testsuite/obj-c++.dg/plugin/plugin.exp | 6 +-
gcc/testsuite/objc.dg/plugin/plugin.exp | 6 +-
gcc/testsuite/rust/compile/issue-4301.rs | 3 +
.../rust/compile/macros/mbe/macro-issue3608.rs | 2 -
gcc/trans-mem.cc | 10 +-
gcc/tree-cfg.cc | 73 +-
gcc/tree-cfg.h | 2 +-
gcc/tree-cfgcleanup.cc | 9 +-
gcc/tree-ssa-ifcombine.cc | 22 +-
gcc/tree-ssa-loop-ch.cc | 8 +-
gcc/tree-vect-data-refs.cc | 13 +-
gcc/tree-vect-loop-manip.cc | 240 +-
gcc/tree-vect-loop.cc | 130 +-
gcc/tree-vectorizer.cc | 2 +-
gcc/tree-vectorizer.h | 32 +-
gcc/var-tracking.cc | 3 +-
libga68/ChangeLog | 5 +
libga68/ga68-unistr.c | 2 +-
libga68/ga68.h | 3 -
libgcc/ChangeLog | 6 +
libgfortran/ChangeLog | 6 +
libgfortran/io/list_read.c | 27 +-
libgomp/ChangeLog | 10 +
libgomp/plugin/build-target-indirect-htab.h | 2 +-
libgomp/testsuite/libgomp.c/affinity-1.c | 3 +-
libstdc++-v3/ChangeLog | 204 +
libstdc++-v3/include/bits/atomic_base.h | 11 +-
libstdc++-v3/include/bits/cpp_type_traits.h | 7 +
libstdc++-v3/include/bits/deque.tcc | 8 +-
libstdc++-v3/include/bits/random.h | 522 +-
libstdc++-v3/include/bits/random.tcc | 267 +-
libstdc++-v3/include/bits/ranges_algo.h | 4 +-
libstdc++-v3/include/bits/shared_ptr_atomic.h | 16 +-
libstdc++-v3/include/bits/stl_algo.h | 30 +-
libstdc++-v3/include/bits/stl_algobase.h | 20 +-
.../include/bits/stl_iterator_base_funcs.h | 57 +
libstdc++-v3/include/bits/stl_uninitialized.h | 4 +-
libstdc++-v3/include/bits/version.def | 11 +-
libstdc++-v3/include/bits/version.h | 14 +-
libstdc++-v3/include/std/algorithm | 1 +
libstdc++-v3/include/std/atomic | 21 +-
libstdc++-v3/include/std/barrier | 6 +-
libstdc++-v3/include/std/chrono | 2 +-
libstdc++-v3/include/std/memory | 1 +
libstdc++-v3/include/std/numeric | 13 +-
libstdc++-v3/include/std/type_traits | 159 +-
libstdc++-v3/src/c++20/tzdata.zi | 6 +-
libstdc++-v3/src/c++20/tzdb.cc | 4 +-
.../testsuite/18_support/exception/version.cc | 1 +
.../18_support/exception_ptr/exception_ptr_cast.cc | 2 +
.../19_diagnostics/headers/stdexcept/version.cc | 1 +
.../19_diagnostics/logic_error/constexpr.cc | 1 +
.../19_diagnostics/runtime_error/constexpr.cc | 1 +
libstdc++-v3/testsuite/20_util/expected/version.cc | 4 +-
libstdc++-v3/testsuite/20_util/optional/version.cc | 4 +
libstdc++-v3/testsuite/20_util/variant/version.cc | 4 +-
.../testsuite/25_algorithms/copy/122907.cc | 43 +
.../testsuite/25_algorithms/find_end/c++20_iter.cc | 23 +
.../testsuite/25_algorithms/sample/c++20_iter.cc | 23 +
.../testsuite/25_algorithms/search_n/c++20_iter.cc | 21 +
.../testsuite/25_algorithms/stable_sort/123180.cc | 66 +
.../25_algorithms/unique_copy/c++20_iter.cc | 33 +
.../26_numerics/inclusive_scan/c++20_iter.cc | 26 +
.../testsuite/26_numerics/random/philox4x32.cc | 1 -
.../testsuite/26_numerics/random/philox4x64.cc | 1 -
.../26_numerics/random/philox_engine/cons/copy.cc | 1 -
.../random/philox_engine/cons/default.cc | 1 -
.../26_numerics/random/philox_engine/cons/seed.cc | 1 -
.../random/philox_engine/operators/equal.cc | 1 -
.../random/philox_engine/operators/serialize.cc | 1 -
.../random/philox_engine/requirements/constants.cc | 1 -
.../random/philox_engine/requirements/typedefs.cc | 1 -
.../testsuite/26_numerics/random/pr60037-neg.cc | 4 +-
.../uniform_real_distribution/operators/64351.cc | 18 +-
.../operators/gencanon.cc | 226 +
.../testsuite/29_atomics/atomic_ref/ctor.cc | 193 +
libstdc++-v3/testsuite/lib/libstdc++.exp | 2 +-
maintainer-scripts/ChangeLog | 4 +
maintainer-scripts/update_web_docs_git | 2 +
377 files changed, 27127 insertions(+), 17924 deletions(-)
diff --cc gcc/ChangeLog
index dd227a4d7ef5,ebae44665afe..1478e1569694
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@@ -1,40 -1,584 +1,621 @@@
+ 2025-12-17 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/122343
+ * cselib.cc (cselib_redundant_set_p): Return false for volatile
+ memory source or destination.
+
+ 2025-12-17 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.cc (avr_out_shift_with_cnt): Tweak
+ execution time by count-1 cycles in some cases.
+
+ 2025-12-17 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr-protos.h (out_shift_with_cnt): Remove.
+ * config/avr/avr.cc (avr_out_shift_with_cnt): New static
+ function from out_shift_with_cnt: Pass shift rtx_code instead
+ of asm template.
+ (avr_out_shift_1): New static helper function.
+ (ashlqi3_out, ashlhi3_out, avr_out_ashlpsi3, ashlsi3_out)
+ (ashrqi3_out, ashrhi3_out, avr_out_ashrpsi3, ashrsi3_out)
+ (lshrqi3_out, lshrhi3_out, avr_out_lshrpsi3, lshrsi3_out):
+ Adjust avr_out_shift_with_cnt to new interface.
+
+ 2025-12-17 Jeff Law <jeffrey.law@oss.qualcomm.com>
+
+ * config/riscv/sync.md (atomic compare and set): Reorder patterns
+ so the stricter pattern comes first.
+
+ 2025-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/123155
+ * config/i386/xmmintrin.h (_mm_maskmove_si64): Rename offset automatic
+ variable to __offset.
+
+ 2025-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/123155
+ * config/i386/avx10_2bf16intrin.h (_mm512_roundscale_pbh,
+ _mm512_mask_roundscale_pbh, _mm512_maskz_roundscale_pbh,
+ _mm256_roundscale_pbh, _mm256_mask_roundscale_pbh,
+ _mm256_maskz_roundscale_pbh, _mm_roundscale_pbh,
+ _mm_mask_roundscale_pbh, _mm_maskz_roundscale_pbh,
+ _mm512_reduce_pbh, _mm512_mask_reduce_pbh, _mm512_maskz_reduce_pbh,
+ _mm256_reduce_pbh, _mm256_mask_reduce_pbh, _mm256_maskz_reduce_pbh,
+ _mm_reduce_pbh, _mm_mask_reduce_pbh, _mm_maskz_reduce_pbh): Rename
+ B argument to __B.
+
+ 2025-12-17 Umesh Kalvakuntla <umesh.kalvakuntla@amd.com>
+
+ * common/config/i386/cpuinfo.h (get_amd_cpu): Add znver6 1Ah
+ family model numbers.
+ (get_available_features): Set feature AVX512BMM.
+ * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512BMM_SET):
+ New macro.
+ (OPTION_MASK_ISA2_AVX512BMM_UNSET): New macro.
+ (OPTION_MASK_ISA2_AVX512BW_UNSET): Unset AVX512BMM.
+ (ix86_handle_option): Likewise.
+ * common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
+ Add AMDFAM1AH_ZNVER6.
+ (enum processor_features): Add FEATURE_AVX512BMM.
+ * common/config/i386/i386-isas.h: Likewise.
+ * config.gcc: Add avx512bmmintrin.h, avx512bmmvlintrin.h,
+ znver6.
+ * config/i386/cpuid.h (bit_AVX512BMM): New macro.
+ * config/i386/driver-i386.cc (host_detect_local_cpu): Likewise.
+ * config/i386/i386-builtin.def (BDESC): Add AVX512BMM builtins.
+ * config/i386/i386-c.cc (ix86_target_macros_internal): Likewise.
+ * config/i386/i386-isa.def (AVX512BMM): Likewise.
+ * config/i386/i386-options.cc (m_ZNVER6): New macro.
+ (m_ZNVER): Add m_ZNVER6.
+ (processor_cost_table): Uses znver5_cost table for
+ PROCESSOR_ZNVER6 for now.
+ (ix86_valid_target_attribute_inner_p): Likewise.
+ * config/i386/i386.cc (ix86_reassociation_width): Likewise.
+ * config/i386/i386.h (enum processor_type): Likewise.
+ * config/i386/i386.md: Likewise.
+ * config/i386/i386.opt: Likewise.
+ * config/i386/i386.opt.urls: Likewise.
+ * config/i386/immintrin.h: Likewise.
+ * config/i386/sse.md (avx512bmm_vbmacor16x16x16_<mode>): New
+ define_insn.
+ (avx512bmm_vbmacxor16x16x16_<mode>): Likewise.
+ (avx512bmm_vbitrevb_<mode>_mask): Likewise.
+ (avx512bmm_vbitrevb_<mode>): Likewise.
+ * config/i386/x86-tune-sched.cc (ix86_issue_rate): Likewise.
+ (ix86_adjust_cost): Likewise.
+ * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add
+ m_ZNVER6.
+ (X86_TUNE_FUSE_MOV_AND_ALU): Likewise.
+ (X86_TUNE_USE_SCATTER_2PARTS): Likewise.
+ (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
+ (X86_TUNE_USE_SCATTER_8PARTS): Likewise.
+ (X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
+ (X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
+ (X86_TUNE_AVX512_MOVE_BY_PIECES): Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * config/i386/avx512bmmintrin.h: New file.
+ * config/i386/avx512bmmvlintrin.h: New file.
+
+ 2025-12-16 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/aarch64/aarch64.cc
+ (aarch64_function_abi): Use checking assert.
+ (aarch64_fndecl_abi): Test for the availability of the
+ machine content before trying to look up the cached PCS.
+ Use a checking assert.
+
+ 2025-12-16 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * common.opt.urls: Regenerate.
+
+ 2025-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.cc (xtensa_expand_scc_SALT):
+ New sub-function that emits the SALT/SALTU instructions.
+ (xtensa_expand_scc): Change the part related to the SALT/SALTU
+ instructions to a call to the above sub-function.
+
+ 2025-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.cc
+ (xtensa_expand_block_set_libcall,
+ xtensa_expand_block_set_unrolled_loop,
+ xtensa_expand_block_set_small_loop, xtensa_call_tls_desc):
+ Change the return statement to pass the return value of
+ end_sequence() directly without going through a variable, and
+ remove the definition of that variable.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+ Indu Bhagat <indu.bhagat@oracle.com>
+
+ * config/aarch64/aarch64.md (addg): Update pattern to use
+ addg/subg instructions.
+ (stg): Update pattern.
+ (st2g): New pattern.
+ (tag_memory): Likewise.
+ (compose_tag): Likewise.
+ (irq): Update pattern to accept xzr register.
+ (gmi): Likewise.
+ (UNSPECV_TAG_SPACE): Define.
+ * config/aarch64/aarch64.cc (AARCH64_MEMTAG_GRANULE_SIZE):
+ Define.
+ (AARCH64_MEMTAG_TAG_BITSIZE): Likewise.
+ (aarch64_override_options_internal): Error out if MTE instructions
+ are not available.
+ (aarch64_post_cfi_startproc): Emit .cfi_mte_tagged_frame.
+ (aarch64_can_tag_addresses): Add MEMTAG specific handling.
+ (aarch64_memtag_tag_bitsize): New function
+ (aarch64_memtag_granule_size): Likewise.
+ (aarch64_memtag_insert_random_tag): Likwise.
+ (aarch64_memtag_add_tag): Likewise.
+ (aarch64_memtag_extract_tag): Likewise.
+ (aarch64_granule16_memory_address_p): Likewise.
+ (aarch64_emit_stxg_insn): Likewise.
+ (aarch64_memtag_tag_memory_via_loop): New definition.
+ (aarch64_expand_tag_memory): Likewise.
+ (aarch64_check_memtag_ops): Likewise.
+ (TARGET_MEMTAG_TAG_BITSIZE): Likewise.
+ (TARGET_MEMTAG_GRANULE_SIZE): Likewise.
+ (TARGET_MEMTAG_INSERT_RANDOM_TAG): Likewise.
+ (TARGET_MEMTAG_ADD_TAG): Likewise.
+ (TARGET_MEMTAG_EXTRACT_TAG): Likewise.
+ * config/aarch64/aarch64-builtins.cc
+ (aarch64_expand_builtin_memtag): Update set tag builtin logic.
+ * config/aarch64/aarch64-linux.h: Pass memtag-stack sanitizer
+ specific options to the linker.
+ * config/aarch64/aarch64-protos.h
+ (aarch64_granule16_memory_address_p): New prototype.
+ (aarch64_check_memtag_ops): Likewise.
+ (aarch64_expand_tag_memory): Likewise.
+ * config/aarch64/constraints.md (Umg): New memory constraint.
+ (Uag): New constraint.
+ (Ung): Likewise.
+ * config/aarch64/predicates.md (aarch64_memtag_tag_offset):
+ Refactor it.
+ (aarch64_granule16_imm6): Rename from aarch64_granule16_uimm6 and
+ refactor it.
+ (aarch64_granule16_memory_operand): New constraint.
+ * config/aarch64/iterators.md (MTE_PP): New code iterator to be
+ used for mte instructions.
+ (stg_ops): New code attributes.
+ (st2g_ops): Likewise.
+ (mte_name): Likewise.
+ * config/aarch64/aarch64.opt (aarch64-tag-memory-loop-threshold):
+ New parameter.
+ * doc/invoke.texi: Update documentation.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+ Indu Bhagat <indu.bhagat@oracle.com>
+
+ * asan.cc (handle_builtin_stack_restore): Accommodate MEMTAG
+ sanitizer.
+ (handle_builtin_alloca): Expand differently if MEMTAG sanitizer.
+ (get_mem_refs_of_builtin_call): Include MEMTAG along with
+ HWASAN.
+ (memtag_sanitize_stack_p): New definition.
+ (memtag_sanitize_allocas_p): Likewise.
+ (memtag_memintrin): Likewise.
+ (hwassist_sanitize_p): Likewise.
+ (hwassist_sanitize_stack_p): Likewise.
+ (report_error_func): Include MEMTAG along with HWASAN.
+ (build_check_stmt): Likewise.
+ (instrument_derefs): MEMTAG too does not deal with globals yet.
+ (instrument_builtin_call): Include MEMTAG along with HWASAN.
+ (maybe_instrument_call): Likewise.
+ (asan_expand_mark_ifn): Likewise.
+ (asan_expand_check_ifn): Likewise.
+ (asan_expand_poison_ifn): Expand differently if MEMTAG sanitizer.
+ (asan_instrument): Include MEMTAG along with HWASAN.
+ (hwasan_emit_prologue): Expand differently if MEMTAG sanitizer.
+ (hwasan_emit_untag_frame): Likewise.
+ * asan.h (memtag_sanitize_stack_p): New declaration.
+ (memtag_sanitize_allocas_p): Likewise.
+ (hwassist_sanitize_p): Likewise.
+ (hwassist_sanitize_stack_p): Likewise.
+ (asan_sanitize_use_after_scope): Include MEMTAG along with
+ HWASAN.
+ * cfgexpand.cc (align_local_variable): Likewise.
+ (expand_one_stack_var_at): Likewise.
+ (expand_stack_vars): Likewise.
+ (expand_one_stack_var_1): Likewise.
+ (init_vars_expansion): Likewise.
+ (expand_used_vars): Likewise.
+ (pass_expand::execute): Likewise.
+ * gimplify.cc (asan_poison_variable): Likewise.
+ * internal-fn.cc (expand_HWASAN_ALLOCA_POISON): New definition.
+ (expand_HWASAN_ALLOCA_UNPOISON): Expand differently if MEMTAG
+ sanitizer.
+ (expand_HWASAN_MARK): Likewise.
+ * internal-fn.def (HWASAN_ALLOCA_POISON): Define new.
+ * params.opt: Document new param.
+ * sanopt.cc (pass_sanopt::execute): Include MEMTAG along with
+ HWASAN.
+ * gcc.cc (sanitize_spec_function): Add check for memtag-stack.
+ * doc/tm.texi: Regenerate.
+ * target.def (extract_tag): Update documentation.
+ (add_tag): Likewise.
+ (insert_random_tag): Likewise.
+
+ 2025-12-16 Indu Bhagat <indu.bhagat@oracle.com>
+ Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+
+ * builtins.def: Adjust the macro to include the new
+ SANTIZIE_MEMTAG_STACK.
+ * flag-types.h (enum sanitize_code): Add new enumerator for
+ SANITIZE_MEMTAG and SANITIZE_MEMTAG_STACK.
+ * opts.cc (finish_options): memtag-stack sanitizer conflicts with
+ hwaddress and address sanitizers.
+ (sanitizer_opts): Add new memtag-stack sanitizer.
+ (parse_sanitizer_options): memtag-stack sanitizer cannot recover.
+ * params.opt: Add new params for memtag-stack sanitizer.
+ * doc/invoke.texi: Update documentation.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+
+ * target-insns.def (compose_tag): New target instruction.
+ * doc/md.texi (compose_tag): Add documentation.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+
+ * target-insns.def (tag_memory): New target instruction.
+ * doc/md.texi (tag_memory): Add documentation.
+
+ 2025-12-16 Jennifer Schmitz <jschmitz@nvidia.com>
+
+ * config/aarch64/aarch64.md: Include olympus.md.
+ * config/aarch64/olympus.md: New file.
+ * config/aarch64/tuning_models/olympus.h: Add dispatch
+ constraints and enable dispatch scheduling.
+
+ 2025-12-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
+
+ * haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0
+ to schedule SCHED_GROUP_P insns first.
+
+ 2025-12-16 Richard Biener <rguenther@suse.de>
+
+ PR ipa/122456
+ * cgraph.cc (cgraph_edge::resolve_speculation): Handle
+ a NULL symtab_node::get (callee_decl).
+
+ 2025-12-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR tree-optimization/123110
+ * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Add back
+ check for eh landing pad or non-local dest on the dest.
+
+ 2025-12-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR tree-optimization/123111
+ * tree-cfg.cc (ifconvertable_edge): New function.
+ (make_forwarders_with_degenerate_phis): Add skip_ifcvtable argument,
+ check ifconvertable_edge if skip_ifcvtable is true.
+ * tree-cfg.h (make_forwarders_with_degenerate_phis): New argument
+ with default of false.
+ * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): Update
+ argument to make_forwarders_with_degenerate_phis.
+
+ 2025-12-15 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/107666
+ * common.opt (fspeculatively-call-stored-functions): New.
+ * cgraph.h (cgraph_simple_indirect_info): New fields rec_type and
+ fld_offset.
+ * ipa-prop.h (ipa_analyze_var_static_initializer): Declare.
+ (ipa_dump_noted_record_fnptrs): Likewise.
+ (ipa_debug_noted_record_fnptrs): Likewise.
+ (ipa_single_noted_fnptr_in_record): Likewise.
+ (ipa_free_noted_fnptr_calls): Likewise.
+ * ipa-cp.cc (ipcp_generate_summary): Call
+ ipa_analyze_var_static_initializer on each varbool node with a static
+ initializer.
+ * ipa-devirt.cc (struct devirt_stats): New type.
+ (devirt_target_ok_p): New function.
+ (ipa_devirt): Move statistics counters to the new structure. dump
+ noted function pointers stored in records. Check for edge hotness
+ first and for odr_types only for polymorphic edges. Moved a number of
+ checks to devirt_target_ok_p. Also add speculative direct calls for
+ non-polymorphic indirect ones when ipa_single_noted_fnptr_in_record
+ finds a likely target. Call ipa_free_noted_fnptr_calls.
+ (pass_ipa_devirt::gate): Also check the new flag.
+ * ipa-prop.cc (noted_fnptr_store): New type.
+ (struct noted_fnptr_hasher): Likewise.
+ (noted_fnptr_hasher::hash): New function.
+ (noted_fnptr_hasher::equal): Likewise.
+ (noted_fnptrs_in_records): New.
+ (is_func_ptr_from_record): New function.
+ (ipa_analyze_indirect_call_uses): Also simple create indirect info
+ structures with fnptr_loaded_from_record set.
+ (note_fnptr_in_record): New function.
+ (ipa_dump_noted_record_fnptrs): Likewise.
+ (ipa_debug_noted_record_fnptrs): Likewise.
+ (ipa_single_noted_fnptr_in_record): Likewise.
+ (ipa_free_noted_fnptr_calls): Likewise.
+ (ipa_analyze_stmt_uses): Also look for stroes of function pointers to
+ record structures.
+ (ipa_analyze_var_static_initializer): New function.
+ (ipa_write_indirect_edge_info): Also stream fnptr_loaded_from_record
+ indirec infos.
+ (ipa_read_indirect_edge_info): Likewise.
+ (ipa_prop_write_jump_functions): Also stream the contents of
+ noted_fnptrs_in_records.
+ (ipa_prop_read_section): Likewise.
+ * opts.cc (default_options_table): Also turn on
+ OPT_fspeculatively_call_stored_functions at -O2.
+ (common_handle_option): Turn flag_speculatively_call_stored_functions
+ when using profile feedback.
+ * doc/invoke.texi (-fspeculatively-call-stored-functions): New.
+
+ 2025-12-15 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.h (cgraph_node): Adjust the comment of member function
+ create_indirect_edge.
+ (enum cgraph_indirect_info_kind): New.
+ (cgraph_indirect_call_info): Convert into a base class.
+ (cgraph_simple_indirect_info): New.
+ (cgraph_polymorphic_indirect_info): Likewise.
+ (usable_polymorphic_info_p): Likewise.
+ (is_a_helper <cgraph_simple_indirect_info *>::test): Likewise.
+ (is_a_helper <cgraph_polymorphic_indirect_info *>::test): Likewise.
+ (cgraph_allocate_init_indirect_info): Remove declaration.
+ (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use the
+ appropriate derived type of indirect info.
+ * cgraph.cc (cgraph_allocate_init_indirect_info): Removed.
+ (cgraph_node::create_indirect_edge): Create an appropriate type of
+ indirect_info.
+ (cgraph_node::dump): Dump indirect info using its dump function.
+ (cgraph_indirect_call_info::dump): New function.
+ (cgraph_indirect_call_info::debug): Likewise.
+ * cgraphclones.cc (cgraph_edge::clone): Create an appropriate type of
+ indirect_info.
+ * cgraphunit.cc (analyze_functions): Use the appropriate derived type
+ of indirect info.
+ * ipa-cp.cc (initialize_node_lattices): Adjust the check for
+ polymorphic indirect info.
+ (ipa_get_indirect_edge_target_1): Use the appropriate derived types of
+ indirect info.
+ (ipcp_discover_new_direct_edges): Likewise.
+ * ipa-devirt.cc (ipa_devirt): Use the polymorphis derived type of
+ indirect info and check that it is usable.
+ * ipa-inline.cc (dump_inline_stats): Adjust the check for polymorphic
+ indirect info.
+ * ipa-profile.cc (ipa_profile): Likewise and check usability.
+ * ipa-prop.cc (ipa_print_node_jump_functions): Dump indirect info
+ using its dumping member function.
+ (ipa_note_param_call): Removed.
+ (ipa_analyze_indirect_call_uses): Use the appropriate derived type of
+ indirect info, set all fields of indirect info separately rather than
+ relying on ipa_note_param_call.
+ (ipa_analyze_virtual_call_uses): Use the polymorphis derived type of
+ indirect info and check that it is usable, set all fields of indirect
+ info separately rather than relying on ipa_note_param_call.
+ (ipa_analyze_call_uses): Use the appropriate derived type of indirect
+ info.
+ (ipa_make_edge_direct_to_target): Use the appropriate derived type of
+ indirect info. Remove wrong note that member_ptr check was not
+ needed. Adjust check for polymorphic call when dumping.
+ (try_make_edge_direct_simple_call): Use the appropriate derived type
+ of indirect info.
+ (try_make_edge_direct_virtual_call): Use the polymorphis derived type
+ of indirect info and check that it is usable.
+ (update_indirect_edges_after_inlining): Use the appropriate derived
+ type of indirect info. Define local variables only before their first
+ use.
+ (ipa_write_indirect_edge_info): Also stream indirect info kind. Use
+ the appropriate derived type of indirect info.
+ (ipa_read_indirect_edge_info): Check that the streamed in indirect
+ info kind matches rthe structure at hand. Use the appropriate derived
+ type of indirect info.
+ * ipa-utils.h (possible_polymorphic_call_targets): Use the
+ polymorphis derived type of indirect info. Assert it is usable.
+ (dump_possible_polymorphic_call_targets): Use the polymorphis
+ derived type of indirect info and check it is usable.
+ (possible_polymorphic_call_target_p): Likewise.
+ * ipa.cc (symbol_table::remove_unreachable_nodes): Use
+ usable_polymorphic_info_p.
+ * lto-cgraph.cc (lto_output_edge): Stream indirect info kind.
+ (compute_ltrans_boundary): Use usable_polymorphic_info_p.
+ (input_edge): Move definition of ecf_flags before its first use.
+ Pass true as the last parameter to create_indirect_edge. Stream
+ indirect info kind and create a corresponding type to hold the
+ information.
+ * trans-mem.cc (ipa_tm_insert_gettmclone_call): Use the
+ polymorphis derived type of indirect info.
+
+ 2025-12-15 Martin Jambor <mjambor@suse.cz>
+
+ * gengtype.cc (walk_subclasses): Avoid generating code with unused
+ variables.
+
+ 2025-12-15 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com>
+
+ PR tree-optimization/122987
+ * tree-ssa-ifcombine.cc (ifcombine_ifandif): Replace
+ force_gimple_operand_gsi with gimple_build.
+
+ 2025-12-15 Joseph Myers <josmyers@redhat.com>
+
+ * Makefile.in (PLUGIN_HEADERS): Add $(srcdir)/text-art/*.h.
+ (install-plugin): Preserve directory structure for text-art
+ headers.
+
+ 2025-12-15 Alfie Richards <alfie.richards@arm.com>
+
+ * config/aarch64/aarch64-cores.def (cortex-a320): New core.
+ * config/aarch64/aarch64-tune.md: Regenerate.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop.cc (vect_analyze_loop_form): Relax niters
+ condition.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ Enable peeling for uncounted loops.
+ * tree-vect-loop-manip.cc
+ (slpeel_tree_duplicate_loop_to_edge_cfg): Add exit condition
+ duplication functionality.
+ * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg):
+ Modify function signature.
+ (vect_do_peeling): Enable uncounted loop peeling.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list):
+ Reject when !operand_equal_p for any data ref pair.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop.cc (vect_analyze_loop_2): Disable partial
+ vector use for uncounted loops.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ reset IVs and accumulators for all exits for uncounted loops.
+ * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg):
+ add boolean `uncounted_p' argument.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop-manip.cc (vect_do_peeling): Disable vector
+ loop skip checking.
+ (vect_loop_versioning): skip profitability check for uncounted loops.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop-manip.cc (vect_do_peeling): Disable niters
+ update.
+ * tree-vect-loop.cc (vect_transform_loop): Likewise.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vectorizer.h (LOOP_VINFO_IV_EXIT): Replace this...
+ (LOOP_VINFO_MAIN_EXIT): ...with this.
+ (LOOP_VINFO_EPILOGUE_IV_EXIT): Replace this...
+ (LOOP_VINFO_EPILOGUE_MAIN_EXIT): ...with this.
+ (LOOP_VINFO_SCALAR_IV_EXIT): Replace this...
+ (LOOP_VINFO_SCALAR_MAIN_EXIT): ...with this.
+ (class _loop_vec_info): s/iv/main for `vec_loop_iv_exit',
+ `vec_epilogue_loop_main_exit' and `scalar_loop_main_exit'
+ class members.
+ * tree-vect-data-refs.cc
+ (vect_enhance_data_refs_alignment):
+ s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/.
+ * tree-vect-loop-manip.cc
+ (vect_set_loop_controls_directly): Likewise.
+ (vect_gen_vector_loop_niters_mult_vf): Likewise.
+ (vect_loop_versioning): Likewise.
+ (vect_do_peeling):
+ s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/,
+ s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT,
+ s/LOOP_VINFO_EPILOGUE_IV_EXIT/LOOP_VINFO_EPILOGUE_MAIN_EXIT.
+ * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info):
+ s/iv_exit/main_exit/ in initializer list.
+ (vec_init_loop_exit_info): Handle multiple-exit uncounted loops.
+ (vect_analyze_loop_form): Fix `failure_at' message.
+ (vect_create_loop_vinfo):
+ s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/.
+ (vect_create_epilog_for_reduction): Likewise.
+ (vectorizable_live_operation): Likewise.
+ (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise.
+ (vect_transform_loop):
+ s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/,
+ s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT.
+ * tree-vectorizer.cc (set_uid_loop_bbs):
+ s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vectorizer.h (LOOP_VINFO_EARLY_BREAKS_VECT_PEELED): OR
+ its current definition with `LOOP_VINFO_NITERS_UNCOUNTED_P(L)'
+ * tree-vect-loop.cc (vect_create_loop_vinfo): Don't populate
+ `LOOP_VINFO_LOOP_IV_COND' for uncounted loops.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * tree-vect-loop-manip.cc (vect_build_loop_niters): Gracefully
+ handle uncounted loops.
+ (vect_gen_prolog_loop_niters): Add type default of `sizetype'.
+ (vect_gen_vector_loop_niters): Likewise.
+ (vect_do_peeling): Likewise.
+ * tree-vect-loop.cc (vect_min_prec_for_max_niters): Likewise.
+ (loop_niters_no_overflow): Likewise.
+ * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCOUNTED_P): New.
+
+ 2025-12-15 Peter Damianov <peter0x44@disroot.org>
+
+ PR target/108866
+ * doc/install.texi: Document --with-windres configure option.
+
+ 2025-12-15 Peter Damianov <peter0x44@disroot.org>
+
+ PR target/108866
+ * gcc.cc (find_a_program): Add check for DEFAULT_WINDRES.
+ * configure.ac: Add --with-windres= option.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
+ 2025-12-15 Peter Damianov <peter0x44@disroot.org>
+
+ PR driver/108866
+ * gcc.cc (default_compilers): Add EXTRA_DEFAULT_COMPILERS so the config
+ of a target can add an extra compiler spec to default_compilers.
+ * config/i386/cygming.h (WINDRES_FORMAT_SPEC): New macro to handle
+ PE format selection based on TARGET_64BIT_DEFAULT and -m32/-m64 flags.
+ (EXTRA_DEFAULT_COMPILERS): Add spec for windres.
+ * config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise.
+
+ 2025-12-15 Jerry Zhang Jian <jerry.zhangjian@sifive.com>
+
+ * config/riscv/gen-riscv-ext-opt.cc: Rename UPPERCAE_NAME to
+ UPPERCASE_NAME.
+ * config/riscv/gen-riscv-ext-texi.cc: Likewise.
+ * config/riscv/riscv-ext-corev.def: Likewise.
+ * config/riscv/riscv-ext-sifive.def: Likewise.
+ * config/riscv/riscv-ext-thead.def: Likewise.
+ * config/riscv/riscv-ext-ventana.def: Likewise.
+
+2010-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
+ * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use
+ rs6000_elf_end_indicate_exec_stack.
+ * config/ia64/ia64.c (ia64_linux_file_end): New.
+ * config/ia64/linux.h (TARGET_ASM_FILE_END): Use ia64_linux_file_end.
+
+ * cppbuiltin.c (define__GNUC__): Also define __GNUC_RH_RELEASE__.
+
+ * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Define to 1 if
+ -fstack-protect.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Make sure
+ size is a multiple of 16 if FRAME_GROWS_DOWNWARD.
+ (ia64_initial_elimination_offset): Support FRAME_GROWS_DOWNWARD
+ layout.
+ * config/ia64/linux.h (TARGET_LIBC_PROVIDES_SSP): Define.
+ * config/ia64/ia64.md (stack_protect_set, stack_protect_test): New
+ expanders.
+
+ Revert:
+ 2005-04-29 Alan Modra <amodra@bigpond.net.au>
+ PR target/21098
+ * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
+ * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
+
+ * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also
+ on ppc64-linux.
+
+ * config/ia64/linux.h (TARGET_ASM_FILE_END): Define.
+
+ * configure.ac (HAVE_LD_OVERLAPPING_OPD): New test.
+ * configure: Rebuilt.
+ * config.in: Rebuilt.
+ * config/rs6000/rs6000.c (OVERLAPPING_OPD): Define.
+ (rs6000_elf_declare_function_name): Use it.
+
2025-12-14 Lewis Hyatt <lhyatt@gmail.com>
PR tree-optimization/106409
diff --cc gcc/ada/ChangeLog
index 96d18a234d5b,9f2cfa42d0e2..5b69906c158c
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@@ -1,7 -1,16 +1,20 @@@
+ 2025-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/123138
+ * sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Override a
+ universal numeric type only if the prefix is not an aggregate.
+
+ 2025-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/123060
+ * gcc-interface/utils.cc (update_pointer_to): Synthesize a new
+ TYPE_CANONICAL for the old pointer type in the case where there
+ is no new pointer type. Likewise for references.
+
+2010-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * gnat-style.texi: Change dircategory to GNU Ada tools.
+
2025-12-11 Eric Botcazou <ebotcazou@adacore.com>
PR ada/123096
diff --cc gcc/testsuite/ChangeLog
index 55eae7697b73,f3a979ed73e5..181e34073362
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@@ -1,7 -1,253 +1,257 @@@
+ 2025-12-17 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/122343
+ * gcc.dg/pr122343-1.c: New test.
+
+ 2025-12-17 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * algol68/execute/modules/module11.a68: Remove multiple definition
+ module.
+
+ 2025-12-17 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/23178
+ * gm2/pim/fail/badprocedure.mod: New test.
+
+ 2025-12-17 Ulrich Weigand <ulrich.weigand@de.ibm.com>
+
+ PR testsuite/123166
+ * gfortran.dg/bessel_6.f90: Add { dg-do run } annotation.
+ * gfortran.dg/erf_2.F90: Likewise.
+ * gfortran.dg/integer_exponentiation_3.F90: Likewise.
+ * gfortran.dg/integer_exponentiation_5.F90: Likewise.
+
+ 2025-12-17 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/123151
+ * gm2/pimlib/base/run/pass/FIO.mod: Reimplement.
+ Copy from gm2-libs/FIO.mod since FIO.def api has changed.
+ * gm2/pimlib/run/pass/testclose.mod: New test.
+
+ 2025-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * gcc.target/i386/pr120881-1a.c: Restrict to Linux.
+ * gcc.target/i386/pr120881-1b.c: Likewise.
+
+ 2025-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR c++/112652
+ * g++.dg/cpp26/literals2.C: Skip on Solaris.
+
+ 2025-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * gcc.dg/plugin/crash-test-nested-write-through-null-html.py:
+ Import re.
+ (test_results): Allow for "Segmentation Fault", too.
+ * gcc.dg/plugin/crash-test-nested-write-through-null-sarif.py:
+ Likewise.
+ * gcc.dg/plugin/crash-test-write-through-null-stderr.c
+ (test_inject_write_through_null): Likewise.
+
+ 2025-12-17 benwu25 <soggysocks206@gmail.com>
+
+ PR c++/121443
+ * g++.dg/parse/pr121443.C: New test.
+
+ 2025-12-17 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ PR c++/123075
+ * g++.dg/cpp2a/concepts-lambda25.C: New test.
+ * g++.dg/modules/lambda-13.h: New test.
+ * g++.dg/modules/lambda-13_a.H: New test.
+ * g++.dg/modules/lambda-13_b.C: New test.
+
+ 2025-12-17 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/issue-4301.rs: New test.
+
+ 2025-12-17 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
+
+ * rust/compile/macros/mbe/macro-issue3608.rs: Update error messages.
+
+ 2025-12-17 Umesh Kalvakuntla <umesh.kalvakuntla@amd.com>
+
+ * g++.target/i386/mv29.C: Likewise.
+ * gcc.target/i386/funcspec-56.inc: Likewise.
+ * gcc.target/i386/avx512bmm-1.c: New test.
+ * gcc.target/i386/avx512bmmvl-1.c: New test.
+
+ 2025-12-16 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ PR algol68/123131
+ * algol68/compile/modules/compile.exp: Pass module include path
+ via extra_flags to algol68-dg-runtest.
+ * algol68/execute/modules/execute.exp: Pass module include path
+ via algol68_compile_args.
+ * lib/algol68-dg.exp (MODULES_OPTIONS): Delete.
+ (algol68-dg-runtest): Do not use MODULE_OPTIONS.
+ * lib/algol68-torture.exp (BUILT_MODULES_DIR): Delete.
+ (algol68-torture-execute): Do not use BUILT_MODULES_DIR.
+
+ 2025-12-16 David Malcolm <dmalcolm@redhat.com>
+
+ PR diagnostics/123142
+ * gcc.dg/plugin/diagnostic-test-graphs-html.c: Add
+ dg-require-dot directive.
+
+ 2025-12-16 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * algol68/compile/error-compile-unknown-tag-1.a68: Use a single
+ module per packet.
+ * algol68/compile/error-module-coercions-1.a68: Likewise.
+ * algol68/compile/error-module-ranges-1.a68: Likewise.
+ * algol68/compile/module-2.a68: Likewise.
+ * algol68/compile/module-pub-mangling-1.a68: Likewise.
+ * algol68/compile/module-pub-mangling-2.a68: Likewise.
+ * algol68/compile/module-pub-mangling-3.a68: Likewise.
+ * algol68/compile/module-pub-mangling-4.a68: Likewise.
+ * algol68/compile/module-pub-mangling-5.a68: Likewise.
+ * algol68/compile/module-pub-mangling-6.a68: Likewise.
+ * algol68/compile/warning-module-hidding-1.a68: Likewise.
+
+ 2025-12-16 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * algol68/execute/modules/Modules20.map: New file.
+ * algol68/execute/modules/module-bar.a68: New file.
+ * algol68/execute/modules/module-foo.a68: New file.
+ * algol68/execute/modules/program-19.a68: New file.
+ * algol68/execute/modules/program-20.a68: New file.
+
+ 2025-12-16 Richard Biener <rguenther@suse.de>
+
+ PR testsuite/123137
+ * g++.dg/vect/pr64410.cc: Add -mfpmath=sse -msse on x86.
+
+ 2025-12-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * gcc.target/i386/shift-gf2p8affine-2.c: Skip on Solaris
+ without gas.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+ Indu Bhagat <indu.bhagat@oracle.com>
+
+ * gcc.target/aarch64/memtag/alloca-1.c: New test.
+ * gcc.target/aarch64/memtag/alloca-2.c: New test.
+ * gcc.target/aarch64/memtag/alloca-3.c: New test.
+ * gcc.target/aarch64/memtag/arguments-1.c: New test.
+ * gcc.target/aarch64/memtag/arguments-2.c: New test.
+ * gcc.target/aarch64/memtag/arguments-3.c: New test.
+ * gcc.target/aarch64/memtag/arguments-4.c: New test.
+ * gcc.target/aarch64/memtag/arguments.c: New test.
+ * gcc.target/aarch64/memtag/basic-1.c: New test.
+ * gcc.target/aarch64/memtag/basic-3.c: New test.
+ * gcc.target/aarch64/memtag/basic-struct.c: New test.
+ * gcc.target/aarch64/memtag/large-array.c: New test.
+ * gcc.target/aarch64/memtag/local-no-escape.c: New test.
+ * gcc.target/aarch64/memtag/memtag.exp: New file.
+ * gcc.target/aarch64/memtag/no-sanitize-attribute.c: New test.
+ * gcc.target/aarch64/memtag/value-init.c: New test.
+ * gcc.target/aarch64/memtag/vararray-gimple.c: New test.
+ * gcc.target/aarch64/memtag/vararray.c: New test.
+ * gcc.target/aarch64/memtag/zero-init.c: New test.
+ * gcc.target/aarch64/memtag/texec-1.c: New test.
+ * gcc.target/aarch64/memtag/texec-2.c: New test.
+ * gcc.target/aarch64/memtag/texec-3.c: New test.
+ * gcc.target/aarch64/memtag/vla-1.c: New test.
+ * gcc.target/aarch64/memtag/vla-2.c: New test.
+ * lib/target-supports.exp (check_effective_target_aarch64_mte):
+ New function.
+ * gcc.target/aarch64/memtag/cfi-mte-memtag-frame-1.c: New file.
+ * gcc.target/aarch64/memtag/mte-sig.h: New file.
+
+ 2025-12-16 Claudiu Zissulescu <claudiu.zissulescu-ianculescu@oracle.com>
+ Indu Bhagat <indu.bhagat@oracle.com>
+
+ * gcc.target/aarch64/acle/memtag_1.c: Update test.
+
+ 2025-12-16 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR tree-optimization/123110
+ * gcc.dg/pr123110-1.c: New test.
+
+ 2025-12-15 Martin Jambor <mjambor@suse.cz>
+
+ * gcc.dg/lto/fnptr-from-rec-1_0.c: New test.
+ * gcc.dg/lto/fnptr-from-rec-1_1.c: Likewise.
+ * gcc.dg/lto/fnptr-from-rec-2_0.c: Likewise.
+ * gcc.dg/lto/fnptr-from-rec-2_1.c: Likewise.
+ * gcc.dg/lto/fnptr-from-rec-3_0.c: Likewise.
+ * gcc.dg/lto/fnptr-from-rec-3_1.c: Likewise.
+
+ 2025-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/reduce4.adb: New test.
+ * gnat.dg/reduce5.adb: Likewise.
+
+ 2025-12-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/122936
+ * gfortran.dg/pr122936.f90: New test.
+
+ 2025-12-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/122752
+ * g++.dg/template/dependent-name19.C: New test.
+
+ 2025-12-15 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/122668
+ PR c++/114764
+ * g++.dg/cpp0x/noexcept91a.C: New test.
+
+ 2025-12-15 Joseph Myers <josmyers@redhat.com>
+
+ * lib/plugin-support.exp (plugin-test-execute): Support installed
+ testing.
+ * g++.dg/plugin/plugin.exp, gcc.dg/plugin/plugin.exp,
+ obj-c++.dg/plugin/plugin.exp, objc.dg/plugin/plugin.exp: Do not
+ disable for installed testing.
+
+ 2025-12-15 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/123085
+ * c-c++-common/analyzer/strlen-pr123085.c: New test.
+
+ 2025-12-15 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/122975
+ * c-c++-common/analyzer/arith-1.c: New test.
+ * c-c++-common/analyzer/infinite-recursion-pr122975.c: New test.
+
+ 2025-12-15 Victor Do Nascimento <victor.donascimento@arm.com>
+
+ * gcc.dg/vect/vect-early-break_40.c: Fix.
+ * gcc.dg/gomp/static-chunk-size-one.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_1.c: New.
+ * gcc.dg/vect/vect-uncounted_2.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_3.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_4.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_5.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_6.c: Likewise.
+ * gcc.dg/vect/vect-uncounted_7.c: Likewise.
+ * gcc.dg/vect/vect-uncounted-run_1.c: Likewise.
+ * gcc.dg/vect/vect-uncounted-run_2.c: Likewise.
+ * gcc.dg/vect/vect-uncounted-run_3.c: Likewise.
+ * gcc.dg/vect/vect-uncounted-prolog-peel_1.c: Likewise.
+
+ 2025-12-15 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/123032
+ * gcc.dg/vect/pr123032.c: New test.
+
+ 2025-12-15 Tamar Christina <tamar.christina@arm.com>
+
+ PR tree-optimization/123043
+ * gcc.dg/vect/pr123043.c: New test.
+
+ 2025-12-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/lto30.ads, gnat.dg/lto30.adb: New test.
+
+2010-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/opt/ctor1.C: New test.
+
2025-12-14 Lewis Hyatt <lhyatt@gmail.com>
PR tree-optimization/106409
diff --cc libgcc/ChangeLog
index c979bd0ad0b4,6ac5fd5c0786..ef93c78c1b5a
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@@ -1,12 -1,9 +1,18 @@@
+ 2025-12-15 Peter Damianov <peter0x44@disroot.org>
+
+ * config/score/crti.S: Delete.
+ * config/score/crtn.S: Delete.
+ * config/score/sfp-machine.h: Delete.
+
+2010-06-30 Jakub Jelinek <jakub@redhat.com>
+
+ * config/ia64/lib1funcs.S: Add .note.GNU-stack section on
+ ia64-linux.
+ * config/ia64/crtbegin.S: Likewise.
+ * config/ia64/crtend.S: Likewise.
+ * config/ia64/crti.S: Likewise.
+ * config/ia64/crtn.S: Likewise.
+
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* configure: Regenerate.
More information about the Libstdc++-cvs
mailing list