https://gcc.gnu.org/g:f73d23f06a1b8aa7cdce95a6092c0ce0f5650a00
commit f73d23f06a1b8aa7cdce95a6092c0ce0f5650a00 Merge: a6b13f8f708c 1c555ba67a34 Author: Jakub Jelinek <[email protected]> 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 <[email protected]> + + PR target/122343 + * cselib.cc (cselib_redundant_set_p): Return false for volatile + memory source or destination. + + 2025-12-17 Georg-Johann Lay <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * config/riscv/sync.md (atomic compare and set): Reorder patterns + so the stricter pattern comes first. + + 2025-12-17 Jakub Jelinek <[email protected]> + + PR target/123155 + * config/i386/xmmintrin.h (_mm_maskmove_si64): Rename offset automatic + variable to __offset. + + 2025-12-17 Jakub Jelinek <[email protected]> + + 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * common.opt.urls: Regenerate. + + 2025-12-16 Takayuki 'January June' Suwa <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + Indu Bhagat <[email protected]> + + * 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 <[email protected]> + Indu Bhagat <[email protected]> + + * 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 <[email protected]> + Claudiu Zissulescu <[email protected]> + + * 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 <[email protected]> + + * target-insns.def (compose_tag): New target instruction. + * doc/md.texi (compose_tag): Add documentation. + + 2025-12-16 Claudiu Zissulescu <[email protected]> + + * target-insns.def (tag_memory): New target instruction. + * doc/md.texi (tag_memory): Add documentation. + + 2025-12-16 Jennifer Schmitz <[email protected]> + + * 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 <[email protected]> + + * haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0 + to schedule SCHED_GROUP_P insns first. + + 2025-12-16 Richard Biener <[email protected]> + + PR ipa/122456 + * cgraph.cc (cgraph_edge::resolve_speculation): Handle + a NULL symtab_node::get (callee_decl). + + 2025-12-16 Andrew Pinski <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + + * 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 <[email protected]> + + * gengtype.cc (walk_subclasses): Avoid generating code with unused + variables. + + 2025-12-15 Pengxuan Zheng <[email protected]> + + PR tree-optimization/122987 + * tree-ssa-ifcombine.cc (ifcombine_ifandif): Replace + force_gimple_operand_gsi with gimple_build. + + 2025-12-15 Joseph Myers <[email protected]> + + * Makefile.in (PLUGIN_HEADERS): Add $(srcdir)/text-art/*.h. + (install-plugin): Preserve directory structure for text-art + headers. + + 2025-12-15 Alfie Richards <[email protected]> + + * config/aarch64/aarch64-cores.def (cortex-a320): New core. + * config/aarch64/aarch64-tune.md: Regenerate. + + 2025-12-15 Victor Do Nascimento <[email protected]> + + * tree-vect-loop.cc (vect_analyze_loop_form): Relax niters + condition. + + 2025-12-15 Victor Do Nascimento <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * tree-vect-loop.cc (vect_analyze_loop_2): Disable partial + vector use for uncounted loops. + + 2025-12-15 Victor Do Nascimento <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + PR target/108866 + * doc/install.texi: Document --with-windres configure option. + + 2025-12-15 Peter Damianov <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + 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 <[email protected]> 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 <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + + * gnat-style.texi: Change dircategory to GNU Ada tools. + 2025-12-11 Eric Botcazou <[email protected]> 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 <[email protected]> + + PR target/122343 + * gcc.dg/pr122343-1.c: New test. + + 2025-12-17 Jose E. Marchesi <[email protected]> + + * algol68/execute/modules/module11.a68: Remove multiple definition + module. + + 2025-12-17 Gaius Mulley <[email protected]> + + PR modula2/23178 + * gm2/pim/fail/badprocedure.mod: New test. + + 2025-12-17 Ulrich Weigand <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + + * gcc.target/i386/pr120881-1a.c: Restrict to Linux. + * gcc.target/i386/pr120881-1b.c: Likewise. + + 2025-12-17 Rainer Orth <[email protected]> + + PR c++/112652 + * g++.dg/cpp26/literals2.C: Skip on Solaris. + + 2025-12-17 Rainer Orth <[email protected]> + + * 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 <[email protected]> + + PR c++/121443 + * g++.dg/parse/pr121443.C: New test. + + 2025-12-17 Nathaniel Shead <[email protected]> + + 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 <[email protected]> + + * rust/compile/issue-4301.rs: New test. + + 2025-12-17 Pierre-Emmanuel Patry <[email protected]> + + * rust/compile/macros/mbe/macro-issue3608.rs: Update error messages. + + 2025-12-17 Umesh Kalvakuntla <[email protected]> + + * 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 <[email protected]> + + 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 <[email protected]> + + PR diagnostics/123142 + * gcc.dg/plugin/diagnostic-test-graphs-html.c: Add + dg-require-dot directive. + + 2025-12-16 Jose E. Marchesi <[email protected]> + + * 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 <[email protected]> + + * 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 <[email protected]> + + PR testsuite/123137 + * g++.dg/vect/pr64410.cc: Add -mfpmath=sse -msse on x86. + + 2025-12-16 Rainer Orth <[email protected]> + + * gcc.target/i386/shift-gf2p8affine-2.c: Skip on Solaris + without gas. + + 2025-12-16 Claudiu Zissulescu <[email protected]> + Indu Bhagat <[email protected]> + + * 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 <[email protected]> + Indu Bhagat <[email protected]> + + * gcc.target/aarch64/acle/memtag_1.c: Update test. + + 2025-12-16 Andrew Pinski <[email protected]> + + PR tree-optimization/123110 + * gcc.dg/pr123110-1.c: New test. + + 2025-12-15 Martin Jambor <[email protected]> + + * 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 <[email protected]> + + * gnat.dg/reduce4.adb: New test. + * gnat.dg/reduce5.adb: Likewise. + + 2025-12-15 Jerry DeLisle <[email protected]> + + PR libfortran/122936 + * gfortran.dg/pr122936.f90: New test. + + 2025-12-15 Patrick Palka <[email protected]> + + PR c++/122752 + * g++.dg/template/dependent-name19.C: New test. + + 2025-12-15 Patrick Palka <[email protected]> + + PR c++/122668 + PR c++/114764 + * g++.dg/cpp0x/noexcept91a.C: New test. + + 2025-12-15 Joseph Myers <[email protected]> + + * 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 <[email protected]> + + PR analyzer/123085 + * c-c++-common/analyzer/strlen-pr123085.c: New test. + + 2025-12-15 David Malcolm <[email protected]> + + 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 <[email protected]> + + * 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 <[email protected]> + + PR tree-optimization/123032 + * gcc.dg/vect/pr123032.c: New test. + + 2025-12-15 Tamar Christina <[email protected]> + + PR tree-optimization/123043 + * gcc.dg/vect/pr123043.c: New test. + + 2025-12-15 Eric Botcazou <[email protected]> + + * gnat.dg/lto30.ads, gnat.dg/lto30.adb: New test. + +2010-06-30 Jakub Jelinek <[email protected]> + + * g++.dg/opt/ctor1.C: New test. + 2025-12-14 Lewis Hyatt <[email protected]> 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 <[email protected]> + + * config/score/crti.S: Delete. + * config/score/crtn.S: Delete. + * config/score/sfp-machine.h: Delete. + +2010-06-30 Jakub Jelinek <[email protected]> + + * 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 <[email protected]> * configure: Regenerate.
