| 2026-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/bpf/bpf.opt.urls: Regenerate. |
| |
| 2026-10-13 Tobias Burnus <tburnus@baylibre.com> |
| |
| * tree-core.h (enum omp_clause_code): Extend comment to |
| OMP_CLAUSE_MESSAGE. |
| * tree-pretty-print.cc (dump_omp_clause): Print space before |
| 'severity(fatal)'. |
| |
| 2026-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127858 |
| * tree-ssa-loop-im.cc (gather_mem_refs_stmt): When merging |
| accesses with differing access path always reset base and |
| offset to the canonical form by re-using the already canonical |
| ao_ref. |
| |
| 2026-10-13 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_expand_atomic_hints_builtins_fetch): Change require_const_argument. |
| * config/aarch64/atomics.md: Change values in hint value switch. |
| |
| 2026-10-13 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/127843 |
| * config/pa/pa.cc (pa_emit_move_sequence): Don't check constant |
| pool address. |
| (pa_legitimate_constant_p): Likewise. |
| (pa_legitimate_address_p): Likewise. |
| |
| 2026-10-13 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_vector_init_insert) |
| <case E_V16QImode>: We don't need to zero extend var, if the |
| high bytes will be overwritten. |
| <case E_V8HImode>: Likewise for V8HImode. Whitespace fix. |
| (ix86_expand_vector_init_qi4): New helper function to effectively |
| load a V4QImode vector into an SImode register or constant. |
| (ix86_expand_vector_init_qi8): Likewise, to effectively load |
| a V8QImode vector into a DImode register or constant. |
| (ix86_expand_vector_init_v16qi): Change return type to void, |
| and never fail. Fallback to V2DI on TARGET64 and V4SI otherwise |
| using the above helper functions. |
| (ix86_expand_vector_init_general): Update call to |
| ix86_expand_vector_init_v16qi now that it can't fail. |
| |
| 2026-10-13 Dusan Stojkovic <Dusan.Stojkovic@rt-rk.com> |
| |
| * config/riscv/spacemit-x60.md (spacemit_x60_alu0, spacemit_x60_alu1): |
| ((spacemit_x60_alu0|spacemit_x60_alu1)): update ALU reservation |
| definition. |
| |
| 2026-10-13 Keith Packard <keithp@keithp.com> |
| |
| * config/picolibc-c.cc: New file. |
| * config/t-picolibc: New file |
| * config.gcc: Use new files. |
| |
| 2026-10-13 Jeff Law <jeffreyalaw@gmail.com> |
| |
| PR target/127778 |
| * config/riscv/riscv.cc (riscv_add_offset): Use synthesize_add |
| when safe and likely profitable. |
| |
| 2026-10-13 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127809 |
| * jump.cc (delete_related_insns): Ignore debug insns when looking for |
| a BARRIER before a deleted label. |
| |
| 2026-10-13 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * caller-save.cc: Remove unused include directives |
| * cse.cc: Likewise. |
| * dwarf2ctf.cc: Likewise. |
| * function-tests.cc: Likewise. |
| * gimple-pretty-print.cc: Likewise. |
| * gimple-range-trace.cc: Likewise. |
| * gimple-range.cc: Likewise. |
| * gimple-ssa-store-merging.cc: Likewise. |
| * ipa-devirt.cc: Likewise. |
| * ipa-inline-transform.cc: Likewise. |
| * langhooks.cc: Likewise. |
| * lto-streamer-in.cc: Likewise. |
| * print-rtl.cc: Likewise. |
| * rtl-tests.cc: Likewise. |
| * sanopt.cc: Likewise. |
| * stmt.cc: Likewise. |
| * targhooks.cc: Likewise. |
| * tree-diagnostic-cfg.cc: Likewise. |
| * tree-if-conv.cc: Likewise. |
| * tree-ssa-threadupdate.cc: Likewise. |
| * tree-vect-patterns.cc: Likewise. |
| * tree.cc: Likewise. |
| * varasm.cc: Likewise. |
| |
| 2026-10-13 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| PR rtl-optimization/127852 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Don't merge two equal operands with side effects in the PLUS and |
| MINUS coefficient folds and in the (X - 1) * Y + Y and |
| (X + 1) * Y - Y folds. |
| |
| 2026-10-13 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| PR tree-optimization/127853 |
| * tree-ssa-forwprop.cc (simplify_count_zeroes): Only pass the |
| value at zero to .CLZ/.CTZ when the target defines it. |
| |
| 2026-10-13 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127808 |
| * reorg.cc (relax_delay_slots): Ignore debug insns when looking for |
| a BARRIER before a jump target. |
| |
| 2026-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/127848 |
| * tree-tailcall.cc: Include target.h. |
| (process_assignment): Punt if one of dest and src_var types |
| is BITINT_TYPE_P and the other is not. If both are BITINT_TYPE_P, |
| punt if TYPE_SIZE is different, or for narrowing or same precision |
| conversions on != bitint_ext_undef targets, or for widening |
| conversions on != bitint_ext_full targets or if signedness differs. |
| |
| 2026-10-13 xiezhiheng <xiezhiheng@huawei.com> |
| |
| * config/aarch64/aarch64.md (sve_type): Move to ... |
| * config/aarch64/aarch64-sched-types.md: ... this new file. |
| * config/arm/arm.md: Include aarch64-sched-types.md. |
| * config/arm/cortex-a53.md: Treat SVE as NEON. |
| * config/arm/cortex-a57.md: Likewise. |
| |
| 2026-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/121688 |
| * config/i386/sse.md (VF4_128_8_256): Only include |
| V4DF if TARGET_AVX512FP16 && TARGET_AVX512VL. |
| (VF48H_AVX512VL): Only include V8DF if TARGET_AVX512FP16. |
| Include V8SF also if TARGET_F16C && !TARGET_AVX512FP16. |
| (extend<ssePHmodelower><mode>2): Change condition |
| from TARGET_AVX512FP16 to TARGET_F16C || TARGET_AVX512F. |
| Expand !TARGET_AVX512FP16 cases differently. |
| (extendv4hf<mode>2): Change condition from |
| TARGET_AVX512FP16 && TARGET_AVX512VL to |
| TARGET_F16C || TARGET_AVX512VL. Expand |
| !(TARGET_AVX512FP16 && TARGET_AVX512VL) cases differently. |
| (trunc<mode><ssePHmodelower>2): Change condition |
| from TARGET_AVX512FP16 to TARGET_F16C || TARGET_AVX512F. |
| Expand !TARGET_AVX512FP16 cases differently. |
| (trunc<mode>v4hf2): Change condition from |
| TARGET_AVX512FP16 && TARGET_AVX512VL to |
| TARGET_F16C || TARGET_AVX512VL. Expand |
| !(TARGET_AVX512FP16 && TARGET_AVX512VL) cases differently. |
| (*vcvtph2ps_load<mask_name>): Rename to ... |
| (vcvtph2ps_load<mask_name>): ... this. |
| |
| 2026-10-13 Jeff Law <jeffreyalaw@gmail.com> |
| |
| PR tree-optimization/127813 |
| * config/riscv/zicond.md: Add new define_insn for czero expressed via |
| logical ops. Add define_splits when related patterns are used by an |
| IOR to select across two values. |
| |
| 2026-10-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/126723 |
| * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Handle |
| C++ source locations. |
| |
| 2026-10-12 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127485 |
| * gimple-range-fold.cc (fur_source::register_outgoing_edges): Don't |
| require a singleton; only not undefined or varying. |
| |
| 2026-10-12 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/127382 |
| * match.pd (cond_expr_convert_p): Use tree_nop_conversion_p |
| instead of INTEGRAL_TYPE_P to check the integral selected |
| operands. |
| |
| 2026-10-12 Alfie Richards <alfie.richards@arm.com> |
| |
| PR tree-optimization/127805 |
| * tree-vect-loop-manip.cc |
| (vect_set_loop_condition_partial_vectors_avx512): Use |
| LOOP_VINFO_MAIN_EXIT instead of exit_edge for final_iv. |
| (vect_set_loop_condition_normal): Likewise. |
| |
| 2026-10-12 Jørgen Kvalsvik <j@lambda.is> |
| |
| * path-coverage.cc (find_prime_paths): Call free_graph. |
| |
| 2026-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127811 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Allow extern |
| last_stmt during transform. |
| |
| 2026-10-12 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/127443 |
| * lower-subreg.cc (DECOMPOSED_REGISTER_P): New macro. |
| (decompose_register): Mark decomposed. |
| (resolve_reg_p): Only resolve decomposed regs. |
| (resolve_subreg_p): Move. |
| (simplify_subreg_concatn): Remove assert. |
| (simplify_gen_subreg_concatn): Use resolve_subreg_p. |
| (resolve_operand_for_swap_move_operator): Adjust assert. |
| (resolve_debug): Unmark as decomposed. |
| * rtl.h (struct GTY): Document usage of volatil in lower-subreg. |
| |
| 2026-10-12 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/127662 |
| * config/riscv/riscv-vector-costs.cc (costs::record_type_sizes): |
| Add scalar_load and scalar_store. |
| |
| 2026-10-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/nvptx/nvptx.h (CLZ_DEFINED_VALUE_AT_ZERO): Handle |
| vector modes. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| |
| 2026-10-12 Josef Melcr <josef.melcr@suse.com> |
| |
| PR c/127464 |
| * doc/extend.texi (callback_only): Add a sentence about unprototyped |
| functions to callback_only docs. |
| |
| 2026-10-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma): |
| Rename to aarch64_prepare_int_fma. |
| * config/aarch64/aarch64.cc (aarch64_prepare_sve_int_fma): Likewise. |
| * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): New |
| VDQ_BHSI expanders. |
| * config/aarch64/aarch64-sve.md (fma<mode>4, fnma<mode>4): Use the |
| renamed helper. |
| |
| 2026-10-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.cc (gen_field_die): Change return type to DW_DIE_REF |
| and add ANONYMOUS parameter. Adjust implementation accordingly. |
| (analyze_discr_in_predicate): Rename into... |
| (extract_discr_in_expr): ...this. Also return a sub-field of the |
| record type when the containing fields are at offset 0. |
| (analyze_variants_discr): Adjust to above renaming. |
| (gen_variant_part): If there is no DIE for the discriminant, create |
| an anonymous DIE for it in the non-variant part of the record type. |
| |
| 2026-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127814 |
| * tree-vect-loop-manip.cc (vect_loop_versioning): Emit |
| versioning for niter assumption conditions first and |
| split those to the separate BB together with the cost model |
| check after rewriting all of it to unconditional defined operations. |
| |
| 2026-10-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR analyzer/125265 |
| * params.opt (analyzer-max-macro-alias-depth): Move to... |
| |
| 2026-10-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.md ((x << C1) + C2 splitter): Do not |
| trigger for Zbkb when C1 is half the word size. |
| |
| 2026-10-11 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/riscv/predicates.md (movcc_operand): Replace |
| TARGET_ZICOND_LIKE with TARGET_ZICOND. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Likewise. |
| (riscv_expand_conditional_move): Likewise. |
| * config/riscv/riscv-ext-ventana.def: Remove. |
| * config/riscv/riscv-ext.def: Don't include riscv-ext_ventana.def. |
| * config/riscv/riscv-ext.opt: Regenerated. |
| * config/riscv/riscv-opts.h (TARGET_ZICOND_LIKE): Remove. |
| * config/riscv/riscv.md: Remove references to XVentanacondops. Replace |
| TARGET_ZICOND_LIKE with TARGET_ZICOND. |
| * config/riscv/t-riscv (RISCV_EXT_DEFS): Remove riscv-ext-ventana.def. |
| * config/riscv/zicond.md: Remove references to XVentanaCondOps. |
| Replace TARGET_ZICOND_LIKE with TARGET_ZICOND throughout. Simplify |
| where possible. |
| * doc/riscv-ext.texi: Regenerated. |
| |
| 2026-10-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/vax/vax.h (CTZ_DEFINED_AT_ZERO): Use GET_MODE_UNIT_BITSIZE. |
| |
| 2026-10-11 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Use |
| GET_MODE_UNIT_BITSIZE. |
| |
| 2026-10-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.md (aop<mode>3): New expander. |
| |
| 2026-10-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/bitmanip.md: Add new 3->2 splitter when an outer PLUS |
| turns on some bits cleared by an inner AND. Adjust the AND mask and |
| change the outer code to IOR. |
| |
| 2026-10-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/iterators.md (oxp): New code iterator. |
| * config/riscv/crypto.md (pack patterns and splitters): Accept |
| oxp in matching RTL. Fix whitespace goofs. Generate the PLUS |
| forms when possible in splitters. |
| * config/riscv/riscv.cc (riscv_rtx_cost, case PLUS): Handle |
| PLUS form of pack instructions. |
| (riscv_move_integer): Trivial adjustment for crypto.md changes. |
| |
| 2026-10-10 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.cc (pa_emit_move_sequence): Handle SFmode and DFmode |
| symbolic, constant pool, or CONST memory references on both 32-bit |
| and 64-bit targets by emitting proper PIC, 14-bit HIGH/LO_SUM, or |
| 1.x fallback move sequences using a scratch register. |
| (pa_secondary_reload): Strip SUBREG early. Update hard-float memory |
| displacement checks to account for 5-bit vs 14-bit constraints on |
| PA 1.x vs PA 2.0. Look through MEM wrappers when evaluating symbolic |
| address expressions. For symbolic address expressions under flag_pic |
| or non-readonly conditions, return R1_REGS for SImode and DImode, but |
| explicitly break out for SFmode and DFmode to let them safely fall |
| back to GENERAL_REGS. Return GENERAL_REGS instead of NO_REGS for shifted |
| and coprocessor/SAR reload fallbacks. |
| (pa_can_change_mode_class): Remove equal-size mode change shortcut. |
| Prevent cross-class type punning between integer and floating-point |
| modes within GENERAL_REGS or R1_REGS before reload is completed. |
| (pa_legitimate_constant_p): Reject out-of-range multi-word constants |
| in DImode on 32-bit targets. Reject naked symbolic or constant pool |
| SFmode and DFmode addresses unconditionally on 32-bit targets, while |
| intentionally allowing fully-formed LO_SUM expressions to preserve |
| PA 2.0 optimizations. |
| (pa_legitimate_address_p): Reject naked symbolic, constant pool, or |
| CONST expressions for SFmode and DFmode unconditionally on 32-bit |
| targets to force a proper HIGH/LO_SUM split or reload. |
| |
| 2026-10-10 Sam James <sam@gentoo.org> |
| |
| PR bootstrap/112422 |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Drop AC_C_CONST. |
| |
| 2026-10-10 Sam James <sam@gentoo.org> |
| |
| PR bootstrap/112422 |
| * acinclude.m4 (gcc_AC_C_CHAR_BIT): Don't check HAVE_LIMITS_H. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Don't search for limits.h, locale.h, stdlib.h. |
| * intl.h (GCC_INTL_H): Always include locale.h. |
| * system.h: Always include limits.h. |
| Always include stdlib.h. |
| |
| 2026-10-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * doc/ifn.texi (IFN_CLZ): Document optional second argument. |
| (IFN_CTZ): Ditto. |
| * match.pd: Fold zero test for .CLZ/.CTZ over vector modes, too. |
| |
| 2026-10-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO): Utilize |
| GET_MODE_UNIT_BITSIZE instead of GET_MODE_BITSIZE in order to |
| deal with vector modes. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use |
| defined zero value for vector modes. |
| (vect_recog_popcount_clz_ctz_ffs_pattern): Test for a defined |
| zero value for vector modes. |
| * tree-vect-stmts.cc (vectorizable_call): Bail out if natural |
| and final vector mode do not coincide w.r.t. defined-at-zero |
| value. |
| |
| 2026-10-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.h (CLZ_DEFINED_VALUE_AT_ZERO): Deal with |
| vector modes. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Ditto. |
| * config/s390/s390.md (ctzsi2): Compute 32 for zero value. |
| * config/s390/vector.md (VIT_VXE3_NO_TI): New mode iterator. |
| (clzti2): New expander. |
| (ctzti2): Ditto. |
| |
| 2026-10-09 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_extr_rtx_p): Allow extr |
| pattern to be represented as either IOR, XOR or PLUS. |
| * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr): |
| Use any_or_plus iterator. |
| (*aarch64_bfxilsi_extrdi): Likewise. |
| (*aarch64_bfxil<mode>): Likewise. |
| (*aarch64_bfxilsi_uxtw): Likewise. |
| (aarch64_rev16<mode>2_alt1): Use any_or_plus iterator and |
| new aop_pref_ior attribute so that the gen function uses IOR. |
| (*aarch64_rev16<mode>2_alt2): Use any_or_plus iterator. |
| (*aarch64_rev16si2_alt3): Add "*" prefix to skip gen function. |
| * config/aarch64/iterators.md (aop_pref_ior): New code attribute to |
| produce "*" for XOR/PLUS. |
| |
| 2026-10-09 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127781 |
| * value-relation.cc (dom_oracle::start_search): Check if any equiv |
| set elements are now in the free list. |
| |
| 2026-10-09 Sam James <sam@gentoo.org> |
| |
| PR bootstrap/112422 |
| * configure: Regenerate. |
| * configure.ac: AC_HEADER_STDC. |
| |
| 2026-10-09 Igor Shevlyakov <igor@tachyum.com> |
| |
| PR tree-optimization/127784 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Pass a vector |
| of 1s as an all-true mask for a VOIDmode mask_mode. |
| |
| 2026-10-09 Christopher Bazley <chris.bazley@arm.com> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Simplify the |
| calculation of the index of the final result to avoid |
| generating invalid polynomial offsets relative to the end of |
| variable-length vector types, which is what happens if the code |
| for loop vectorization is reused for basic block SLP. |
| |
| 2026-10-09 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/logical.md (aop<mode>3): New expander. |
| |
| 2026-10-09 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/127723 |
| * omp-simd-clone.cc (simd_clone_clauses_extract): Remove sorry |
| diagnostic for simdlen with scaled modifier, moved to |
| c-family/c-omp.cc to ensure it is always active not only when |
| a target hook exists. |
| |
| 2026-10-09 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127725 |
| * reorg.cc (optimize_skip): Use next_nonnote_nondebug_insn. |
| (get_label_before): Use prev_nonnote_nondebug_insn. |
| (fill_slots_from_thread): Use next_nonnote_nondebug_insn. |
| |
| 2026-10-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127661 |
| * cfganal.h (compute_idf): Add a bitmap argument, NULL by default. |
| * cfganal.cc (compute_idf): Add the LIVE argument. If it is not |
| NULL, only add and follow the blocks in it. |
| * tree-into-ssa.cc (prune_unused_phi_nodes): Update the comment |
| about computing liveness. |
| (compute_livein_region): New function. |
| (insert_updated_phi_nodes_for): Use it to restrict the IDF of old |
| virtual names. |
| |
| 2026-10-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (MATCHER_FN_FILE_FRACTION) |
| (MATCHER_FN_MIN_RUN_FRACTION): New constants. |
| (ssa_name_group_p, phi_cond_group_p): New functions. |
| (class fn_splitter): New class. |
| (fn_splitter::split_out_p, fn_splitter::same_chunk_p) |
| (fn_splitter::full, fn_splitter::print_params) |
| (fn_splitter::print_args, fn_splitter::choose_chunk_file) |
| (fn_splitter::open_chunk, fn_splitter::close_chunk) |
| (fn_splitter::emit_dispatch, collect_alt_units) |
| (fn_splitter::emit_alternatives): New functions. |
| (dt_node::gen_kids): Add an optional fn_splitter argument and use it |
| at valid function-level boundaries. |
| (dt_node::gen_kids_1): Add an optional fn_splitter argument and call |
| the function holding a group in place of its body. Check that the |
| GENERIC SSA_NAME group and groups with a PHI form stay in the entry |
| function. Use ssa_name_group_p. |
| (decision_tree::gen): Set the matcher function budget and use |
| fn_splitter for large per-operation matchers. |
| |
| 2026-10-09 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127795 |
| * reorg.cc (delete_prior_computation): Ignore debug insns in the |
| backward scan. |
| |
| 2026-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127521 |
| * gimple-fold.cc (fold_truth_andor_for_ifcombine): Reject |
| non-constant compares that test the same bit in different ways. |
| |
| 2026-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126563 |
| * tree-ssa-ifcombine.cc (recognize_bits_test): Do not call |
| get_name_for_bit_test on rhs1. |
| (ifcombine_ifandif): Check all operands for abnormal PHIs. |
| Look through conversions via get_name_for_bit_test on the names |
| only when direct matching fails. |
| |
| 2026-10-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126904 |
| * tree-ssa-sccvn.h (class vn_driver): New. |
| (run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): Remove. |
| * tree-ssa-sccvn.cc (class eliminate_dom_walker): Make the |
| destructor virtual. |
| (eliminate_with_rpo_vn): Make static. |
| (run_rpo_vn): Rename to ... |
| (assign_value_ids): ... this, static and without the walk. |
| (free_rpo_vn): Make static. |
| (do_rpo_vn_1): Take the walker and the RPO map from the caller. |
| (vn_driver::vn_driver, vn_driver::~vn_driver) |
| (vn_driver::finalize): New. |
| (do_rpo_vn, pass_fre::execute): Use a vn_driver. |
| * tree-ssa-pre.cc (pass_pre::execute): Same. |
| |
| 2026-10-09 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/h8300/h8300.cc (compute_a_shift_length): Do not do any special |
| length adjustment for H8/SX for SHIFT_SPECIAL. |
| |
| 2026-10-09 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): |
| Use standard_iv_increment_position instead of |
| vect_iv_increment_position. |
| (vect_set_loop_condition_partial_vectors_avx512): Likewise |
| (vect_set_loop_condition_normal): Likewise. |
| * tree-vect-loop.cc |
| (vect_update_ivs_after_vectorizer_for_early_breaks): |
| Likewise. |
| |
| 2026-10-09 Alfie Richards <alfie.richards@arm.com> |
| Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126301 |
| * tree-vect-loop-manip.cc (vect_use_loop_latch_condition_p): |
| Remove restriction for avx512 and non-partial vectors. |
| (vect_reuse_loop_latch): New function. |
| (vect_set_loop_condition_partial_vectors_avx512): |
| Add logic for do loop transformation. |
| (vect_set_loop_condition_normal): Likewise. |
| |
| 2026-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127762 |
| * gimple-fold.cc (decode_field_reference): Change psignbit to |
| int * and set it to 1 for sign extensions, -1 if all extension |
| bits are clear, or 0 otherwise. |
| (fold_truth_andor_for_ifcombine): Change ll_signbit, lr_signbit, |
| rl_signbit, and rr_signbit to int. Check for signbit > 0 when |
| including sign bit in test, and signbit < 0 when checking for |
| zero-extension. Only reject positive lr_signbit and |
| rr_signbit. |
| |
| 2026-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127447 |
| PR tree-optimization/125444 |
| PR tree-optimization/124937 |
| * gimple-fold.cc (decode_field_reference): Convert exp to |
| outer_type when decoding an INTEGER_CST right-hand XOR operand. |
| |
| 2026-10-09 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf-protos.h (bpf_check_call_target): New prototype. |
| * config/bpf/bpf.cc (bpf_check_call_target): New function. |
| (bpf_output_call): Update comment and error message. |
| * config/bpf/bpf.md (call): Check the call target with |
| bpf_check_call_target. |
| (call_value): Likewise. |
| |
| 2026-10-09 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.opt (mcallx): New option. |
| * config/bpf/bpf.cc (bpf_option_override): Enable bpf_has_callx |
| for CPU v1 and above. |
| (bpf_output_call): Check bpf_has_callx instead of TARGET_XBPF. |
| (bpf_small_register_classes_for_mode_p): Likewise. |
| * config/bpf/bpf-c.cc (bpf_target_macros): Define |
| __BPF_FEATURE_CALLX. |
| * config/bpf/bpf.md (call_internal): Update comment. |
| * doc/invoke.texi (eBPF Options): Document -mcallx. Document |
| that -mxbpf is only passed on to the assembler, and remove the |
| stale note about callee-saved registers. |
| |
| 2026-10-09 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.md (call_internal): Split the call target |
| constraint into separate alternatives for a constant address and |
| for a register, and use the pseudo-C spelling `callx' for the |
| latter. |
| (call_value_internal): Likewise. |
| * config/bpf/bpf.cc (bpf_output_call): Update comment. |
| |
| 2026-10-09 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-cp.cc (update_profiling_info): Under |
| -fprofile-partial-training lower the original node's profile to |
| local instead of also forcing it to global0. |
| |
| 2026-10-09 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * hierarchical_discriminator.cc (assign_discriminators_to_bb): |
| Handle RTL. |
| * cfghooks.h (struct copy_bb_data): Add skip_copyid. |
| * cfghooks.cc (copyid_location_from_bb): New. |
| (duplicate_block): Assign a fresh copyid unless suppressed. |
| (copy_bbs): Assign one shared copyid for the duplicated region. |
| * cfgloopmanip.h (DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR): Remove. |
| * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Remove |
| manual hierarchical discriminator assignment. |
| * gimple-loop-versioning.cc (loop_versioning::version_loop): Rely |
| on copy_bbs for copyids. |
| * tree-vect-loop-manip.cc (vect_do_peeling, vect_loop_versioning): |
| Likewise. |
| * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Drop |
| DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR. |
| * tree-vect-stmts.cc (hoist_defs_of_uses): Assign copyid to |
| gimple_copy clones. |
| * value-prof.cc (gimple_ic, gimple_stringop_fixed_value): Likewise. |
| |
| 2026-10-08 Dominic P <gcc@gcc.dp11.uk> |
| |
| * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): Do not |
| lower the element count to the latch iteration count when peeling |
| for alignment. |
| |
| 2026-10-08 Zhongteng Gui <dragon-archer@outlook.com> |
| |
| PR target/127137 |
| * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Remove |
| handling of i386/crtdll.h. |
| * config/i386/crtdll.h: Remove file. No longer used. |
| * doc/install.texi: Remove mingw32crt from the list of targets. |
| |
| 2026-10-08 Alfie Richards <alfie.richards@arm.com> |
| Alex Coplan <alex.coplan@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.cc |
| (gimple_folder::fold_contiguous_load): New function. |
| * config/aarch64/aarch64-acle-builtins.h |
| (gimple_folder::fold_contiguous_load): New function. |
| * config/aarch64/aarch64-sve-builtins-base.cc: |
| (svld1_impl::fold): Change to use fold_contiguous_load. |
| (svldxf1_extend_impl::fold): Change to use fold_contiguous_load. |
| * config/aarch64/aarch64-sve.md |
| (aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): |
| Add else operand. |
| |
| 2026-10-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_maybe_permute_loop_masks): |
| Make the function optional and retargetable. |
| (vect_maybe_permute_loop_masks): |
| New overload. |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127693 |
| * tree-ssa-operands.cc (operands_scanner::parse_ssa_operands): |
| For IFN_ASSUME do not cause address-takens. |
| * tree-ssa.cc (execute_update_addresses_taken): Likewise, but |
| still make sure to not rewrite to a register. |
| * gimple-ssa-pta-constraints.cc (find_func_aliases_for_call): No |
| side-effects from IFN_ASSUME, so produce no constraints. |
| |
| 2026-10-08 Jørgen Kvalsvik <j@lambda.is> |
| |
| * prime-paths.cc (scc_exit_prime_paths): Call |
| insert_with_suffix. |
| |
| 2026-10-08 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/stormy16/stormy16.md (aopqi3, aophi3): New expanders. |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR target/127769 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Separate MULT_EXPR and MULT_HIGHPART_EXPR handling. |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127758 |
| * pta-andersen.cc (unite): Refuse to merge an artificial |
| variable into another. |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127758 |
| * pta-andersen.cc (scc_visit): Do not merge when unite fails. |
| (find_equivalent_node): Likewise. |
| |
| 2026-10-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_prologue_setup_frame): Tighten |
| condition for when prologue_saves is used. |
| |
| 2026-10-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/127482 |
| * config/avr/avr.cc (sequent_regs_live): Return 0 for |
| noreturn functions, OS_task and OS_main. |
| (avr_prologue_setup_frame, avr_expand_epilogue) <minimize>: Move |
| OS_task and OS_main tests to sequent_regs_live. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127661 |
| * tree-ssa-dom.cc (names_without_foldable_uses): New variable. |
| (pass_dominator::execute): Allocate and free it. |
| (back_propagate_equivalences): Return early for the names in |
| names_without_foldable_uses unless checking is enabled. Skip PHI |
| nodes. Record LHS in names_without_foldable_uses if no use can |
| give an equivalence. |
| (dom_opt_dom_walker::before_dom_children): After optimize_stmt, |
| remove the uses of a statement that defines an SSA name from |
| names_without_foldable_uses. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127483 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) |
| <case VEC_CONCAT>: Use rtl_hooks.gen_lowpart_no_emit rather than |
| gen_lowpart, and do not fold if it fails. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127661 |
| * cprop.cc (bypass_block): Substitute SETCC into the source of |
| JUMP once, before the loop over the incoming edges. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127661 |
| * cprop.cc (struct bypass_set_cache_entry): New. |
| (bypass_set_cache): New variable. |
| (find_bypass_set): Use and update it. |
| (bypass_conditional_jumps): Allocate and free it. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127661 |
| * cprop.cc (bypass_setcc_needed_p): New function. |
| (bypass_block): Use it to decide whether to copy SETCC onto a |
| redirected edge. |
| (bypass_conditional_jumps): Update comment. |
| |
| 2026-10-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (lower_for): Emit a diagnostic and skip replicated |
| substitutions when no for-level iterator appears in the pattern. |
| * match.pd: Move the (for lop ...) vec_cond pattern outside the |
| enclosing (for op ...). |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127764 |
| * ipa-fnsummary.cc (set_switch_stmt_execution_predicate): |
| Use wi::to_widest to preserve sign when extending min to type. |
| |
| 2026-10-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (class back_threader): Add search |
| and apply; make the destructor virtual. |
| (back_threader::search): New, split out of thread_blocks. |
| (back_threader::apply): Same. |
| (back_threader::thread_blocks): Call them. |
| |
| 2026-10-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-path.cc (DEBUG_SOLVER): Move... |
| (path_range_query::range_defined_in_block): Adjust. |
| (path_range_query::compute_ranges_in_block): Likewise. |
| (path_range_query::compute_ranges): Likewise. |
| * gimple-range-path.h (DEBUG_PATH_RANGER): ...here, renamed. |
| |
| 2026-10-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-sccvn.cc (record_unwind_state): New, split out of... |
| (do_rpo_vn_1): ...here. |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Also simplify (xor (ior A B) B) to (and (not B) A). |
| |
| 2026-10-08 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/127606 |
| * combine.cc (distribute_and_simplify_rtx): Gate the |
| (and (xor B C) (not A)) to (xor (ior A B) (ior A C)) |
| distribution on A not containing a paradoxical subreg. |
| |
| 2026-10-08 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (legitimate_reload_vector_constant_p): |
| Move. |
| (s390_rtx_costs): Add costs for VML and VMAL. |
| (s390_legitimate_constant_p): Utilize |
| legitimate_reload_vector_constant_p. |
| * config/s390/vector.md (*vmal<mode>): New insn pattern. |
| |
| 2026-10-07 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/sh/sh.md (aopsi3): Define and route towards IOR. |
| |
| 2026-10-07 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR analyzer/125265 |
| * doc/params.texi (analyzer-max-macro-alias-depth): Document. |
| * params.opt (-param=analyzer-max-macro-alias-depth=): New. |
| |
| 2026-10-07 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (-fno-module-include-translate): Document. |
| |
| 2026-10-07 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Modules): Remove "Textual merging" from |
| missing pieces. |
| |
| 2026-10-07 Filip Kastl <fkastl@suse.cz> |
| |
| * gimple-range-cache.h: Add some missing override keywords for |
| member functions. |
| * gimple-range-path.h: Ditto. |
| * gimple-range.h: Ditto. |
| * range-op.cc: Ditto. |
| * value-relation.h: Exchange the virtual keyword for the |
| override keyword where appropriate. |
| |
| 2026-10-07 Filip Kastl <fkastl@suse.cz> |
| |
| * config/i386/i386.cc: Add a missing override keyword for a |
| member functions. |
| |
| 2026-10-07 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| PR target/125060 |
| * config/rs6000/vector.md (vcond_mask_<mode><mode>): Change the mode |
| iterator from VEC_I to VEC_IC to support V1TI. |
| |
| 2026-10-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/108477 |
| * expr.cc (expand_expr_real_2) <case BIT_IOR_EXPR>: Split from |
| BIT_AND_EXPR path. Use get_nonzero_bits to determine if both |
| operands a bit-wise disjoint, and if so, expand using the |
| backend's preferred aop_optab. |
| <case BIT_XOR_EXPR>: Likewise. |
| |
| 2026-10-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR rtl-optimization/126521 |
| * ifcvt.cc (noce_try_abs): These conversions are unsafe in the |
| presence of NaNs. |
| |
| 2026-10-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/127544 |
| PR tree-optimization/126562 |
| * tree-ssa-math-opts.cc (gimple_expand_builtin_pow): Use |
| tree_expr_maybe_signaling_nan_p insted of REAL_VALUE_ISSIGNALING_NAN |
| to check whether an operand may be a signaling NaN. pow(x,0.5) |
| also can't be transformed to sqrt(x) if x may be -Inf. |
| |
| 2026-10-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126459 |
| * match.pd (x != CST1 ? x + CST2 : CST3 -> x + CST2): If |
| CST1 + CST2 overflows and type overflow doesn't wrap, |
| simplify into corresponding unsigned addition. |
| |
| 2026-10-07 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR middle-end/127723 |
| * attribs.cc (omp_declare_simd_clauses_equal): Handle |
| simdlen's type and divisor of the scaled modifier. |
| * omp-general.cc (resolve_omp_target_device_matches, |
| omp_construct_simd_compare): Likewise. |
| * gimplify.cc (gimplify_scan_omp_clauses): Remove |
| simdlen clause with a sorry when it has a scaled modifier. |
| * omp-simd-clone.cc (simd_clone_clauses_extract): Likewise. |
| * tree-core.h (enum omp_clause_code): Update comment for |
| OMP_CLAUSE_SIMDLEN. |
| * tree-pretty-print.cc (dump_omp_clause): Handle scaled |
| modifier to simdlen. |
| (dump_omp_context_selector): Fix dumping of simd trait. |
| * tree.cc (omp_clause_num_ops): OMP_CLAUSE_SIMDLEN takes |
| now three operands. |
| * tree.h (OMP_CLAUSE_SIMDLEN_TYPE, |
| OMP_CLAUSE_SIMDLEN_DIVISOR): New defines. |
| |
| 2026-10-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (edge_info::derive_equivalences): Remove the |
| constant-first arms of the PLUS_EXPR and EQ_EXPR cases. |
| (record_edge_info): Remove the arm for a constant first operand. |
| |
| 2026-10-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (dom_opt_dom_walker::simplify_stmt): Rename to... |
| (dom_opt_dom_walker::fold_cond): ...this. Fold a conditional with |
| the ranger, do not simplify anything else. |
| (dom_opt_dom_walker::optimize_stmt): Adjust. |
| |
| 2026-10-06 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| Luis Silva <luis.silva@globalfoundries.com> |
| |
| PR target/127117 |
| * config/arc/arc.md (*arc_clzsi2): Produce 31 rather than 32 for |
| a zero operand. |
| (arc_ctzsi2): Likewise. |
| |
| 2026-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127719 |
| * tree-ssanames.cc (release_ssa_name_fn): Do not call |
| reset_range_info. |
| * value-relation.cc (dom_oracle::nearest_relations): Check the |
| free list before adding a name to the relation list. |
| |
| 2026-10-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (subtree_has_match_p): New function. |
| (decision_tree::find_node): Replace unconditional DT_TRUE barrier |
| with a scan for DT_MATCH descendants in intermediate siblings. |
| |
| 2026-10-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (nodes_overlap_p): Return false when the two |
| expressions have different is_generic, as they cannot match the |
| same input. |
| |
| 2026-10-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (contains_id): For c_expr, check CPP_NAME tokens |
| rather than capture_ids to detect for-iterator references. |
| (lower_for): Skip result copy in replace_id when the for-iterator |
| does not appear in the result, to preserve pointer identity and |
| enable transform sharing. |
| |
| 2026-10-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (capture::gen_transform): Jump to the failure label |
| rather than return when a comparison needs a sequence and there is |
| none. |
| |
| 2026-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127705 |
| * tree-vect-slp.cc (vect_schedule_scc): Fixup SCC copy. |
| |
| 2026-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple.h (gimple_ior_addresses_taken): Delete. |
| * gimple.cc (gimple_ior_addresses_taken_1): Move to... |
| (gimple_ior_addresses_taken): Move to... |
| * tree-ssa.cc (gimple_ior_addresses_taken_1): ...here and rename |
| into set_addresses_taken_1. |
| (gimple_ior_addresses_taken): ...here, swap the parameters and |
| rename into set_addresses_taken. |
| (execute_update_addresses_taken): Adjust to above changes and |
| call set_addresses_taken_1 for the processing of PHI nodes. |
| |
| 2026-10-06 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| * config/i386/i386.cc (ix86_gimplify_va_arg): Always read unnamed |
| 256 and 512-bit vectors from the stack. |
| |
| 2026-10-06 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| * config/i386/i386.cc (ix86_pass_by_reference_abi): New function, |
| split out of ... |
| (ix86_pass_by_reference): ... this. |
| (ix86_gimplify_va_arg): Derive argument indirection from the ABI of |
| the va_list type. Read indirect MS ABI arguments as pointers. |
| |
| 2026-10-06 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/predicates.md (move_fp_operand): Use CONSTANT_P |
| instead of CONST_DOUBLE_P. |
| |
| 2026-10-06 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/126063 |
| * config/aarch64/aarch64-acle-builtins.cc (function_instance::hash): |
| Use ptr diff for hash instead of ptr. |
| (gt_pch_nx): Add the pointers to PCH tracking. |
| |
| 2026-10-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127246 |
| * cfgcleanup.cc (try_crossjump_bb): Keep the predecessors of a |
| computed jump apart under the condition of the gate of |
| pass_duplicate_computed_gotos. |
| |
| 2026-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/53805 |
| * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass comparisons |
| in the correct order. |
| * gimple-fold.cc (and_comparisons_1): Add FIXME comment. |
| (maybe_fold_and_comparisons): Do not call and_comparisons_1 with |
| swapped comparisons. |
| |
| 2026-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/53805 |
| * fold-const.cc (combine_comparisons): Do not treat COMPCODE_FALSE |
| or COMPCODE_TRUE as trapping. |
| |
| 2026-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/127720 |
| * config/i386/i386.md (extendhfdf2): Enable also for |
| TARGET_F16C || TARGET_AVX512VL, in those cases expand as |
| extendhfsf2 followed by extendsfdf2. |
| |
| 2026-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127452 |
| * config/i386/i386-protos.h (ix86_expand_umulvndi_highpart): Declare. |
| * config/i386/i386-expand.cc (ix86_expand_umulvndi_highpart): |
| New function. |
| * config/i386/sse.md (umul<mode>3_highpart): Add for VI8_AVX2_AVX512F. |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost |
| IFN_MULH as we implement it. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc (vmax, vmaxq, vmin, |
| vminq, vmaxnm, vmaxnmq, vminnm, vminnmq): New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vmax, vmaxq, vmin, |
| vminq, vmaxnm, vmaxnmq, vminnm, vminnmq): New function groups. |
| * config/aarch64/arm_neon.h (vmax_s8, vmax_s16, vmax_s32, vmax_u8, |
| vmax_u16, vmax_u32, vmaxq_s8, vmaxq_s16, vmaxq_s32, vmaxq_u8, |
| vmaxq_u16, vmaxq_u32, vmaxnm_f32, vmaxnm_f64, vmaxnmq_f32, vmaxnmq_f64, |
| vmin_s8, vmin_s16, vmin_s32, vmin_u8, vmin_u16, vmin_u32, vminq_s8, |
| vminq_s16, vminq_s32, vminq_u8, vminq_u16, vminq_u32, vminnm_f32, |
| vminnm_f64, vminnmq_f32, vminnmq_f64, vmaxnm_f16, vmaxnmq_f16, |
| vminnm_f16, vminnmq_f16): Delete functions. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc (vrnd, vrndq, vrnda, |
| vrndaq, vrndi, vrndiq, vrndm, vrndmq, vrndn, vrndns, vrndnq, vrndp, |
| vrndpq, vrndx, vrndxq): New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vrnd, vrndq, vrnda, |
| vrndaq, vrndi, vrndiq, vrndm, vrndmq, vrndn, vrndns, vrndnq, vrndp, |
| vrndpq, vrndx, vrndxq): New function groups. |
| * config/aarch64/arm_neon.h (vrnd_f32, vrnd_f64, vrndq_f32, vrndq_f64, |
| vrnda_f32, vrnda_f64, vrndaq_f32, vrndaq_f64, vrndi_f32, vrndi_f64, |
| vrndiq_f32, vrndiq_f64, vrndm_f32, vrndm_f64, vrndmq_f32, vrndmq_f64, |
| vrndns_f32, vrndn_f32, vrndn_f64, vrndnq_f32, vrndnq_f64, vrndp_f32, |
| vrndp_f64, vrndpq_f32, vrndpq_f64, vrndx_f32, vrndx_f64, vrndxq_f32, |
| vrndxq_f64, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16, vrndi_f16, |
| vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16, vrndp_f16, |
| vrndpq_f16, vrndx_f16, vrndxq_f16): Delete functions. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc (vsqrt, vsqrtq): |
| New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vsqrt, vsqrtq): |
| New function groups. |
| * config/aarch64/arm_neon.h (vsqrt_f32, vsqrt_f64, vsqrtq_f32, |
| vsqrtq_f64, vsqrt_f16, vsqrtq_f16): Delete functions. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc (vhadd, vhaddq, vrhadd, |
| vrhaddq): New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vhadd, vhaddq, vrhadd, |
| vrhaddq): New function groups. |
| * config/aarch64/arm_neon.h (vhadd_s8, vhadd_s16, vhadd_s32, vhadd_u8, |
| vhadd_u16, vhadd_u32, vhaddq_s8, vhaddq_s16, vhaddq_s32, vhaddq_u8, |
| vhaddq_u16, vhaddq_u32, vrhadd_s8, vrhadd_s16, vrhadd_s32, vrhadd_u8, |
| vrhadd_u16, vrhadd_u32, vrhaddq_s8, vrhaddq_s16, vrhaddq_s32, |
| vrhaddq_u8, vrhaddq_u16, vrhaddq_u32): Delete functions. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h (TYPES_s_float_bhs_integer, |
| TYPES_sd_float_all_integer, s_float_bhs_integer, |
| sd_float_all_integer): New type lists. |
| * config/aarch64/aarch64-neon-builtins-base.cc (vaddv, vaddvq, vmaxv, |
| vmaxvq, vminv, vminvq, vmaxnmv, vmaxnmvq, vminnmv, vminnmvq): |
| New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vaddv, vaddvq, vmaxv, |
| vmaxvq, vminv, vminvq, vmaxnmv, vmaxnmvq, vminnmv, vminnmvq): |
| New function groups. |
| * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8, |
| vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64, |
| vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32, |
| vaddvq_f64, vmaxv_s8, vmaxv_s16, vmaxv_s32, vmaxv_u8, vmaxv_u16, |
| vmaxv_u32, vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, |
| vmaxvq_u32, vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_s8, |
| vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_s8, |
| vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16, vminvq_u32, vminnmv_f32, |
| vminnmvq_f32, vminnmvq_f64, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, |
| vminnmvq_f16): Delete functions. |
| |
| 2026-10-06 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc (vqaddb, vqaddh, |
| vqadds, vqaddd, vqadd, vqaddq, vqsubb, vqsubh, vqsubs, vqsubd, vqsub, |
| vqsubq): New function bases. |
| (one_element_vector_type_p): New function. |
| (gimple_ifn::fold): Automatically convert arguments with |
| single-element vector modes to the corresponding XX modes and back. |
| * config/aarch64/aarch64-neon-builtins-base.def (vqaddb, vqaddh, |
| vqadds, vqaddd, vqadd, vqaddq, vqsubb, vqsubh, vqsubs, vqsubd, vqsub, |
| vqsubq): New function groups. |
| * config/aarch64/arm_neon.h (vqadd_s8, vqadd_s16, vqadd_s32, |
| vqadd_s64, vqadd_u8, vqadd_u16, vqadd_u32, vqadd_u64, vqaddq_s8, |
| vqaddq_s16, vqaddq_s32, vqaddq_s64, vqaddq_u8, vqaddq_u16, vqaddq_u32, |
| vqaddq_u64, vqsub_s8, vqsub_s16, vqsub_s32, vqsub_s64, vqsub_u8, |
| vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_s8, vqsubq_s16, vqsubq_s32, |
| vqsubq_s64, vqsubq_u8, vqsubq_u16, vqsubq_u32, vqsubq_u64, vqaddb_s8, |
| vqaddh_s16, vqadds_s32, vqaddd_s64, vqaddb_u8, vqaddh_u16, vqadds_u32, |
| vqaddd_u64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubd_s64, vqsubb_u8, |
| vqsubh_u16, vqsubs_u32, vqsubd_u64): Delete functions. |
| |
| 2026-10-06 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/127692 |
| * config/s390/s390.md: Fix bswap:HI reg-reg splitter. |
| |
| 2026-10-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-scopedtables.h (expr_hash_elt::expr_hash_elt): Remove |
| the undefined tree overload. |
| (initialize_expr_from_cond): Remove declaration. |
| * tree-ssa-scopedtables.cc (initialize_expr_from_cond): Make |
| static. |
| |
| 2026-10-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127719 |
| * gimple-range-gori.cc (range_def_chain::clear): Do not |
| recalculate a def chain when it has just been cleared. |
| * tree-ssanames.cc (release_ssa_name_fn): Clear range info. |
| |
| 2026-10-05 linden <bestxmg@gmail.com> |
| |
| * text-art/types.h (text_art::array2::set): Add overload taking |
| element_t &&. |
| |
| 2026-10-05 linden <bestxmg@gmail.com> |
| |
| * xml.cc (node_with_children::add_text): Remove no-op std::move. |
| |
| 2026-10-05 linden <bestxmg@gmail.com> |
| |
| * diagnostics/source-printing.cc (to_text::push_html_tag) |
| (to_text::push_html_tag_with_class, to_text::add_html_tag_with_class) |
| (to_html::push_html_tag, to_html::push_html_tag_with_class) |
| (to_html::add_html_tag_with_class): Take tag/class names as |
| const char * rather than std::string by value. |
| |
| 2026-10-05 linden <bestxmg@gmail.com> |
| |
| * diagnostics/html-sink.cc (add_labelled_value): std::move 'id' and 'label' into |
| the xml::printer calls. |
| |
| 2026-10-05 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.cc (overall_scaled_runtime): New. |
| (good_cloning_opportunity_p): Scale PGO evaluations by |
| overall_scaled_runtime. |
| (ipcp_propagate_stage): Calculate also overall_scaled_runtime and |
| print it and unscaled time. |
| (ipa_cp_cc_finalize): Set overall_scaled_runtime to zero. |
| * params.opt (ipa-cp-profile-runtime-scaling): New. |
| * doc/params.texi (ipa-cp-profile-runtime-scaling): New. |
| |
| 2026-10-05 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.cc (hppa_rtx_costs_shadd_p): Strip SUBREG wrappers |
| from inner operands when checking if X represents a possible |
| shadd pattern. |
| |
| 2026-10-05 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_autovectorize_vector_modes): |
| All logic to only use aarch64-autovec-mode when specified. |
| * config/aarch64/aarch64.opt: Add --param=aarch64-autovec-mode. |
| * doc/params.texi: Document --param=aarch64-autovec-mode. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (single_block_loop_p): Remove. |
| (record_edge_info): Do not record equivalences on the exit edge of |
| a single block loop. |
| |
| 2026-10-05 Alex Coplan <alex.coplan@arm.com> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_2): In the two_operators |
| case, avoid setting the code field on the plus/minus nodes. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-scopedtables.cc (build_and_record_new_cond): Remove. |
| (record_conditions): Do not derive the implied conditions. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (dom_opt_dom_walker::const_or_copy_of_stmt): New. |
| (dom_opt_dom_walker::eliminate_redundant_computations): Ask it on |
| a lookup miss. |
| * tree-ssa-scopedtables.cc (simplify_binary_operation): Remove. |
| (lookup_avail_expr): Do not call it. |
| * tree-ssa-scopedtables.h (simplify_binary_operation): Remove. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (record_equivalences_from_incoming_edge): Make a |
| member of dom_opt_dom_walker and use its tables. |
| (eliminate_redundant_computations): Same. |
| (record_equivalences_from_stmt): Same. |
| (dom_opt_dom_walker::before_dom_children): Adjust the calls. |
| (dom_opt_dom_walker::optimize_stmt): Same. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (dom_opt_dom_walker::optimize_stmt): Remove the |
| boolean range special case. |
| |
| 2026-10-05 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-dom.cc (dom_opt_dom_walker::m_dummy_cond): Remove. |
| (dom_opt_dom_walker::test_for_singularity): Remove. |
| (dom_opt_dom_walker::fold_cond): Remove. |
| (dom_opt_dom_walker::simplify_stmt): New. |
| (dom_opt_dom_walker::optimize_stmt): Call it in place of |
| test_for_singularity and fold_cond. |
| |
| 2026-10-05 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Attribute Syntax): Remove stray period. |
| |
| 2026-10-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127693 |
| * tree-ssa-alias.h (get_continuation_for_phi): Remove |
| abort_on_visited argument. |
| * tree-ssa-alias.cc (maybe_skip_until): Likewise. Always |
| succeed when reaching an already visited region. |
| (get_continuation_for_phi): Remove abort_on_visited argument. |
| (walk_non_aliased_vuses): Clear the visited bitmap when |
| translating the reference instead of tracking whether |
| we translated. |
| * ipa-prop.cc (determine_known_aggregate_parts): Adjust. |
| * tree-ssa-pre.cc (translate_vuse_through_block): Likewise. |
| |
| 2026-10-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127693 |
| * tree-ssa-alias.cc (cmp_intpair): New qsort helper. |
| (get_continuation_for_phi): Sort the PHI args and avoid |
| processing duplicates. |
| |
| 2026-10-05 Andreas Schwab <schwab@suse.de> |
| |
| * doc/extend.texi (Other Builtins): Fix typo. |
| |
| 2026-10-05 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR target/127632 |
| * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): |
| Initialize size to 0. |
| |
| 2026-10-05 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md |
| (adddi3): Remove the previous sloppy workaround. |
| (adddi3_lowpart_0, adddi3_lowpart_1): New insn_and_split patterns. |
| |
| 2026-10-04 Roger Sayle <roger@nextmovesoftware.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md: Various whitespace and indentation clean-ups. |
| (aop_name_pfx): New code attribute to |
| produce "*" for XOR/PLUS. |
| (x86_64_shld<nf_name>): Use any_or_plus and aop_name_pfx. |
| (x86_64_shld_ndd<nf_name>): Likewise. |
| (x86_64_shld_1<nf_name>): Likewise. |
| (x86_64_shld_ndd_1<nf_name>): Likewise. |
| (*x86_64_shld_shrd_1_nozext_nf): Use any_or_plus. |
| (*x86_64_shld_shrd_1_nozext): Likewise. |
| (*x86_64_shld_2): Likewise. |
| (*x86_64_shld_ndd_2): Likewise. |
| (x86_shld<nf_name>): Use any_or_plus and aop_name_pfx. |
| (x86_shld_1<nf_name>): Likewise. |
| (x86_shld_ndd_1<nf_name>): Likewise. |
| (*x86_shld_shrd_1_nozext_nf): Use any_or_plus. |
| (*x86_shld_shrd_1_nozext): Likewise. |
| (*x86_shld_2): Likewise. |
| (*x86_shld_ndd_2): Likewise. |
| (x86_64_shrd<nf_name>): Use any_or_plus and aop_name_pfx. |
| (x86_64_shrd_ndd<nf_name>): Likewise. |
| (x86_64_shrd_1<nf_name>): Likewise. |
| (x86_64_shrd_ndd_1<nf_name>): Likewise. |
| (*x86_64_shrd_shld_1_nozext_nf): Use any_or_plus. |
| (*x86_64_shrd_shld_1_nozext): Likewise. |
| (*x86_64_shrd_2): Likewise. |
| (*x86_64_shrd_ndd_2): Likewise. Fix match_dup operand numbering. |
| (x86_shrd<nf_name>): Use any_or_plus and aop_name_pfx. |
| (x86_shrd_ndd<nf_name>): Likewise. |
| (x86_shrd_1<nf_name>): Likewise. |
| (x86_shrd_ndd_1<nf_name>): Likewise. |
| (*x86_shrd_shld_1_nozext_nf): Use any_or_plus. |
| (*x86_shrd_shld_1_nozext): Likewise. |
| (*x86_shrd_2): Likewise. |
| (*x86_shrd_ndd_2): Likewise. |
| * doc/md.texi: Document aop<mode>3 as a named pattern. |
| |
| 2026-10-04 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md (canonicalize_funcptr_for_compare): Check for |
| SYMBOL_REF targets that are not function addresses early and emit |
| a direct move instruction to bypass redundant libcall wrappers. |
| |
| 2026-10-04 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * vr-values.cc (simplify_using_ranges::simplify_compare_using_ranges_1): |
| Fold a LE or GE test between two names to EQ when the relation |
| oracle implies it. |
| |
| 2026-10-04 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-mixed.h (operator_bitwise_or::lhs_op1_relation): New. |
| (operator_min::lhs_op1_relation): New. |
| (operator_min::lhs_op2_relation): New. |
| (operator_max::lhs_op1_relation): New. |
| (operator_max::lhs_op2_relation): New. |
| * range-op.cc (operator_bitwise_and::lhs_op1_relation): Return |
| VREL_EQ when the operands are equal. |
| (operator_bitwise_or::lhs_op1_relation): New. |
| (operator_min::lhs_op1_relation): New. |
| (operator_min::lhs_op2_relation): New. |
| (operator_max::lhs_op1_relation): New. |
| (operator_max::lhs_op2_relation): New. |
| |
| 2026-10-03 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (CORE-V Built-in Functions): Update URL. |
| |
| 2026-10-03 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/install.texi (Tools/packages necessary for modifying GCC): |
| Note that Texinfo older than 7.1.1 may throw incorrect build |
| warnings (as opposed to Texinfo older than 7.1). |
| |
| 2026-10-03 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options): Update documentation of linker |
| stubs relation to linker relaxation. |
| |
| 2026-10-03 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127689 |
| * match.pd (`(trunc)abs((ext)a)`): Move right |
| after `abs((ext)a)` pattern. Restrict to |
| non integral types. |
| |
| 2026-10-02 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (dom_oracle::recomputed_relation): Change |
| implementation. |
| (dom_oracle::relation_search): Invoke recomputed_relation. |
| * value-relation.h (recomputed_relation): Adjust prototype. |
| |
| 2026-10-02 Andrew MacLeod <amacleod@redhat.com> |
| |
| * flag-types.h (RANGER_DEBUG_RELATION): New. |
| (RANGER_DEBUG_TRACE_RELATION): New. |
| * params.opt (--param=ranger-debug): Adjusted options. |
| * tree-vrp.cc (execute_fast_vrp): Remove deprecated param. |
| * value-query.cc (range_query::create_relation_oracle): Likewise. |
| * value-query.h (create_relation_oracle): Adjust prototype. |
| * value-relation.cc (frontier_data::frontier_data): New. |
| (frontier_data::set_known): New. |
| (frontier_data::known_relation): New. |
| (frontier_data::clear_search): New. |
| (dom_oracle::dom_oracle): Initialize new fields. |
| (dom_oracle::~dom_oracle): Release new fields. |
| (dom_oracle::record): Do not register transitives. |
| (dom_oracle::register_transitives): Delete. |
| (dom_oracle::find_relation_dom): Do not recompute relations. |
| (dom_oracle::nearest_relations): New. |
| (dom_oracle::cache_relation): New. |
| (dom_oracle::start_search): New. |
| (dom_oracle::add_to_frontier): New. |
| (dom_oracle::expand_frontier): New. |
| (dom_oracle::relation_search): New. |
| (dom_oracle::query): Use new relation_search routine. |
| * value-relation.h (dom_oracle::dom_oracle): Adjust prototype. |
| (dom_oracle::m_do_trans): Remove. |
| (class frontier_data): New. |
| (register_transitives): Remove prototype. |
| (nearest_relations): New prototype. |
| (relation_search): Likewise. |
| (cache_relation): Likewise. |
| (struct related): New. |
| (m_near): New. |
| (m_lhs_search, m_rhs_search): New. |
| (struct frontier_element): New. |
| (m_worklist): New. |
| (m_wl_ix): New. |
| (start_search): New. |
| (add_to_frontier): New. |
| (expand_frontier): New. |
| |
| 2026-10-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/avr/avr.opt.urls: Regenerate. |
| * config/nvptx/nvptx.opt.urls: Regenerate. |
| |
| 2026-10-02 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR tree-optimization/127687 |
| * tree-ssa-forwprop.cc (pass_forwprop::execute): Skip debug |
| statements before assigning UIDs. |
| |
| 2026-10-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * configure.ac [target=avr-*.*]: Test linker for --prune-vectab, |
| and AC_DEFINE HAVE_LD_AVR_PRUNE_VECTAB if supported. |
| * config.in: Rebuild. |
| * configure: Rebuild. |
| * config/avr/avr.opt (-mprune-vectab): New target option. |
| * config/avr/specs.h (LINK_SPEC): Add %(link_prune_vectab). |
| * config/avr/gen-avr-mmcu-specs.cc (print_mcu) |
| [HAVE_LD_AVR_PRUNE_VECTAB]: Emit link_prune_vectab spec. |
| * config/avr/avr.opt.urls: Rebuild. |
| * doc/invoke.texi (AVR Options): Document -mprune-vectab. |
| |
| 2026-10-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127693 |
| * tree-ssa-alias.cc (maybe_skip_until): Stop when reaching |
| the PHI again. |
| |
| 2026-10-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR bootstrap/127635 |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Avoid is_a<..> |
| with ref param. |
| |
| 2026-10-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/127677 |
| * tree-vect-loop-manip.cc (vect_gen_prolog_loop_niters): Generate MIN |
| expression on niters. |
| |
| 2026-10-02 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc (intersects_p): New. |
| (class ctor_ref_range): Add SRC. |
| (ctor_ref_range::accumulate_range_from_array_ref): Load only from |
| the elements the range of the index reaches, a constant index |
| included. |
| (fold_using_range::fold_stmt): Pass the source to |
| range_from_readonly_var. |
| (fold_using_range::range_from_readonly_var): Add SRC. |
| * gimple-range-fold.h (fold_using_range::range_from_readonly_var): |
| Adjust. |
| |
| 2026-10-01 Guillaume Gomez <contact@guillaume-gomez.fr> |
| |
| * Makefile.in: Compile new attr-handlers.cc file |
| * attr-handlers.cc: New file. |
| * attr-handlers.h: New file. |
| |
| 2026-10-01 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc |
| (ctor_ref_range::accumulate_range_from_array_ref): Walk the |
| initializer by index to find the elements it leaves out. |
| |
| 2026-10-01 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.cc (gimple_folder::fold): |
| Don't bail out of folding early. |
| |
| 2026-10-01 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc (class ctor_ref_range): New. |
| (ctor_ref_range::accumulate_range): New, the dispatch of... |
| (range_from_readonly_load): ...this. Remove. |
| (ctor_ref_range::accumulate_range_from_scalar, |
| ctor_ref_range::accumulate_range_from_component_ref, |
| ctor_ref_range::accumulate_range_from_array_ref): New, its cases. |
| (range_from_missing_constructor_part): Rename to... |
| (ctor_ref_range::accumulate_range_from_missing_constructor_elt): |
| ...this. |
| (fold_using_range::range_from_readonly_var): Collect the component |
| path from the aggregate out; walk it with ctor_ref_range. |
| |
| 2026-10-01 Richard Biener <rguenther@suse.de> |
| |
| * fold-const-call.cc (fold_const_call_1): Check the |
| return type rather than the mode for a scalar integral |
| type before dispatching to fold_const_call_ss and |
| fold_const_call_sss. |
| |
| 2026-10-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127686 |
| * tree-vect-loop.cc (vect_analyze_loop_costing): Do not |
| require a single vector iteration to be profitable iff |
| the number of scalar iterations is constant. |
| |
| 2026-10-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/127669 |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_bswap_bitreverse): |
| Set m_var_msb to true. |
| |
| 2026-10-01 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR tree-optimization/101179 |
| * tree-ssa-forwprop.cc (simplify_phi_result_movdiv): Reset the |
| flow-sensitive info of the result when its value changes. |
| |
| 2026-09-30 Dominic P <gcc@gcc.dp11.uk> |
| |
| * tree-vect-patterns.cc (vect_narrow_unprom_to_range): New function. |
| (vect_widened_op_tree): Use it for external defs. |
| |
| 2026-09-30 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR tree-optimization/127103 |
| * match.pd (minmax (a - c, b) + c): Also require that a - c |
| does not overflow. |
| |
| 2026-09-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.def (vsm3ss1q, |
| vsm3tt1aq, vsm3tt1bq, vsm3tt2aq, vsm3tt2bq, vsm3partw1q, |
| vsm3partw2q, vsm4eq, vsm4ekeyq): New function declarations. |
| * config/aarch64/aarch64-neon-builtins-base.cc (vsm3ss1q, |
| vsm3tt1aq, vsm3tt1bq, vsm3tt2aq, vsm3tt2bq, vsm3partw1q, |
| vsm3partw2q, vsm4eq, vsm4ekeyq): New function bases: |
| * config/aarch64/aarch64-simd-builtins.def (sm3ss1q, sm3tt1aq, |
| sm3tt1bq, sm3tt2aq, sm3tt2bq, sm3partw1q, sm3partw2q, sm4eq, |
| sm4ekeyq): Delete builtin functions. |
| * config/aarch64/arm_neon.h (vsm3ss1q_u32, |
| vsm3tt1aq_u32, vsm3tt1bq_u32, vsm3tt2aq_u32, vsm3tt2bq_u32, |
| vsm3partw1q_u32, vsm3partw2q_u32, vsm4eq_u32, vsm4ekeyq_u32): |
| Delete function definitions. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): Delete |
| now unused array and macro. |
| |
| 2026-09-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc: New function |
| bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vsha512hq, |
| vsha512h2q, vsha512su0q, vsha512su1q): New function |
| declarations. |
| * config/aarch64/aarch64-simd-builtins.def: Delete builtin |
| functions. |
| * config/aarch64/arm_neon.h (vsha512hq_u64, vsha512h2q_u64, |
| vsha512su0q_u64, vsha512su1q_u64): Delete functions. |
| |
| 2026-09-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc: New function |
| bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vsha256hq, |
| vsha256h2q, vsha256su0q, vsha256su1q): New function |
| definitions. |
| * config/aarch64/aarch64-simd-builtins.def: Delete builtin |
| functions |
| * config/aarch64/arm_neon.h (vsha256hq_u32, vsha256h2q_u32, |
| vsha256su0q_u32, vsha256su1q_u32): Delete functions. |
| |
| 2026-09-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc: New function |
| bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vsha1cq, |
| vsha1mq, vsha1pq, vsha1h, vsha1su0q, vsha1su1q): New function |
| declarations. |
| * config/aarch64/aarch64-simd-builtins.def: Delete builtin |
| functions. |
| * config/aarch64/arm_neon.h (vsha1cq_u32, vsha1mq_u32, |
| vsha1pq_u32, vsha1h_u32, vsha1su0q_u32, vsha1su1q_u32): Delete |
| function definitions |
| |
| 2026-09-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_general_gimple_fold_builtin): Delete cases for |
| `crypto_aese` and `crypto_aesd`. |
| (aarch64_fold_aes_op): Delete now-unused function. |
| * config/aarch64/aarch64-neon-builtins-base.cc (struct |
| gimple_exact_insn): New struct. |
| * config/aarch64/aarch64-neon-builtins-base.def (vaeseq, vaesdq, |
| vaesmcq, vaesimcq): New function declarations. |
| * config/aarch64/aarch64-simd-builtins.def: Delete builtin |
| functions. |
| * config/aarch64/arm_neon.h (vaeseq_u8, vaesdq_u8, vaesmcq_u8, |
| vaesimcq_u8): Delete function definitions. |
| |
| 2026-09-30 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * gimplify.cc (build_omp_iterators_loops): Clear |
| OMP_CLAUSE_ITERATORS after sorry. |
| |
| 2026-09-30 Luis Silva <luis.silva@globalfoundries.com> |
| |
| * config/arc/arc.h (arc_cd_to_as): Declare. |
| (EXTRA_SPEC_FUNCTIONS): Register cd_to_as. |
| (ASM_SPEC): Call cd_to_as with the CPU name and code-density |
| markers from -mcode-density/-mno-code-density. |
| * config/arc/driver-arc.cc (arc_lookup_cpu): New helper. |
| (arc_cpu_to_as): Drop code-density handling. |
| (arc_cd_to_as): New spec function; add -mcode-density only when |
| appropriate, and omit it for -mno-code-density. |
| |
| 2026-09-30 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127654 |
| * tree-ssa-phiopt.cc (factor_out_conditional_operation): Also |
| allow NEGATE_EXPR and BIT_NOT_EXPR with a constant in some |
| cases. |
| |
| 2026-09-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127670 |
| * tree-vect-stmts.cc (vectorizable_shift): Analyze defs |
| of the shift operand SLP node instead of the scalar stmt |
| operands for uniformity. |
| |
| 2026-09-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/127650 |
| * config/i386/i386.cc (ix86_gimplify_va_arg): Limit type_align |
| to arg_boundary. |
| |
| 2026-09-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60075 |
| * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Do not |
| use the type of the FIELD_DECL for COMPONENT_REF ops. |
| * tree-ssa-pre.cc (create_component_ref_by_pieces_1): |
| Likewise. |
| |
| 2026-09-30 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (cpu_supports_info): Silence a |
| warning. |
| |
| 2026-09-30 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc (range_from_missing_constructor_part): Return |
| void. |
| (range_from_readonly_load): Adjust. |
| |
| 2026-09-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Use the index of |
| the basic block of USE_STMT instead of STMT to purge EH edges. |
| |
| 2026-09-29 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc (range_from_missing_constructor_part): Add |
| zero for pointers too. Remove assert. |
| (range_from_readonly_load): Add a null or a non-null range for a |
| pointer element. |
| (fold_using_range::range_from_readonly_var): Return the |
| accumulated range for pointers too, and fail if it is varying. |
| |
| 2026-09-29 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| |
| PR target/126157 |
| * config/arc/arc.cc (prepare_move_operands): Force the address of |
| an uncached store into a register when it is not a valid store |
| destination. |
| * config/arc/arc.md (stdi<mode>): Use move_dest_operand for the |
| destination operand. |
| (*stdidi_split): Use non_mod_move_dest_operand for the destination |
| operand. |
| * config/arc/predicates.md (non_mod_move_dest_operand): New |
| predicate that disallows PRE/POST_INC/DEC. |
| |
| 2026-09-29 Jonathan Wakely <jwakely@redhat.com> |
| |
| * ginclude/stdalign.h (__alignas_is_defined, __alignof_is_defined): |
| Note that the macros were removed in C23 and C++26. |
| * ginclude/stdbool.h (__bool_true_false_are_defined): Note that |
| the macro is obsolescent since C23 and deprecated since C++23. |
| |
| 2026-09-29 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/2827.md: Remove attributes |
| zEC12_{cracked,expanded,endgroup,groupalone}. |
| * config/s390/2964.md: Remove attributes |
| z13_unit_{fpd,fxa,fxb,fxd,lsu,vfu} and |
| z13_{cracked,expanded,groupalone,endgroup,groupoftwo}. |
| * config/s390/3906.md: Remove attributes |
| z14_unit_{fpd,fxa,fxb,fxd,lsu,vfu} and |
| z14_{cracked,expanded,groupalone,endgroup,groupoftwo}. |
| * config/s390/3931.md: Remove attributes |
| z16_unit_{fpd,fxa,fxb,fxd,lsu,vfu} and |
| z16_{cracked,expanded,groupalone,endgroup,groupoftwo}. |
| * config/s390/8561.md: Remove attributes |
| z15_unit_{fpd,fxa,fxb,fxd,lsu,vfu} and |
| z15_{cracked,expanded,groupalone,endgroup,groupoftwo}. |
| * config/s390/9175.md: Remove attributes |
| z17_unit_{fpd,fxa,fxb,fxd,lsu,vfu} and |
| z17_{cracked,expanded,groupalone,endgroup,groupoftwo}. |
| * config/s390/s390.cc (enum s390_sched_unit): New enum |
| describing the units which should be tracked. |
| (struct s390_sched_insn_descr): New struct describing an |
| instruction. |
| (s390_get_sched_attrmask): Removed. |
| (s390_get_unit_mask): Removed. |
| (s390_is_fpd): Removed. |
| (s390_is_fxd): Removed. |
| (s390_is_longrunning): Removed. |
| (get_sched_insn_descr): New function returning the pipeline |
| description for a particular insn. |
| (s390_sched_score): Use new insn description. |
| (PRINT_SCHED_ATTR): Remove. |
| (s390_sched_variable_issue): Use new insn description. |
| (s390_sched_init_global): New function, set insn description |
| according to current tune level. |
| (TARGET_SCHED_INIT_GLOBAL): Corresponding define. |
| * config/s390/2827.h: New file. |
| * config/s390/2964.h: New file. |
| * config/s390/3906.h: New file. |
| * config/s390/3931.h: New file. |
| * config/s390/8561.h: New file. |
| * config/s390/9175.h: New file. |
| |
| 2026-09-29 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * genattr-common.cc (gen_attr): New preprocessor definition |
| ATTR_ENUM_MNEMONIC_COUNT. |
| |
| 2026-09-29 Richard Biener <rguenther@suse.de> |
| |
| PR target/127633 |
| * config/i386/sse.md (movsd/movhpd to movupd): Use |
| widen_memory_access instead of adjust_address to merge |
| the MEMs. |
| * config/i386/i386.cc (ix86_operands_ok_for_move_multiple): |
| Avoid merging loads from different parameters. |
| |
| 2026-09-29 linden <bestxmg@gmail.com> |
| |
| * ipa-cp.h (ipcp_bits_lattice::set_to_constant) |
| (ipcp_bits_lattice::meet_with, ipcp_bits_lattice::meet_with_1): |
| Take widest_int parameters by const reference. |
| * ipa-cp.cc (ipcp_bits_lattice::set_to_constant) |
| (ipcp_bits_lattice::meet_with, ipcp_bits_lattice::meet_with_1): |
| Likewise. |
| |
| 2026-09-29 Alexey Lapshin <alexey.lapshin@espressif.com> |
| |
| PR target/107549 |
| * config/xtensa/xtensa.cc (xt_true_regnum): Don't index |
| reg_renumber before LRA starts. |
| |
| 2026-09-29 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390.cc (s390_gimple_fold_builtin): New |
| function. |
| |
| 2026-09-29 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| PR target/126891 |
| * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Change operand |
| from DImode to SImode and convert it to DImode before use. |
| |
| 2026-09-29 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-09-28 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/127075 |
| * config/riscv/riscv-vector-costs.cc (compute_estimated_lmul): |
| Rename... |
| (estimate_lmul): ...To this. |
| (compute_lmul_from_conversion_ratio): Remove. |
| (costs::compute_live_ranges_and_lmul): Remove param. |
| (costs::compute_conversion_dynamic_lmul): Remove. |
| (costs::has_unexpected_spills_p): Rename... |
| (costs::has_spills_p): ...To This. |
| (costs::record_lmul_spills): Adjust comment. |
| (costs::record_potential_unexpected_spills): Rename... |
| (costs::record_potential_spills): ...To this. |
| (costs::compare_lmul_to): New function. |
| (costs::better_main_loop_than_p): Call new function. |
| (costs::record_type_sizes): New function. |
| (costs::add_stmt_cost): Call new function. |
| (costs::finish_cost): Compute type ratio for LMUL. |
| * config/riscv/riscv-vector-costs.h: Declare new function. |
| |
| 2026-09-28 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/127553 |
| * config/riscv/riscv-vector-builtins.cc (validate_instance_type_required_extensions): |
| Add location param for logging. |
| (expand_builtin): Pass location. |
| (check_builtin_call): Likewise. |
| |
| 2026-09-28 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/127484 |
| PR target/127547 |
| * config/riscv/riscv.cc (riscv_subpart): Add parameters and |
| handle more part sizes. |
| (spill_subreg_move): Allow subreg bytes != 0. |
| (riscv_split_quadword_move): Use riscv_subpart for TFmode. |
| * config/riscv/riscv.md (movtf): Add. |
| |
| 2026-09-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Fix moptimize link. |
| * config/nvptx/nvptx.opt.urls: Same. |
| |
| 2026-09-28 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv-vector-costs.cc (get_pattern_var): New |
| function. |
| (costs::compute_local_live_ranges): Replace the argument with |
| the pattern result when necessary. |
| |
| 2026-09-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126531 |
| * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): Do not |
| update if there are abnormal edges. |
| |
| 2026-09-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127203 |
| * gimple-range-cache.cc (ranger_cache::range_from_dom): Mark both |
| outgoing edges and inferred ranges as "to calculate". |
| |
| 2026-09-28 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def: Add gfx1154. |
| * config/gcn/gcn-tables.opt: Regenerate. |
| * doc/invoke.texi (-march=): Add gfx1154. |
| |
| 2026-09-28 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR target/126245 |
| * config/riscv/riscv.md (neg<mode>cc): Add an expansion for |
| conditional negation of integral values. |
| |
| 2026-09-28 Stian Halseth <stian@itx.no> |
| |
| PR rtl-optimization/127578 |
| * doc/sourcebuild.texi (cbcond_hw): Document. |
| * ifcvt.cc (find_cond_trap): Reject a sequence that clobbers a |
| condition-code register live out of TEST_BB. |
| |
| 2026-09-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/118407 |
| * tree-vect-loop.cc (vect_update_early_break_profiles): New. |
| (scale_profile_for_vect_loop): Use it and pass loop_vinfo. |
| (vect_transform_loop): Pass loop_vinfo to scale_profile_for_vect_loop. |
| |
| 2026-09-27 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/127267 |
| * config/iq2000/iq2000.h (SMALL_INT): Fix trivial parenthesis goof. |
| * config/iq2000/iq2000.cc (iq2000_move_1word): Eliminate useless |
| IOR with 0x0 operand. |
| * config/iq2000/iq2000.md (aopsi3): New expander. |
| (32 bit integer move splitter): Turn low part IOR into a copy when |
| the constant is zero. |
| |
| 2026-09-27 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR target/69374 |
| * doc/install.texi (Microsoft Windows): Remove the Windows CE |
| subsection. |
| |
| 2026-09-27 wangjue <juewang@linux.alibaba.com> |
| |
| * tree-vect-patterns.cc (vect_sat_trunc_clip_input_vectype): New. |
| (vect_recog_sat_trunc_pattern): Look through promotions and check |
| target support for MAX_EXPR. |
| |
| 2026-09-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.cc (machopic_select_section): Do not try to |
| inspect a typename which has no id. |
| |
| 2026-09-27 Samarth Tandale <samarth.tandale@oss.qualcomm.com> |
| |
| PR tree-optimization/112094 |
| * match.pd: Add fold for (a != 0) | (popcount(a) == n) and |
| (a == 0) & (popcount(a) != n). |
| |
| 2026-09-27 James K. Lowden <jklowden@cobolworx.com> |
| |
| * config/avr/avr.opt.urls: Regenerate. |
| * config/nvptx/nvptx.opt.urls: Regenerate. |
| |
| 2026-09-27 Jeff Law <jeffreyalaw@gmail.com> |
| |
| PR tree-optimization/126462 |
| * match.pd (reassociate xor to expose rotate patterns): Rewrite using |
| wi:: interfaces for the xor constant operand. |
| |
| 2026-09-27 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Specific): No longer mention Windows NT on |
| Alpha and PowerPC. |
| |
| 2026-09-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/127618 |
| * fold-const.cc (test_vec_unpack_folding): Update tests |
| |
| 2026-09-26 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (nvptx_encode_section_info): Handle |
| 'omp groupprivate'. |
| * varpool.cc (varpool_node::get_create): Print sorry for |
| 'omp groupprivate' variables except for device_type(nohost) and |
| no offloading or nvptx offloading. |
| |
| 2026-09-26 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| PR debug/119940 |
| * dwarf2codeview.cc (codeview_start_source_file): Open the source file |
| in binary mode. |
| |
| 2026-09-25 Dominic P <gcc@gcc.dp11.uk> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_<sra_op>rsra_n<mode>_insn): Take the shift amount in |
| <V2XWIDE> mode. |
| (aarch64_<sra_op>rsra_n<mode>): Build the shift amount vector in |
| that mode. |
| (aarch64_<sra_op>rshr_n<mode><vczle><vczbe>_insn): Take the shift |
| amount in <V2XWIDE> mode. |
| (aarch64_<sra_op>rshr_n<mode>): Build the shift amount vector in |
| that mode. |
| |
| 2026-09-25 Dominic P <gcc@gcc.dp11.uk> |
| |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_<sra_op>rshrn_n<mode>_insn<vczle><vczbe>): New pattern. |
| (*aarch64_<sra_op>rshrn2_n<mode>_insn_le): Likewise. |
| (*aarch64_<sra_op>rshrn2_n<mode>_insn_be): Likewise. |
| |
| 2026-09-25 Dominic P <gcc@gcc.dp11.uk> |
| |
| * config/aarch64/predicates.md (aarch64_simd_umax_half_mode) |
| (aarch64_simd_umax_quarter_mode): Remove. |
| * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>) |
| (*aarch64_sqmovun<mode>_insn<vczle><vczbe>) |
| (aarch64_sqxtun2<mode>_le, aarch64_sqxtun2<mode>_be) |
| (aarch64_sqxtun2<mode>) |
| (*aarch64_sqshrun_n<mode>_insn<vczle><vczbe>) |
| (aarch64_sqshrun_n<mode>) |
| (*aarch64_sqrshrun_n<mode>_insn<vczle><vczbe>) |
| (aarch64_sqrshrun_n<mode>, aarch64_sqshrun2_n<mode>_insn_le) |
| (aarch64_sqshrun2_n<mode>_insn_be, aarch64_sqshrun2_n<mode>) |
| (aarch64_sqrshrun2_n<mode>_insn_le) |
| (aarch64_sqrshrun2_n<mode>_insn_be, aarch64_sqrshrun2_n<mode>): |
| Match an us_truncate of an smax instead of a truncate of an smin |
| of an smax. |
| |
| 2026-09-25 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| |
| * config/riscv/arcv-rmx100.md (arcv_rmx100_load_insn): |
| Update latency. |
| (arcv_rmx100_fpload_insn): Merge with *_load_insn. |
| |
| 2026-09-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/127602 |
| * except.h (struct eh_catch_d): Add chain_next and chain_prev |
| GTY. |
| |
| 2026-09-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/127602 |
| * except.h (struct eh_region_d): Add chain_next GTY. |
| |
| 2026-09-25 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/127485 |
| * range-op-mixed.h (class operator_minus): Add op1_op2_relation. |
| * range-op.cc (operator_minus::op1_op2_relation): New. |
| * gimple-range-fold.cc (fur_source::register_outgoing_edges): |
| Derive relations from any integral export, not just booleans. |
| |
| 2026-09-25 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/127326 |
| * lra-constraints.cc (process_alt_operands): Resolve the operand |
| to memory when it is a winning MEM and the value can be held in a |
| register. |
| |
| 2026-09-25 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR lto/127589 |
| * lto-streamer-in.cc (lto_input_mode_table): With ACCEL_COMPILER, |
| check whether found float and int modes are actually enabled/available |
| at runtime. |
| |
| 2026-09-25 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.cc (simplify_binary_operation_1) <SMUL_HIGHPART>: |
| Add transformations for multiplications by one and powers to two. |
| <UMUL_HIGHPART>: Likewise. |
| |
| 2026-09-25 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/112465 |
| * config/aarch64/aarch64.cc (aarch64_override_options_after_change_1): |
| Turn off outline atomics with -mcmodel=large. |
| * doc/invoke.texi (-mcmodel=large): Update description. |
| |
| 2026-09-25 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| PR target/54412 |
| * except.cc (sjlj_build_landing_pads): Pass ASLK_REDUCE_ALIGN. |
| * function.cc (assign_stack_local_2): New function, split from |
| assign_stack_local_1. Honour an explicit alignment beyond |
| MAX_SUPPORTED_STACK_ALIGNMENT by overallocating the slot and aligning |
| its address at run time. Optionally return the address before run-time |
| alignment. |
| (assign_stack_local_1): Wrap assign_stack_local_2. |
| (temp_slot): Add base_addr. |
| (assign_stack_temp_for_type): Distinguish required and preferred |
| alignment. Record the address before run-time alignment and recalculate |
| the aligned address when reusing an over-aligned slot. Do not split an |
| over-aligned BLKmode slot. |
| (combine_temp_slots): Do not combine over-aligned slots. |
| (assign_parm_setup_block): Let assign_stack_local align the slot. |
| * lra-spills.cc (assign_mem_slot): Pass ASLK_REDUCE_ALIGN. |
| |
| 2026-09-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127588 |
| * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): |
| Use an unsigned type to compute the epilog start value. |
| |
| 2026-09-25 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| PR rtl-optimization/106770 |
| * config/rs6000/rs6000-p8swap.cc (non_permuting_mem_insn): New function. |
| (handle_non_permuting_mem_insn): New function. |
| (rs6000_analyze_swaps): Handle swappable instructions only in certain |
| webs. |
| (web_requires_special_handling): New instance variable. |
| (handle_special_swappables): Remove handling of non-permuting load/store |
| instructions. |
| |
| 2026-09-25 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (mul<mode>3): Remove erroneous hi*hi step. |
| (mul<mode>3_dup): Likewise. |
| (mul<mode>3_exec): Likewise. |
| (mul<mode>3_dup_exec): Likewise. |
| |
| 2026-09-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127601 |
| * tree-vect-stmts.cc (get_load_store_type): Move overrun |
| flags and final handling to the relevant section, after |
| determining the step direction and the memory access type. |
| Only elide overrun with half-vector accesses for the |
| memory access types supporting that. Do not claim |
| VMAT_STRIDED_SLP can handle overruns when the step is |
| negative. |
| (vectorizable_load): For the last memory access type group |
| analysis/transform assert what memory access type that covers. |
| |
| 2026-09-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Fix moptimize link. |
| |
| 2026-09-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127600 |
| * tree-vect-loop.cc (vect_is_simple_iv_evolution): Explicitly |
| initialize STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE. |
| (is_nonwrapping_integer_induction): Bail out for alternate |
| induction types. |
| |
| 2026-09-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/127517 |
| * internal-fn.cc (expand_mul_overflow): Revert the 2023-09-06 |
| changes. Instead promote arg0 and/or arg1 to a type with |
| uns{0,1}_p signedness and mode precision if they have non-mode |
| precision. Pass the original arg0/arg1 and their type to |
| ubsan_build_overflow_builtin, instead of passing the promoted |
| ones. |
| |
| 2026-09-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt (-moptimize): New target option. |
| * config/avr/avr.opt.urls: Add resprective URL. |
| * common/config/avr/avr-common.cc (avr_enable_optimizations): New |
| static function. |
| (avr_handle_option) [OPT_moptimize]: Call it. |
| * doc/invoke.texi (AVR Options) <-moptimize>: Document it. |
| |
| 2026-09-25 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR tree-optimization/127552 |
| * match.pd: Fix constant comparison in ((X >> C1) & C2) << C3. |
| |
| 2026-09-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/127599 |
| * config/aarch64/aarch64.cc (aarch64_evpc_rev64_ext): Move |
| the testing_p after the is_bb_in_loop test. |
| |
| 2026-09-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/126848 |
| * flag-types.h (enum auto_init_type): Change AUTO_INIT_CXX26 |
| value from 3 to 4. |
| * gimplify.cc (gimplify_decl_expr): Mask off AUTO_INIT_CXX26 bit |
| before comparing to AUTO_INIT_PATTERN. |
| (gimplify_target_expr): Likewise. |
| * internal-fn.cc (expand_DEFERRED_INIT): Likewise. Formatting fix. |
| * opts.cc (finish_options): For -fhardened or in AUTO_INIT_CXX26 |
| bit from previous value if it was set. Mask off AUTO_INIT_CXX26 bit |
| before comparing to AUTO_INIT_ZERO. |
| * tree-ssa-ccp.cc (likely_value): Return VARYING rather than UNDEFINED |
| for .DEFERRED_INIT call with AUTO_INIT_CXX26 bit set in the second |
| argument. |
| * tree-ssa.cc (ssa_undefined_value_p): Return false rather than true |
| for .DEFERRED_INIT call with AUTO_INIT_CXX26 bit set in the second |
| argument. |
| * tree-ssa-uninit.cc (has_undefined_value_p): Return true for |
| SSA_NAMEs with .DEFERRED_INIT call as SSA_NAME_DEF_STMT. |
| |
| 2026-09-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * tree-pretty-print.cc (dump_omp_iterators): Print OMP_ITERATOR_BLOCK. |
| |
| 2026-09-24 Andrew Stubbs <ams@baylibre.com> |
| |
| * gdbhooks.py (Rtx): Decode more things. |
| (RtxPrinter): Improve output. |
| (build_pretty_printer): Match more rtx types. |
| |
| 2026-09-24 Andrew Stubbs <ams@baylibre.com> |
| |
| PR target/127542 |
| * config/gcn/gcn-valu.md (<expander><mode>2<exec>): Add |
| "popcount_extra_op". |
| |
| 2026-09-24 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/127579 |
| * tree-vect-loop.cc (info_for_reduction): Add assert. |
| * tree-vect-stmts.cc (vectorizable_operation): Pass SLP node. |
| |
| 2026-09-24 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/i386/i386-features.cc |
| (rest_of_insert_endbr_and_patchable_area): |
| Reuse an existing ENDBR. |
| |
| 2026-09-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * doc/install.texi (Installing GCC): Change node pointer from |
| Binaries to Specific. |
| (Specific): Move to directly follow Installing GCC. |
| Update node pointers accordingly. |
| (Binaries): Move to follow Specific. |
| Update node pointers accordingly. |
| * doc/include/fdl.texi (GNU Free Documentation License): Under |
| @ifset gfdlhtml, change node pointer from Specific to Binaries |
| to match install.texi's chapter order. |
| |
| 2026-09-24 Richard Biener <rguenther@suse.de> |
| |
| PR target/127268 |
| * config/i386/i386.cc (ix86_default_vector_cost): For |
| integer mode vec_to_scalar add sse_to_integer cost. |
| |
| 2026-09-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127571 |
| * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): |
| Re-associate offset computation to avoid overflow. |
| |
| 2026-09-24 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-09-23 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/v850/v850.cc (v850_print_oprerand): Handle operands |
| like (high (const ...)) by stripping the high and falling into |
| the (const ...) case. |
| |
| 2026-09-23 Vijay Shankar <vijay@linux.ibm.com> |
| |
| PR target/27479 |
| * config/rs6000/rs6000.md (tprel_ld_<az>_<HSI:mode>): New pattern. |
| (tprel_ld_QI_signed): likewise. |
| (tprel_ld_QI): likewise. |
| (tprel_ld_DI): likewise. |
| (tprel_ld_<SFDF:mode>): likewise. |
| |
| 2026-09-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Cost non-uniform |
| invariant loads more appropriately. |
| |
| 2026-09-23 Tamar Christina <tamar.christina@arm.com> |
| |
| * fold-const.cc (const_unop): Fold VEC_UNPACK_LO_EXPR and |
| VEC_UNPACK_HI_EXPR for suitable variable-length VECTOR_CSTs. |
| (selftest::test_vec_unpack_folding): New function. |
| (selftest::fold_const_cc_tests): Call it. |
| |
| 2026-09-23 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_ifn_vect_stmt_p): New function. |
| (aarch64_adjust_stmt_cost): Account for extra Adv.SIMD SAD and ABD |
| reduction costs. |
| (aarch64_vector_costs::count_ops): Likewise. |
| |
| 2026-09-23 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_vect_vf_for_cost): New |
| function. |
| (aarch64_vector_costs::adjust_body_cost): Use it. |
| (aarch64_vector_costs::better_main_loop_than_p): Likewise. |
| |
| 2026-09-23 Matthias Kretz <m.kretz@gsi.de> |
| |
| * config/i386/sse.md (roundeven<mode>2): New. |
| |
| 2026-09-22 Chung-Lin Tang <cltang@baylibre.com> |
| |
| * omp-offload.cc (omp_discover_implicit_declare_target): |
| For self_maps/unified_shared_memory case, adjust to not convert |
| 'omp declare target local' variables to 'link'. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_LOCAL. |
| * tree.cc (omp_clause_num_ops): Add entry for OMP_CLAUSE_LOCAL. |
| (omp_clause_code_name): Likewise. |
| * varpool.cc (varpool_node::get_create): Do not add variable to |
| offload_vars if "local" argument is present in "omp declare target". |
| |
| 2026-09-22 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/127326 |
| * lra-constraints.cc (process_alt_operands): Ignore register if |
| constraint describes memory and register which can not hold the |
| mode value. |
| |
| 2026-09-22 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/114544 |
| * config/i386/constraints.md (YD): New constraint, like Yd but |
| allows SSE_REGS on TARGET_SSE2. |
| * config/i386/i386.cc (inline_secondary_memory_needed): Update |
| that TImode moves to GENERAL_REGS don't need to use memory. |
| * config/i386/i386.md (*movti_internal): Change Yd constraint to YD. |
| (define_split): On TARGET_64BIT && TARGET_SSE2 && !TARGET_SSE4_1, |
| split *movti_internal into movq+shufpd+movq+shufpd. |
| |
| 2026-09-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/127393 |
| * config/aarch64/predicates.md (pure_register_operand): New predicate. |
| * config/aarch64/aarch64.md (negvti3): Use it. |
| |
| 2026-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/127492 |
| * builtins.cc (expand_builtin_atomic_fetch_op): Force val into a |
| pseudo if updates to mem could change its value. |
| (expand_ifn_atomic_bit_test_and): Likewise. |
| |
| 2026-09-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Cost |
| the lane extract in vect_body for BB vectorization and |
| in vect_epilog for loop vectorization. |
| |
| 2026-09-22 Richard Biener <rguenther@suse.de> |
| |
| * doc/invoke.texi (fwrapv-pointer): Add disclaimer. |
| (fno-strict-overflow): Discourage, suggest fwrapv. |
| |
| 2026-09-22 Andrew Stubbs <ams@baylibre.com> |
| |
| * target.def (base_reg_class): New target hook. |
| * targhooks.h (default_base_reg_class): Declare. |
| * targhooks.cc (default_base_reg_class): New function, implementing |
| the previous BASE_REG_CLASS/MODE_BASE_REG_CLASS/ |
| MODE_BASE_REG_REG_CLASS/MODE_CODE_BASE_REG_CLASS macro fallback |
| chain as the hook's default. |
| * addresses.h (base_reg_class): Rewrite to call the |
| TARGET_BASE_REG_CLASS hook instead of dispatching through |
| INSN_BASE_REG_CLASS and the other macros by hand; add a MEM |
| parameter. |
| * rtl.h (address_info): Add mem field. |
| * rtlanal.cc (decompose_mem_address): Set it. |
| * lra-constraints.cc (simplify_operand_subreg, process_alt_operands, |
| base_to_reg, base_plus_disp_to_reg, process_address_1, |
| curr_insn_transform): Pass the enclosing MEM, and INSN where |
| previously omitted, to base_reg_class. |
| * reload.cc (find_reloads, find_reloads_address, |
| find_reloads_address_1, find_reloads_subreg_address): Likewise. |
| * reload1.cc (maybe_fix_stack_asms): Likewise. |
| * regcprop.cc: Include target.h. |
| (replace_oldest_value_addr, replace_oldest_value_mem): Pass MEM to |
| base_reg_class. |
| * regrename.cc (base_reg_class_for_rename): Add a MEM parameter. |
| (scan_rtx_address, scan_rtx): Pass it. |
| * caller-save.cc: Include target.h. |
| * config/i386/i386.h (INSN_BASE_REG_CLASS): Delete. |
| * config/i386/i386-protos.h (ix86_insn_base_reg_class): Delete |
| declaration. |
| * config/i386/i386.cc (ix86_insn_base_reg_class): Rename to... |
| (ix86_base_reg_class): ...this, adjust the signature, and implement |
| TARGET_BASE_REG_CLASS instead of INSN_BASE_REG_CLASS. |
| (TARGET_BASE_REG_CLASS): Define. |
| * doc/tm.texi.in: Add TARGET_BASE_REG_CLASS. Mark BASE_REG_CLASS, |
| MODE_BASE_REG_CLASS, MODE_BASE_REG_REG_CLASS and |
| MODE_CODE_BASE_REG_CLASS as obsolete in favor of the new hook, and |
| remove the now-unused INSN_BASE_REG_CLASS. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-09-22 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/atomics.md (atomic_store<mode>): Use aarch64_reg_or_zero. |
| |
| 2026-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/126486 |
| * tree-affine.cc: Include vr-values.h. |
| (aff_combination_convert): Accept and propagate range context. |
| (expr_to_aff_combination): Likewise. Fold sign-changing conversions |
| and negative unsigned offsets. |
| (tree_to_aff_combination): Accept and propagate range context. |
| * tree-affine.h (aff_combination_convert): Update declaration. |
| (tree_to_aff_combination): Likewise. |
| * tree-ssa-loop-ivopts.cc: Include gimple-range.h. |
| (get_computation_aff_1): Pass the use statement. |
| (tree_ssa_iv_optimize): Enable ranger. |
| |
| 2026-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/127500 |
| * config/i386/i386.cc (ix86_split_stlf_stall_load): Don't split |
| the load when the address adjusted by 8 is not a valid memory |
| address. |
| |
| 2026-09-22 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/112626 |
| * match.pd: Fold comparisons between abs (x) and x including |
| unsigned conversions of both operands. |
| |
| 2026-09-22 Pan Li <pan2.li@intel.com> |
| |
| PR target/127269 |
| * config/riscv/riscv-v.cc (riscv_v_widen_constraint_ok): Return |
| false instead of assertion when the nregs of the dest is less |
| than that of the src. |
| |
| 2026-09-22 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/constraints.md (Wn4): New constraint for the |
| vector register which doesn't overlap the register group of |
| the operand 4. |
| * config/riscv/vector.md: Take the Wn4 constraint for the |
| operand 3 and the Wvr constraint for the operand 4 of the |
| vfwadd.wv. |
| |
| 2026-09-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/riscv/riscv.cc (riscv_flatten_aggregate_field) <ARRAY_TYPE>: |
| Perform the computation of the number of elements using the precision |
| of the index type instead of using HOST_WIDE_INT. |
| |
| 2026-09-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-loop-distribution.cc (loop_distribution::classify_partition): |
| Disqualify the partition for builtins it it contains nonaddressable |
| data references. |
| |
| 2026-09-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.h (struct array_descr_info): Add reverse_storage_order. |
| * dwarf2out.cc (gen_descr_array_type_die): Pass it in the call to |
| add_type_attribute instead of using TYPE_REVERSE_STORAGE_ORDER. |
| |
| 2026-09-21 Ancheng.Qiao <ancheng.qiao@corelabtech.com> |
| |
| * config/riscv/riscv.cc (riscv_expand_prologue): Fold into the |
| cm.push reserve only as many callee-saved FPRs as it can hold by |
| dividing the additional reserve by UNITS_PER_FP_REG. |
| (riscv_expand_epilogue): Likewise. |
| |
| 2026-09-21 Matt Turner <mattst88@gmail.com> |
| |
| PR middle-end/66462 |
| * builtins.cc (fold_builtin_fpclassify): Expand using the |
| classification built-ins when their optabs are available. |
| |
| 2026-09-21 Matt Turner <mattst88@gmail.com> |
| |
| PR middle-end/66462 |
| * config/aarch64/aarch64.md (cmp_swp_<shift>_reg<mode>): Add a |
| parameterized name. |
| (isinf<mode>2): Use GPF_HF_BF and handle the 16-bit formats. |
| (isfinite<mode>2): Likewise. |
| (isnan<mode>2): Likewise. |
| |
| 2026-09-21 Matt Turner <mattst88@gmail.com> |
| |
| PR middle-end/66462 |
| * config/aarch64/aarch64.md (isnormal<mode>2): Add new expander. |
| * config/aarch64/iterators.md (GPF_HF_BF): New mode iterator. |
| (mantissa_bits): Add HF and BF. |
| (V_INT_EQUIV): Add BF. |
| |
| 2026-09-21 Matt Turner <mattst88@gmail.com> |
| |
| * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64): |
| Guard the smov alternative with base_simd rather than fp. |
| (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise for umov. |
| |
| 2026-09-21 Matt Turner <mattst88@gmail.com> |
| |
| PR middle-end/66462 |
| * config/alpha/alpha-protos.h (enum alpha_fp_class): New. |
| (alpha_expand_fp_classify): Declare. |
| * config/alpha/alpha.cc (alpha_expand_fp_classify): New function. |
| * config/alpha/alpha.md (isfinite<mode>2, isinf<mode>2) |
| (isnan<mode>2, isnormal<mode>2): New expanders. |
| |
| 2026-09-21 Richard Biener <rguenther@suse.de> |
| Claude Opus 5 <noreply@anthropic.com> |
| |
| PR tree-optimization/113703 |
| PR tree-optimization/127515 |
| * tree-ssa-loop-ivopts.cc (iv_elimination_compare_lt): Also record |
| A + 1 when matching the number of iterations. Convert it to OFF_TYPE |
| as a whole, compute B + 1 in OFF_TYPE and require both to be |
| non-negative scaled offsets that do not overflow. Build the bound |
| out of them instead of A and B. |
| |
| 2026-09-21 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/127494 |
| * config/riscv/riscv-v.cc (autovectorize_vector_modes): |
| Restore previous behaviour. |
| |
| 2026-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127475 |
| * tree-vect-loop.cc (vectorizable_induction): Use |
| signed_or_unsigned_type_for to get the step vectype. |
| |
| 2026-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/127479 |
| * lto-streamer-out.cc (output_cfg): Output predecessor edges. |
| * lto-streamer-in.cc (input_cfg): Input predecessor edges. |
| |
| 2026-09-21 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/127104 |
| * internal-fn.def (ASSUME): Downgrade from const to pure. |
| |
| 2026-09-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genextract.cc (locstr): Make it a string of bytes. |
| (UPPER_OFFSET, MISSING_OPERAND_CHAR): Remove. |
| (ENCODE_PATH_STEP, MISSING_OPERAND_STEP, MAX_PATH_INDEX): New macros. |
| (accum_extract::pathstr): Hold bytes. |
| (push_pathstr_operand): Encode the step as a number and check that |
| the index fits. |
| (VEC_safe_set_locstr, VEC_char_to_string, add_path, gen_insn): Update |
| for the byte paths. |
| (print_string_literal): Remove. |
| (print_extractions): Emit the paths as an array of numbers and walk |
| them without the character ranges. |
| |
| 2026-09-21 Christophe Lyon <christophe.lyon@arm.com> |
| |
| * configure.ac: Replace 'ret' with '$insn'. |
| * configure: Regenerate. |
| |
| 2026-09-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/127461 |
| * config/i386/mmx.md (negv2qi2): Use optimize_size instead of |
| optimize_function_for_size_p (cfun) in the enabled attribute. |
| (<plusminus:insn>v2qi3): Ditto. |
| |
| 2026-09-21 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * match.pd: New rule to fold ((X >> C1) & C2) << C3. |
| |
| 2026-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/127498 |
| * config/i386/sse.md (<insn><mode>3 any_rotate:VI1_AVX512_3264): Add |
| TARGET_AVX2 to condition. |
| |
| 2026-09-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127445 |
| * function.cc (gen_call_used_regs_seq): Return whether a zeroing |
| sequence was emitted. Do not update the exit block uses here. |
| (pass_zero_call_used_regs::execute): Call |
| df_update_entry_exit_and_calls once when a sequence was emitted. |
| |
| 2026-09-21 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/98984 |
| * match.pd: Fold integer-float-integer conversions when the |
| intermediate floating-point significand covers the final integer |
| precision under -fno-trapping-math. |
| |
| 2026-09-20 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.cc (alpha_expand_movmisalign): Derive the |
| access size from MODE rather than assuming 8 bytes. |
| * config/alpha/alpha.md (MISALIGN): New mode iterator. |
| (movmisalign<mode>): Use it in place of VEC. |
| |
| 2026-09-20 Samarth Tandale <samarth.tandale@oss.qualcomm.com> |
| |
| PR tree-optimization/125700 |
| * match.pd: Fold type-bound guarded min/max expressions. |
| |
| 2026-09-20 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * common/config/i386/cpuinfo.h (darwin_get_kernel_bool): New. |
| (get_available_features): Query kernel for avx512 availability |
| on Darwin. |
| |
| 2026-09-20 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127423 |
| * ifcvt.cc (noce_get_alt_condition): Ignore debug instructions when |
| checking whether if_info->x is mentioned in the interval. |
| |
| 2026-09-20 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * tree-ssa-math-opts.cc (build_long_mul_partial_operand): New |
| function. |
| (build_long_mul_partials): Use it. |
| |
| 2026-09-20 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/127042 |
| * tree-ssa-math-opts.cc (build_long_mul_partials): Emit zero |
| high-half partial products, and skip the high-half split and |
| the low-half mask, for an operand that provably fits the half |
| width. |
| |
| 2026-09-20 Dominic P <gcc@gcc.dp11.uk> |
| |
| * gimple-fold.h (gimple_needing_rewrite_undefined): Add a |
| SHIFT_COUNT parameter defaulting to false. |
| * gimple-fold.cc (gimple_needing_rewrite_undefined): Return true |
| for a shift or rotate whose count may be out of range, only when |
| SHIFT_COUNT. |
| (rewrite_to_defined_unconditional): Reduce such a count into range. |
| * tree-ssa-loop-im.cc (shift_needs_mask_p): New function. |
| (determine_max_movement): Cost a shift whose count would need |
| masking as cheap. |
| (movement_possibility_1): Require preserved execution for a |
| possibly out-of-range count only when the rewrite cannot reduce it |
| or the loop is optimized for size. |
| |
| 2026-09-20 Filip Kastl <fkastl@suse.cz> |
| |
| * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests): |
| State that the bit test algorithm is optimal. |
| |
| 2026-09-20 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`((VCE (a cmp b ? -1 : 0)) < 0) ? c : d`): Remove |
| `(a cmp b)` match part. |
| |
| 2026-09-20 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`CMP * a`): Use tcc_comparison directly. |
| (`(type)CMP * a`): Likewise. |
| |
| 2026-09-20 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (maybe_cmp): Use tcc_comparison directly instead |
| of for loop. |
| |
| 2026-09-20 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/126412 |
| * fold-mem-offsets.cc (change_in_vec_p): Move before fold_groups. |
| (changes_map_t): New type. |
| (class fold_groups): New class. |
| (struct regno_changes): Remove. |
| (sort_pairs): Likewise. |
| (cancel_changes_for_group): Take the fold group to cancel. |
| (find_groups_to_cancel): Rename from find_keys_to_remove. |
| (update_insns): Group the changes by fold group instead of by the |
| register defined by the last fold insn of the def-chain. |
| (fold_mem_offsets_1): Use fold_groups and commit all groups in a |
| single change_insns call. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_narrow_clip): Add the complement |
| form. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (signed_integer_sat_trunc): Add the constant-clamp |
| form. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (integer_constant_clamp): New match. |
| (unsigned_integer_narrow_clip): Add the constant-clamp form. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (signed_integer_sat_val): Recognize an arithmetic |
| sign shift. |
| (signed_integer_sat_trunc): Use signed_integer_sat_val in the existing |
| form. Recognize a shifted value with an equivalent pre-shift sign |
| source. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_add): Accept a compare |
| against MAX - 1 in the widened form. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (signed_integer_sat_add): Add the two sided |
| clamp on a wider intermediate, in both nesting orders. |
| (signed_integer_sat_sub): Likewise. |
| * tree-ssa-math-opts.cc (match_unsigned_saturation_sub): Rename |
| to ... |
| (match_saturation_sub_with_assign): ... this, and ask the signed |
| predicate as well. |
| (math_opts_dom_walker::after_dom_children): Update the callers, |
| and call it for NOP_EXPR. |
| |
| 2026-09-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (signed_integer_sat_trunc): Allow a wider lossless |
| unsigned range type. Continue to require a narrowing result. Construct |
| the expected constants at the range precision. |
| |
| 2026-09-20 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR middle-end/127474 |
| * expmed.cc (expand_mult): Look through vector mode. |
| |
| 2026-09-19 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov.cc (add_path_counts): Read the right field paths.size. |
| (function_summary): Add missing else. |
| |
| 2026-09-19 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127053 |
| * tree-ssa-phiopt.cc (trailing_store_in_bb): Rename vphi to |
| vuse_only. |
| (cond_if_else_store_replacement_limited): Add case if |
| cond_if_else_store_replacement_1 failed, allowing |
| for skipping one store on each side. |
| (trailing_store_in_bb): Require the store stmt |
| to be a gimple simple assign. |
| |
| 2026-09-19 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR target/127460 |
| * config/pru/pru.cc (pru_insert_loop_label_last): Ignore debug |
| instructions while counting final loop opcodes. |
| |
| 2026-09-19 panciyan <panciyan@eswincomputing.com> |
| |
| * function.cc (assign_parm_find_stack_rtl): When data->partial is |
| nonzero, limit the stack slot alignment to the largest power of |
| two dividing the partial size. |
| |
| 2026-09-19 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| PR target/127374 |
| * config/riscv/iterators.md (leu): Map gt to le |
| * config/riscv/zicond.md: Add define_split patterns |
| |
| 2026-09-19 Dominic P <gcc@gcc.dp11.uk> |
| |
| * postreload.cc (reload_cse_regs_1): Find the condition of the |
| predecessor's conditional branch with get_condition, so a comparison |
| held in the condition-code register is seen. Reject a jump whose |
| target is not a label. Record the implicit set only where the block |
| sets the register to that value. |
| |
| 2026-09-19 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| PR target/126074 |
| * config/riscv/riscv.cc (riscv_build_integer_1): Add logic to |
| synthesize constants using shNadd.uw. |
| (riscv_move_integer): Handle FMA with use_uw for RTL emission. |
| |
| 2026-09-18 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125945 |
| * tree-ssa-phiopt.cc (induction_based): New function. |
| (factor_out_conditional_load): Allow some factoring out |
| with early and/or before_vect. |
| (factor_out_all): Set before_vect to false when not vectorizing. |
| (pass_phiopt::execute): Initialize scev in some cases. |
| |
| 2026-09-18 Michiel Derhaeg <michiel@derhaeg.be> |
| |
| * config/riscv/riscv.cc (synthesize_add): Do not form shNadd |
| when the base register is a virtual register. |
| |
| 2026-09-18 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR rtl-optimization/127367 |
| * ext-dce.cc: Include regs.h. |
| (ext_dce_process_uses): Handle multi-register hard regs. |
| |
| 2026-09-18 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): |
| Compare VLA costs under -mrvv-max-lmul=dynamic. |
| |
| 2026-09-18 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (enum aarch64_builtins): Add new builtins. |
| (aarch64_init_atomic_hints_builtins): Likewise. |
| (aarch64_expand_atomic_hints_builtins_fetch): Handle Fetch intrinsics. |
| (aarch64_general_expand_builtin): Add call for new builtins. |
| (aarch64_resolve_overloaded_builtin_atomic_hint_fetch): Handle Fetch intrinsics. |
| (aarch64_resolve_overloaded_builtin_general): Add new call. |
| * config/aarch64/arm_acle.h |
| (enum atomic_fetch): Store different Fetch types. |
| (__arm_atomic_fetch_add_with_hint): Add new builtin. |
| (__arm_atomic_fetch_sub_with_hint): Likewise. |
| (__arm_atomic_fetch_and_with_hint): Likewise. |
| (__arm_atomic_fetch_xor_with_hint): Likewise. |
| (__arm_atomic_fetch_or_with_hint): Likewise. |
| * config/aarch64/atomics.md |
| (aarch64_atomic_fetch_<atomic_ldoptab><mode>_atomic_hint): New pattern for atomic_fetch. |
| (@aarch64_atomic_hints_fetch<mode>): Likewise. |
| * config/aarch64/iterators.md: New unspecs. |
| |
| 2026-09-18 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (enum aarch64_builtins): Change Function/Builtin names. |
| (aarch64_init_pcdphint_builtins): Likewise. |
| (aarch64_init_atomic_hints_builtins): Likewise. |
| (aarch64_general_init_builtins): Likewise. |
| (aarch64_expand_stshh_builtin): Likewise. |
| (aarch64_expand_atomic_hints_builtins): Likewise. |
| (aarch64_general_expand_builtin): Likewise. |
| (aarch64_resolve_overloaded_builtin_stshh): Likewise. |
| (aarch64_resolve_overloaded_builtin_atomic_hint_store): Likewise |
| (aarch64_resolve_overloaded_builtin_general): Likewise. |
| * config/aarch64/arm_acle.h |
| (__atomic_store_with_stshh): Likewise. |
| (__arm_atomic_store_with_hint): Likewise. |
| * config/aarch64/atomics.md |
| (@aarch64_atomic_store_stshh<mode>): Add new hints to pattern |
| (@aarch64_atomic_hints_store<mode>): Likewise. |
| * config/aarch64/iterators.md: Add Unspec for new hints. |
| |
| 2026-09-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree): Assert successful |
| discovered nodes do not require splitting. |
| |
| 2026-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127473 |
| * tree-vect-slp.cc (vect_build_slp_tree_3): Duplicate the BB |
| case of rejecting a not grouped load early to avoid assiging |
| the first_match to it. |
| |
| 2026-09-18 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (mov<mode>_exec): Add xnack alternatives. |
| (@mov<mode>_sgprbase): Likewise. |
| |
| 2026-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127468 |
| * tree-vect-slp.cc (vect_build_slp_tree_3): Print the correct |
| trapping stmt. |
| |
| 2026-09-18 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * asan.cc: Remove include that already came from ssa.h. |
| * gimple-ssa-pta-constraints.cc: Remove unused include. |
| * tree-ssa-loop-unswitch.cc: Likewise. |
| * ubsan.cc: Change an include to a more specific file. |
| * value-query.cc: Remove unused import. |
| * value-range-storage.cc: Likewise. |
| * value-range.cc: Change an include to a more specific file. |
| |
| 2026-09-18 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/127406 |
| * match.pd: Restrict (X {+,-} M*N) / N optimization. |
| |
| 2026-09-18 Alfie Richards <alfie.richards@arm.com> |
| |
| * machmode.h (parse_machine_mode): New function. |
| * read-rtl.cc (find_mode): Use parse_machine_mode. |
| * config/riscv/riscv-v.cc (autovectorize_vector_modes): Likewise. |
| |
| 2026-09-18 Jakub Jelinek <jakub@redhat.com> |
| Manjunath Matti <mmatti@linux.ibm.com> |
| |
| PR middle-end/127378 |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt): On |
| big endian, compare idx_next in separate_ext loop against |
| bo_idx + total - 1 - end, and if that wraps around, compare idx |
| against 0 instead. |
| |
| 2026-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126306 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Remove soft-failing. |
| (vect_build_slp_tree_2): Add soft-failing here, delayed |
| to after vect_get_and_check_slp_defs. |
| (vect_get_and_check_slp_defs): When we'll soft-fail do not |
| fall back to vect_external_def on mismatches. |
| |
| 2026-09-18 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/constraints.md (Wn3): New constraint for the |
| vector register which doesn't overlap the register group of |
| the operand 3. |
| * config/riscv/riscv-protos.h (riscv_v_widen_non_overlap_constraint_ok): |
| New function declaration. |
| * config/riscv/riscv-v.cc (riscv_v_reg_group_overlap_p): New |
| function to tell if two vector register groups overlap. |
| (riscv_v_widen_constraint_ok): Leverage the above function for |
| the register group overlap check. |
| (riscv_v_widen_non_overlap_constraint_ok): New function to tell |
| if the register doesn't overlap the reference register group. |
| * config/riscv/vector.md: Take the Wn3 constraint for the |
| operand 4 of the widening integer reduction. |
| |
| 2026-09-18 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127421 |
| * reorg.cc (redundant_insn): Use NONDEBUG_INSN_P in both bounded |
| backward walks. Remove redundant debug-instruction checks. |
| |
| 2026-09-18 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR rtl-optimization/127422 |
| * combine.cc (can_combine_p): Ignore debug instructions when scanning |
| for intervening volatile references. |
| |
| 2026-09-18 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (bitreverseqi2): Disable on |
| LA32R. |
| |
| 2026-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (dom_oracle::query): Prefer a normal |
| relation over a partial equivalency. |
| (path_oracle::record): Do not record partial equivalences, nor |
| intersect one with the relation being recorded. |
| |
| 2026-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (dom_oracle::record): Do not record |
| VREL_UNDEFINED. |
| (dom_oracle::search_and_merge_relation): Likewise. |
| (path_oracle::record): Likewise. |
| |
| 2026-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (rr_negate_table): Fill PE slots. |
| (rr_swap_table): Likewise. |
| (rr_intersect_table): Likewise. |
| (rr_union_table): Likewise. |
| (rr_transitive_table): Likewise. |
| (relation_tests): Also confirm partial equivalency entries. |
| |
| 2026-09-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127405 |
| * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Only |
| set nb_iterations_upper_bound of the epilogue loop and scale its |
| profile when the control IV is known not to wrap. |
| |
| 2026-09-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_instance): Pick the |
| largest isomorphic subset when vectorizing a BB reduction. |
| |
| 2026-09-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (match_elt_t): New. |
| (_slp_tree::failed): Make a match_elt_t *. |
| * tree-vect-slp.cc (vect_build_slp_tree_3): Make |
| re-startable at start_i, change representation of |
| matches[] to match_elt_t[]. |
| (vect_build_slp_tree_1): Iteratively resolve not matched lanes. |
| Retain isomorphism of BB unrolling failed tail. |
| (vect_build_slp_tree_2): Adjust for s/bool/match_elt_t/ |
| (vect_build_slp_tree): Likewise. |
| (optimize_load_redistribution_1): Likewise. |
| (vect_build_slp_instance): Likewise. |
| (vect_analyze_slp_reduc_chain): Likewise. |
| (vect_analyze_slp_reduction): Likewise. |
| (vect_analyze_slp_reduction_group): Likewise. |
| (vect_analyze_slp_reductions): Likewise. |
| (vect_analyze_slp_instance): Likewise. |
| (vect_lower_load_permutations): Likewise. |
| |
| 2026-09-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127407 |
| * tree-vect-data-refs.cc (vect_analyze_data_ref_dependence): |
| Also call vect_preserves_scalar_order_p for negative dependence |
| distance. |
| |
| 2026-09-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config.gcc (i[34567]86-*-* | x86_64-*-*): Set |
| default_md_generator_partitions target default to 6:6:1. |
| |
| 2026-09-17 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_spill_class): Spill scalars in VGPRs to |
| SCALAR_SPILL_REGS. |
| (gcn_memory_move_cost): Handle SCALAR_SPILL_REGS. |
| * config/gcn/gcn.h (enum reg_class): Add SCALAR_SPILL_REGS. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| |
| 2026-09-17 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| |
| PR target/127191 |
| * config/arc/arc.md (doloop_end): Clobber CC. |
| (loop_end): Likewise. |
| (dbnz): Likewise. |
| (flag): Likewise. |
| (kflag): Likewise. |
| |
| 2026-09-17 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| |
| * config/arc/arc.cc (arc_init_reg_tables): Set the mode class of |
| CC_Vmode to C_MODE. |
| |
| 2026-09-17 Michiel Derhaeg <michiel.derhaeg@globalfoundries.com> |
| |
| PR target/126243 |
| * config/arc/simdext.md (<voptab>v2si3): Require TARGET_PLUS_QMACW. |
| |
| 2026-09-17 Claudiu Zissulescu <claziss@gmail.com> |
| |
| * config/arc/arc.md: Remove the "cond" attribute definition, all |
| its uses and the comments describing it. |
| * config/arc/fpu.md: Likewise. |
| * config/arc/fpx.md: Likewise. |
| * config/arc/simdext.md: Likewise. |
| |
| 2026-09-17 Longjun Luo <luolongjuna@gmail.com> |
| |
| PR lto/126841 |
| * doc/invoke.texi (-ffunction-sections): Document implicit function |
| section names under LTO. |
| * ipa-strub.cc (pass_ipa_strub::execute): Let cfgexpand resolve the |
| GIMPLE wrapper section. |
| * symtab-thunks.cc (expand_thunk): Likewise for generic GIMPLE thunks. |
| Clarify the direct-assembler case. |
| |
| 2026-09-17 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127103 |
| * match.pd (`minmax (a - c, b) + c`): New pattern. |
| |
| 2026-09-17 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127103 |
| * match.pd (`x+umax(x,1)`): New pattern. |
| |
| 2026-09-17 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/126174 |
| * doc/gm2.texi (Using GNU Modula-2): Move Unbounded by reference after |
| Exception handling in the menu. |
| |
| 2026-09-16 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * lto-wrapper.cc (run_gcc): Make saved parallel LTRANS outputs phony. |
| |
| 2026-09-16 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> |
| |
| * ipa-inline.cc (report_inline_failed_reason): Check for NULL |
| before calling cl_target_option_print_diff. |
| |
| 2026-09-16 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * asan.cc: Remove duplicate stringpool includes. |
| * builtins.cc: Likewise. |
| * calls.cc: Likewise. |
| * cgraphunit.cc: Likewise. |
| * dwarf2out.cc: Likewise. |
| * fold-const.cc: Likewise. |
| * function.cc: Likewise. |
| * gimple-expr.cc: Likewise. |
| * internal-fn.cc: Likewise. |
| * ipa.cc: Likewise. |
| * lto-cgraph.cc: Likewise. |
| * pointer-query.cc: Likewise. |
| * tree-streamer-in.cc: Likewise. |
| * varasm.cc: Likewise. |
| |
| 2026-09-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_conversion): Prevent |
| conversions from non-mode-precision _BitInt. |
| |
| 2026-09-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sme.def (DEF_SME_FUNCTION_GS): Undef |
| at end. |
| |
| 2026-09-16 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * ira-lives.cc (single_reg_class): Compute regno in case of |
| single reg class constraint or hard register constraint, and |
| rename to ... |
| (single_reg_class_regno): ... this. |
| (single_reg_operand_class): Similarly as before and rename |
| to ... |
| (single_reg_operand_class_regno): ... this. |
| (process_single_reg_class_operands): Utilize |
| single_reg_operand_class_regno() and deal with regnos directly |
| instead of single reg classes. |
| (process_single_reg_class_operands): Rename to ... |
| (process_single_reg_constrained_operands): ... this. |
| (process_bb_node_lives): Refer to renamed function. |
| |
| 2026-09-15 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/libgdiagnostics/topics/sarif.rst: Update SARIF website URL. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_valid_move): |
| Remove code that rejects non-register sources when the destination |
| is the stack pointer. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h |
| (GP_REG_NUM, BR_REG_NUM, FP_REG_NUM, ACC_REG_NUM): Remove. |
| (GP_REG_P, BR_REG_P, FP_REG_P, ACC_REG_P): |
| Change to use the IN_RANGE() macro. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h (xt_true_regnum): Remove. |
| * config/xtensa/xtensa.cc (xt_true_regnum): |
| Specify as a static function. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h (xtensa_regno_to_class): |
| Remove. |
| * config/xtensa/xtensa.h (xtensa_regno_to_class): |
| Declaration of a new global array. |
| (REGNO_REG_CLASS): |
| Change to reference the xtensa_regno_to_class array. |
| * config/xtensa/xtensa.cc (xtensa_regno_to_class): |
| Remove the original function definition and define it as a new global |
| array. |
| (xtensa_conditional_register_usage): |
| Append code to the end that records a map in xtensa_regno_to_class |
| showing which of the current regclass definitions each hardware |
| register belongs to. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order): |
| Reformat the "reg_call0_alloc_order" array. |
| * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Reformat. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_conditional_register_usage): |
| Clear the bit corresponding to the A0 register from the |
| HARD_REG_SET associated with RL_REGS, if TARGET_WINDOWED_ABI |
| is enabled. |
| |
| 2026-09-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (EPILOGUE_USES): Remove. |
| * config/xtensa/xtensa.md (return): |
| Resurrect '(use (reg:SI A0_REG))' to the template description. |
| (sibcall_epilogue): Revive emitting '(use (reg:SI A0_REG))'. |
| |
| 2026-09-15 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/127408 |
| * gcov.cc (function_summary): Check calls_suppressed, not calls. |
| |
| 2026-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127390 |
| * tree-vect-stmts.cc (vectorizable_comparison_1): Reject |
| bit-precision integer comparisons. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * Makefile.in (NUM_INSNRECOG_SPLITS): New variable. |
| (INSNRECOG_SPLITS_SEQ): Use it. |
| (NUM_INSNATTRTAB_SPLITS): New variable. |
| (INSNATTRTAB_SPLITS_SEQ): Use it. |
| (MOSTLYCLEANFILES): Remove all numbered generator sources. |
| (s-tmp-emit, s-tmp-recog): Stop when an output move fails. |
| (s-tmp-emit, s-tmp-recog, s-attrtab): Depend on Makefile. |
| * config.gcc (default_md_generator_partitions): New variable. |
| Document its scalar and tuple forms. |
| (aarch64*-*-*): Set the target default. |
| * configure.ac (--with-md-generator-partitions): New option. |
| (--with-insnemit-partitions): Keep as a deprecated alias. |
| Use the target default when no option is specified. Validate and |
| substitute all three counts. |
| * configure: Regenerate. |
| * doc/install.texi (--with-md-generator-partitions): Document. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * Makefile.in (INSNATTRTAB_SPLITS_SEQ, INSNATTRTAB_SEQ_SRC) |
| (INSNATTRTAB_SEQ_TMP, INSNATTRTAB_SEQ_O): New variables. |
| (OBJS): Replace insn-attrtab.o with $(INSNATTRTAB_SEQ_O). |
| (MOSTLYCLEANFILES): Add $(INSNATTRTAB_SEQ_SRC), retaining the legacy |
| unnumbered source for cleanup. |
| (.PRECIOUS): Use $(INSNATTRTAB_SEQ_SRC). |
| (s-attrtab): Generate and move numbered attribute files. Stop when a |
| move fails. |
| * configure.ac (--with-insnemit-partitions): Document all generators |
| which use the option. |
| * configure: Regenerate. |
| * genattrtab.cc (attr_file_name, attr_file, open_outfile): Remove. |
| (output_files): New variable. |
| (dfa_file_name, latency_file_name): Retain output names. |
| (make_automaton_attrs): Write to the first attribute partition. |
| (handle_arg): Register repeatable attribute outputs. |
| (attr_output_size, cmp_attr_output_size): New functions. |
| (main): Register fixed outputs and use the common output helpers. |
| Distribute attribute, delay, and length functions, largest first. |
| * final.cc (length_unit_log): Update comment for partitioned output. |
| * config/arc/arc-protos.h (regno_clobbered_p): Likewise. |
| * config/ia64/ia64.cc (bundling): Likewise. |
| * config/ia64/t-ia64 (insn-attrtab.o-warn): Replace with per-partition |
| warning variables. |
| * config/sh/sh.h (code_for_indirect_jump_scratch): Update comment for |
| partitioned output. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * gensupport.h (generator_output): New structure. |
| (add_generator_output, open_generator_outputs): Declare. |
| (close_generator_outputs): Likewise. |
| (choose_output): Accept generator_output records. Remove the output |
| index parameter. |
| * gensupport.cc (add_generator_output): New function. |
| (open_generator_outputs, close_generator_outputs): Likewise. |
| (choose_output): Select only partition records. Remove the output index |
| and disabled round-robin implementation. |
| (SIZED_BASED_CHUNKS): Remove. |
| * genemit.cc (output_files): Use generator_output records. |
| (handle_arg): Register output names. |
| (main): Use the common open, selection, and close helpers. |
| * genrecog.cc (print_subroutine_group): Accept generator_output records. |
| (header_name): Change to a pointer. |
| (header): Remove global variable. |
| (output_files): Use generator_output records. |
| (handle_arg): Register output names and validate -H. |
| (main): Validate and register the header output. Use the common open, |
| selection, and close helpers. Remove an unused output selection. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genattrtab.cc (attr_value): Add enum_index. |
| (attr_desc): Add num_values, derived_from and derived_table. |
| (get_attr_value, add_attr_value, find_attr): Maintain them. |
| (attr_value_index, eq_attr_value_set, simple_enum_attr_p) |
| (sole_tested_attr, find_derived_attrs, write_derived_attr_get): New |
| functions. |
| (write_attr_get): Use write_derived_attr_get where it applies. |
| (main): Call find_derived_attrs before optimize_attrs. |
| |
| 2026-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126760 |
| PR tree-optimization/127391 |
| * tree-if-conv.cc (if_convertible_stmt_p): Delay switch |
| validation to ... |
| (if_convertible_loop_p_1): ... the loop iterating over |
| PHIs. |
| |
| 2026-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/127352 |
| * config/i386/i386-expand.cc (split_double_mode): For high halves of |
| paradoxical subregs after RA use CONST0_RTX (half_mode) instead of |
| ICE. |
| |
| 2026-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/113703 |
| * tree-ssa-loop-ivopts.cc: Include gimple-range.h. |
| (nonneg_scaled_offset_p): New function. |
| (iv_elimination_compare_lt): Add USE and BOUND_P parameters. Bail |
| out if the exit test does not come after the increment of the |
| candidate, if the comparison in the number of iterations is signed |
| or if the offsets are not known to be non-negative and to not |
| overflow. Recompute the bound and store it in BOUND_P. |
| (may_eliminate_iv): Adjust the call to iv_elimination_compare_lt |
| and move the expensiveness check on the bound after it. |
| |
| 2026-09-15 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/126629 |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (emit_ldf1_ffr_update): New. |
| (svldff1_gather_impl, svldff1_gather_extend, svldxf1_impl, |
| svldxf1_extend_impl): Use it. |
| * config/aarch64/aarch64-sve.md (aarch64_update_ffr<mode>): Update insn. |
| |
| 2026-09-15 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/127264 |
| * config/i386/i386-expand.cc (ix86_expand_ace_builtin): |
| Revise logic to avoid INTVAL check for non-constant |
| operands. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/127185 |
| * builtins.cc (expand_builtin_strub_update): Use a separate MEM with |
| load trap semantics for each watermark load. |
| (expand_builtin_strub_leave): Use load trap semantics for watermark |
| MEMs. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/127185 |
| * cfgexpand.cc (expand_asm_stmt): Restore load MEM_NOTRAP for memory |
| inputs. |
| * internal-fn.cc: Include tree-eh.h. |
| (expand_partial_load_optab_fn): Expand the source as memory and |
| restore load MEM_NOTRAP. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/127185 |
| * builtins.cc (get_memory_rtx): Add STORE_P. Pass it to |
| set_mem_attributes. |
| (expand_builtin_memory_copy_args): Mark the destination as a store |
| and the source as a load. |
| (expand_movstr): Likewise. |
| (expand_builtin_strncpy): Mark the destination as a store. |
| (expand_builtin_memset_args): Likewise. |
| (expand_builtin_memcmp): Mark both memory operands as loads. |
| (expand_builtin_strcmp): Likewise. |
| (expand_builtin_strncmp): Likewise. |
| (inline_string_cmp): Mark the memory operand as a load. |
| * builtins.h (get_memory_rtx): Add STORE_P. |
| * internal-fn.cc (expand_RAWMEMCHR): Mark the memory operand as a |
| load. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/127185 |
| * emit-rtl.cc (set_mem_attributes_minus_bitpos): Add MAY_STORE_P. |
| Use lhs_could_trap_p when it is true. |
| (set_mem_attributes): Add MAY_STORE_P and pass it through. |
| * emit-rtl.h (set_mem_attributes): Add MAY_STORE_P with a |
| conservative default. |
| (set_mem_attributes_minus_bitpos): Likewise. |
| * expr.cc (expand_assignment): Mark the destination as a store. |
| (expand_expr_real_1): Treat only EXPAND_NORMAL as a known load. |
| Set MEM_NOTRAP from the access direction. |
| |
| 2026-09-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/127184 |
| * gimple.cc (gimple_could_trap_p_1): Check a memory LHS with |
| lhs_could_trap_p. Do not inspect an LHS as an rvalue. |
| (test_could_trap): New self-test. |
| (gimple_cc_tests): Run it. |
| * tree-eh.cc (stmt_could_throw_p): Check a nothrow call's memory LHS. |
| |
| 2026-09-15 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| * config/aarch64/aarch64-simd.md: Add define_expand <su>sadv8qi |
| guarded by TARGET_DOTPROD. |
| |
| 2026-09-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/127177 |
| * config/i386/i386-expand.cc (ix86_fp_cmp_code_to_pcmp_immediate): |
| Return the _UQ predicate immediates for UNLE, UNLT, UNGE, UNGT and |
| UNEQ. |
| * config/i386/i386.cc (ix86_print_operand):Likewise to print the |
| _uq suffixed AVX predicates for these codes. |
| * config/i386/predicates.md (ix86_fp_vec_cmp_operator): New |
| predicate. |
| * config/i386/sse.md (vec_cmp<mode><sseintvecmodelower>): Use the |
| new predicate for the VF_128 compare. |
| * config/i386/mmx.md (vec_cmpv2sfv2si): Likewise. |
| |
| 2026-09-14 Jean-Didier Pailleux <jean-didier.pailleux@sipearl.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sme.def (REQUIRED_EXTENSIONS): Add |
| missing #undef. |
| |
| 2026-09-14 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR tree-optimization/127379 |
| * match.pd (ior_range_test_0): Require an integral type. |
| |
| 2026-09-14 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_SVE_PREFER_ZEROING_MOVIMM): New |
| define. |
| * config/aarch64/aarch64-sve.md (*vcond_mask_<mode><vpred>): Add a |
| split condition for zero predicate. |
| * config/aarch64/aarch64-tuning-flags.def: Add AVOID_MOVIMM_Z tune. |
| * config/aarch64/tuning_models/neoversev1.h (tune_flags): Update. |
| * config/aarch64/tuning_models/neoversev2.h (tune_flags): Update. |
| |
| 2026-09-14 xiezhiheng <xiezhiheng@huawei.com> |
| |
| * haifa-sched.cc (max_issue): Cap max_lookahead_tries |
| |
| 2026-09-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/127336 |
| * optabs.cc (maybe_emit_compare_and_swap_exchange_loop, |
| expand_atomic_fetch_op_no_fallback, expand_atomic_fetch_op): Force |
| val into a pseduo if it updates to mem could change its value |
| and when using val after the atomic op or inside of a loop. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genemit.cc (main): Choose an output file for each overloaded name. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * rtl.h (note_split): Declare. |
| * emit-rtl.cc (note_split): New function. |
| * genemit.cc (gen_split): Call it rather than emitting the test and |
| the fprintf. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genrecog.cc (md_conditions, md_condition_ids): New variables. |
| (md_condition_id, print_md_conditions): New functions. |
| (print_test): Call a helper for a C test rather than emitting the |
| condition. |
| (main): Write the helpers to the header. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genextract.cc (MISSING_OPERAND_CHAR): New macro. |
| (pathpool, dupnums): New variables. |
| (add_path, print_string_literal, print_extractions): New functions. |
| (print_path): Remove. |
| (print_header): Only emit the prologue. |
| (main): Call print_extractions. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_sub): Accept commuted |
| comparison operand orders and the arm order from a two-return source. |
| |
| 2026-09-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_sub): Add the |
| X - MIN (X, Y) form. |
| * tree-ssa-math-opts.cc |
| (build_saturation_binary_arith_call_and_replace): Return whether a |
| replacement was made. |
| (match_saturation_add_with_assign): Likewise. |
| (match_unsigned_saturation_sub): Likewise. |
| (math_opts_dom_walker::after_dom_children): Check MINUS_EXPR for |
| saturation, and use the assign recognizer results. |
| |
| 2026-09-14 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.cc: |
| (function_resolver::resolve_to): Fix documentation comment. |
| * config/aarch64/aarch64-acle-builtins.h: (TYPES_tmop_base, |
| TYPES_tmop_h_bfloat, TYPES_tmop_h_float, TYPES_tmop_h_mf8, |
| TYPES_tmop_s_mf8): Add new DEF_SVE_TYPES_ARRAYs. |
| * config/aarch64/aarch64-c.cc: (__ARM_FEATURE_SME_TMOP): Add define. |
| * config/aarch64/aarch64-sme.md: |
| (@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SVE_FULL_BHI:mode>): Add |
| new insn. |
| (@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>): |
| Likewise. |
| (@aarch64_sme_lane_<optab><mode><mode>): |
| Likewise. |
| (@aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SVE_FULL_HF:mode>): |
| Likewise. |
| (@aarch64_sme_lane_<optab><SME_TMOPA_FP8:mode><VNx16QI_ONLY:mode>): |
| Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc: |
| (ternary_za_uint_dual_single): Add new shape. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc: (svtmopa_lane_za_impl): |
| Add new function impl class. |
| (svtmopa_lane_za): Add new FUNCTION. |
| * config/aarch64/aarch64-sve-builtins-sme.def: (svtmopa_lane): Add new |
| DEF_SME_ZA_FUNCTION_GS entries. |
| * config/aarch64/aarch64-sve-builtins-sme.h: (svtmopa_lane_za): Add new. |
| * config/aarch64/aarch64.h: (TARGET_STREAMING_SME_TMOP): Add new define. |
| * config/aarch64/constraints.md (Uwo): Add new constraint for Control |
| Vector Register in TMOP operations. |
| * config/aarch64/iterators.md: (SME_TMOPA_BHSF, SME_TMOPA_FP8): Add new mode |
| iterators. |
| (UNSPEC_SME_FTMOPA, UNSPEC_SME_FTMOPA_FP8, UNSPEC_SME_STMOPA, |
| UNSPEC_SME_SUTMOPA, UNSPEC_SME_USTMOPA, UNSPEC_SME_UTMOPA): Add new |
| unspecs. |
| (SME_TMOP_INT, SME_TMOP_INT_CROSS, SME_TMOP_FP, SME_TMOP_FP8): Add new |
| iterators. |
| (za_imm_bits): Add new mode_attr. |
| (optab): Update with new unspecs. |
| * config/aarch64/predicates.md: (aarch64_imm1, aarch64_imm4): Add new |
| predicates. |
| |
| 2026-09-14 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64.md: Rename aarch64_imm3 as aarch64_shift_imm3. |
| * config/aarch64/aarch64-simd.md: Rename aarch64_lane_imm3 as aarch64_imm3. |
| * config/aarch64/predicates.md: Rename aarch64_imm3 as aarch64_shift_imm3 |
| and aarch64_lane_imm3 to aarch64_imm3. |
| |
| 2026-09-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127377 |
| * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): |
| Properly consider the padding before the object when |
| pruning the size. |
| |
| 2026-09-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127363 |
| * tree-vect-stmts.cc (vectorizable_assignment): Properly |
| code-generate PAREN_EXPRs. |
| |
| 2026-09-14 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR target/126983 |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): |
| Split into VS32_I_SUB64_F_CONDFP16 and HFBF variants. Change |
| uxtw to uxt<extsize>. |
| (*aarch64_combinez_be<mode>): Likewise. |
| * config/aarch64/iterators.md (VSSUB64_F): Remove iterator. |
| (VS32_I_SUB64_F): Amend by explicitly listing all modes. |
| (VS32_I_SUB64_F_CONDFP16): New iterator. |
| |
| 2026-09-14 Rohith Kapelli <kapellirohith@gmail.com> |
| |
| PR ipa/123227 |
| * ipa-icf.cc (sem_function::equals_wpa): Compare TYPE_ATTRIBUTES |
| as a list rather than through comp_type_attributes. Reject a |
| METHOD_TYPE compared against a FUNCTION_TYPE. |
| |
| 2026-09-13 Dominic P <gcc@gcc.dp11.uk> |
| |
| * generic-match-head.cc (gimple_match_no_overflow_p): New. |
| * gimple-match-head.cc (gimple_match_no_overflow_p): New. |
| * match.pd (Y + MIN (X - Y, 0), X - MIN (X - Y, 0), Y + MAX (X - Y, 0), |
| X - MAX (X - Y, 0), MIN (X + Y, Y) - Y, MAX (X + Y, Y) - Y): New |
| patterns. |
| |
| 2026-09-13 Dominic P <gcc@gcc.dp11.uk> |
| |
| * match.pd (A - MIN (B, C), A - MAX (B, C)): New patterns. |
| |
| 2026-09-13 Jeff Law <jeffreyalaw@gmail.com> |
| Sun Yuechi <sunyuechi@iscas.ac.cn |
| |
| * config/riscv/riscv-bclr-lowest-set-bit.cc |
| (pass_bclr_lowest_set_bit::execute): Do not handle addiw forms. |
| |
| 2026-09-13 Dominic P <gcc@gcc.dp11.uk> |
| |
| * match.pd (ior_range_test, ior_range_test_1, ior_range_test_0): |
| New matchers. |
| (((X + C1) | (C2 - X)) < 0): New simplification. |
| ((unsigned) ((X + C1) | (C2 - X)) >> (prec - 1)): Likewise. |
| (ABS_EXPR <X> > C): Likewise. |
| |
| 2026-09-13 Michiel Derhaeg <michiel@derhaeg.be> |
| |
| * config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): |
| Use the clmul expansion for a word-sized crc on rv32 with Zbc. |
| * config/riscv/riscv.cc (expand_reversed_crc_using_clmul): Use |
| clmulr with the unshifted reflected polynomial when the crc is |
| word-sized. |
| (riscv_optab_supported_p): Allow crc_rev for a word-sized result |
| on rv32 with Zbc when optimizing for size. |
| |
| 2026-09-13 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/125820 |
| PR c++/124249 |
| PR c++/124414 |
| * expr.cc (count_type_elements) <case LANG_TYPE>: Return 1. |
| * tree.cc (wide_int_to_tree_1) <case LANG_TYPE>: New. |
| (cache_integer_cst) <case LANG_TYPE>: New. |
| |
| 2026-09-13 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/127318 |
| * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Attach |
| REG_CFA_DEF_CFA note to the copy from the stack pointer. |
| |
| 2026-09-13 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127358 |
| * match.pd (two_value cond): Prefer unsigned types. |
| |
| 2026-09-13 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/127153 |
| * config/loongarch/loongarch.md (both_non_zero): Defer the split |
| post reload and add constraint to ensure operands[0] and |
| operands[2] are in different hard registers. |
| (both_non_zero_subreg): Likewise. |
| |
| 2026-09-12 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Reject |
| undefined ranges returned by Ranger. |
| (number_of_iterations_cltz_complement): Likewise. |
| |
| 2026-09-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| * common/config/avr/avr-common.cc |
| (avr_option_optimization_table) [OPT_LEVELS_1_PLUS]: Set |
| -mdemote-switch. |
| * config/avr/avr-passes.cc (avr_pass_casesi::gate): |
| Require avropt_demote_switch to be on. |
| * config/avr/avr.opt (mdemote-switch): New option. |
| * config/avr/avr.opt.urls (mdemote-switch): Add UrlSuffix. |
| * doc/invoke.texi (AVR Options): Document -mdemote-switch. |
| |
| 2026-09-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Downloading the source): Drop note on |
| more finely grained source code archives. |
| |
| 2026-09-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genoutput.cc (data): Add output_code. |
| (output_def): New structure. |
| (output_codes): New variable. |
| (process_template): Determine the output format before emitting |
| anything and test that rather than the template. Reuse an identical |
| definition emitted earlier, recording output_code, and check the |
| number of alternatives against the count recorded with it. |
| (output_insn_data): Use output_code. |
| |
| 2026-09-12 Pan Li <pan2.li@intel.com> |
| |
| PR target/127269 |
| * config/riscv/riscv-v.cc (riscv_v_widen_constraint_ok): Return |
| false instead of assertion when the nregs of dest and src are |
| the same but greater than 1. |
| |
| 2026-09-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/127306 |
| * config/riscv/riscv-bclr-lowest-set-bit.cc (find_later_ctz): Fix |
| off-by-one error for scan to verify ctz input isn't modified. |
| (pass_bclr_lowest_bit_set::execute): Remove original AND in case |
| where the CTZ is found after the AND. |
| |
| 2026-09-11 Dominic P <gcc@gcc.dp11.uk> |
| |
| * tree-vect-stmts.cc (has_consecutive_load_permutation): Remove |
| the group_size parameter and the requirement that the permutation |
| length divides the group size. Make static. |
| (get_load_store_type): Adjust caller. |
| |
| 2026-09-11 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/127244 |
| * lra-constraints.cc (inheritance_pseudo_p): New function. |
| (undo_optional_reloads): Keep optional reload for output |
| operand if it is inherited. |
| |
| 2026-09-11 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_slow_unaligned_access): |
| Return the same as riscv_support_vector_misalignment. |
| |
| 2026-09-11 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR middle-end/127323 |
| * expmed.cc (extract_integral_bit_field): Use store_bit_field if |
| operand_subword fails. |
| |
| 2026-09-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (rr_transitive_table): Update. |
| |
| 2026-09-11 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv-protos.h (riscv_expand_block_clear): |
| Remove. |
| (expand_vec_setmem): Add testing param. |
| (riscv_expand_setmem): Likewise. |
| * config/riscv/riscv-string.cc (riscv_expand_block_clear_zicboz_zic64b): |
| Likewise. |
| (riscv_expand_block_clear): Make static. |
| (expand_scalar_setmem): New function. |
| (riscv_expand_setmem): New function. |
| (expand_vec_setmem): Add testing param. |
| * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p): |
| Query riscv_expand_setmem for support. |
| * config/riscv/riscv.md: Use riscv_expand_setmem. |
| |
| 2026-09-11 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv-protos.h (riscv_expand_block_move): |
| Declare. |
| * config/riscv/riscv-string.cc (riscv_block_move_straight): |
| Handle overlap. |
| (riscv_block_move_loop): Pass "no overlap" to |
| riscv_block_move_straight. |
| (riscv_expand_block_move_scalar): Add overlap param. |
| (riscv_expand_block_move): Likewise. |
| (expand_block_move): Likewise. |
| * config/riscv/riscv.md: Use riscv_expand_block_move. |
| |
| 2026-09-11 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): |
| Set REGMODE_NATURAL_SIZE to the size of one vector. |
| |
| 2026-09-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * doc/generic.texi (REFERENCE_TYPE): Document the object contract |
| for reference parameters. |
| (METHOD_TYPE): Document the object contract for the this parameter. |
| * tree-eh.cc (parm_decl_from_ptr): New function. |
| (whole_object_param_size): New function. |
| (tree_could_trap_1): Use whole-object parameter bounds for loads. |
| |
| 2026-09-11 Manjunath Matti <mmatti@linux.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/117584 |
| * config/rs6000/rs6000-call.cc (rs6000_bitint_large_p): New |
| function. |
| (rs6000_return_in_memory): Return large _BitInt values, and enums |
| backed by _BitInt, via a hidden pointer. |
| (rs6000_pass_by_reference): Pass large _BitInt values, and enums |
| backed by _BitInt, by reference. |
| * config/rs6000/rs6000.cc (TARGET_C_BITINT_TYPE_INFO): Define. |
| (init_float128_ibm): Set bitinttofp_optab and bitintfromfp_optab |
| libfuncs to __floatbitinttf and __fixtfbitint. |
| (init_float128_ieee): Set bitinttofp_optab and bitintfromfp_optab |
| libfuncs to __floatbitintkf and __fixkfbitint. |
| (rs6000_function_value): Exclude BITINT_TYPE from sub-word integer |
| return value promotion. |
| (rs6000_bitint_type_info): New function. |
| |
| 2026-09-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127310 |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Apply |
| costing after registering loop masks. |
| |
| 2026-09-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/127330 |
| * recog.h (recog_state_saver::recog_state_saver): Initialize |
| m_tmp_recog_data.insn. |
| |
| 2026-09-11 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadupdate.cc (jt_path_registry::remove_path): New, |
| and an overload taking the path's first edge. |
| (jt_path_registry::add_first_edge): New. |
| (jt_path_registry::drop_first_edge): New. |
| (jt_path_registry::first_edge_count): New. |
| (back_jt_path_registry::adjust_one_path): Move the candidate's |
| count when its first edge changes; remove before cancelling. |
| (back_jt_path_registry::adjust_paths_after_duplication): Return |
| early when no other path starts on the same edge. |
| (fwd_jt_path_registry::mark_threaded_blocks): Use remove_path. |
| (back_jt_path_registry::update_cfg): Remove the threaded path by |
| the edge it started on. |
| (fwd_jt_path_registry::update_cfg): Use remove_path. |
| (jt_path_registry::register_jump_thread): Count the new first edge. |
| * tree-ssa-threadupdate.h (jt_path_registry::m_first_edge_counts): New. |
| (jt_path_registry::remove_path, add_first_edge, drop_first_edge) |
| (jt_path_registry::first_edge_count): Declare. |
| |
| 2026-09-11 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadupdate.cc (back_jt_path_registry::adjust_one_path): |
| Fix the dump messages. |
| |
| 2026-09-11 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadupdate.cc (back_jt_path_registry::adjust_one_path): |
| New, split out of ... |
| (back_jt_path_registry::adjust_paths_after_duplication): ... here. |
| * tree-ssa-threadupdate.h (back_jt_path_registry::adjust_one_path): |
| Declare. |
| |
| 2026-09-11 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-eh.cc (tree_could_trap_1, tree_could_trap_p): Clarify the |
| function comments. |
| (lhs_could_trap_p): Correct the function comment. |
| |
| 2026-09-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.cc (dump_generic_node): Adjust -gimple |
| dumping for clobbers. |
| |
| 2026-09-11 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/127020 |
| * config/i386/i386-features.cc |
| (timode_scalar_chain::compute_convert_gain): Add gain of |
| COSTS_N_INSNS (1) for pand/pior/pxor loads. |
| |
| 2026-09-10 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/127308 |
| * genmatch.cc (operator==): Move earlier. |
| (c_code_id::gen_checking): Correct the check for CONVERT_EXPR/NOP_EXPR. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/pdp11/pdp11.cc (pdp11_rtx_costs): Move src assignment |
| into the blocks that need it. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Fix |
| two places that returned a cost directly so that they now store |
| the cost in *total and return true. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mmix/mmix-protos.h (mmix_eh_return_data_regno): Return |
| unsigned int rather than int. |
| * config/mmix/mmix.cc (mmix_eh_return_data_regno): Likewise. |
| (mmix_initial_elimination_offset): Limit regno variables to |
| their for loops and use unsigned regnos for EH data queries. |
| (mmix_use_simple_return): Likewise. |
| (mmix_expand_prologue): Likewise. |
| (mmix_expand_epilogue): Likewise. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/gcn/gcn.cc (gcn_init_cumulative_args): Start the |
| inform message with a lowercase letter. Quote the option name. |
| |
| 2026-09-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (back_threader_profitability): |
| Remove the note on bb_insns. |
| (back_threader_profitability::possibly_profitable_path_p): Dump |
| each block's insn count. |
| |
| 2026-09-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (back_threader_profitability): Add |
| push_bb, pop_bb, m_loop, unwind_state and m_unwind; add n_insns |
| to path_stats; replace m_n_insns with a net_insns accessor. |
| (back_threader_profitability::back_threader_profitability): |
| Initialize m_loop and m_stats. |
| (back_threader_profitability::account_bb): Return the number of |
| insns in the block. |
| (back_threader_profitability::push_bb): New. |
| (back_threader_profitability::pop_bb): New. |
| (back_threader_profitability::possibly_profitable_path_p): Use |
| the accumulated stats. |
| (back_threader_profitability::profitable_path_p): Likewise. |
| (back_threader::find_paths_to_names): Call push_bb/pop_bb. |
| |
| 2026-09-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (back_threader_profitability): Add |
| path_stats and m_stats; move m_threaded_through_latch, |
| m_multiway_branch_in_path, m_contains_hot_bb and |
| m_unprofitable_bb into it. |
| (back_threader_profitability::account_bb): Adjust. |
| (back_threader_profitability::possibly_profitable_path_p): |
| Adjust. |
| (back_threader_profitability::profitable_path_p): Adjust. |
| |
| 2026-09-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (back_threader_profitability): Add |
| account_bb and m_unprofitable_bb. |
| (back_threader_profitability::account_bb): New. |
| (back_threader_profitability::possibly_profitable_path_p): Use it. |
| |
| 2026-09-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc |
| (back_threader_profitability::possibly_profitable_path_p): Dump |
| the path after counting it instead of from within the loop. |
| |
| 2026-09-10 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * config/aarch64/aarch64-json-tunings-parser.cc (test_json_integers): Initialize params. |
| (test_json_boolean): Likewise. |
| (test_json_strings): Likewise. |
| (test_json_enums): Likewise. |
| |
| 2026-09-10 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127052 |
| * tree-ssa-phiopt.cc (cond_store_replacement_limited): Reject clobbers |
| for the middle bb store. And Remove the check on ssa name for the rhs |
| of the middle bb store. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genopinit.cc (struct pattern_info): New. |
| (patterns): Use it. |
| (gen_insn): Record the pattern's C test. |
| (pattern_cmp): Use pattern_info. |
| (narrowest_uint_type): New function. |
| (main): Emit a condition-number table and a loop instead of one |
| assignment per pattern, and drop the split into 1000-pattern |
| functions. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/rx/rx.cc (rx_gen_move_template): Fix GET_MODE/GET_CODE typo. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/nds32/nds32.cc (nds32_dwarf_register_span): Remove |
| unused dwarf_single variable. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/lm32/lm32.cc (lm32_builtin_va_start): Remove unused |
| variable. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/c6x/c6x.cc (reorg_split_calls): Remove unused uid |
| and reservation_mask variables. |
| (hwloop_optimize): Remove unused delayed_splits variable. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((type) MAX ((wide_type) a - (wide_type) b, 0)): New |
| simplification. |
| ((type) MIN ((wide_type) a + (wide_type) b, MAX)): Likewise. |
| |
| 2026-09-10 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/predicates.md (insertps_parallel): New predicate. |
| * config/i386/sse.md (sse4_1_insertps_<mode>_perm): New |
| define_insn to implement V4SI or V4SF permute using insertps. |
| (*sse2_insertps_<mode>_perm): Emulate the above insn on SSE2 |
| by splitting to one or two of pslldq, psrldq and pshufd. |
| |
| 2026-09-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * recog.h (recog_data_d): Delete copy and move constructors. |
| (recog_data_ptr): New variable. |
| (recog_data): Turn into a macro. |
| (recog_data_saver): Rename to... |
| (recog_state_saver): ...this and move into the !GENERATOR_FILE block. |
| Save and restore which_alternative. Save and restore recog_data_ptr |
| rather than doing a full recog_data_d copy. |
| * varasm.cc (assemble_asm): Explicitly initialize n_dups, |
| n_alternatives, and is_operator. |
| * recog.cc (recog_data): Replace with... |
| (main_recog_data, recog_data_ptr): ...these new variables. |
| * emit-rtl.cc (address_reload_context::emit_autoinc): Update |
| after the rename. |
| * reload.cc (can_reload_into): Use recog_state_saver rather than |
| manually saving and restoring recog_data. |
| * config/i386/i386.cc (ix86_memory_address_reg_class): Likewise. |
| (ix86_lea_outperforms): Likewise. |
| * config/i386/i386-expand.cc (ix86_vector_duplicate_value): Likewise. |
| * config/sh/sh.cc (sh_recog_treg_set_expr): Likewise. |
| (sh_split_treg_set_expr): Likewise. |
| * config/sh/sh.md: Likewise in two peephole2s. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_add): Recognise comparisons |
| against the complement of an operand. Also recognise ADD_OVERFLOW |
| with a separate addition. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * genmatch.cc (case_convert_id_p): New function. |
| (same_case_p): Likewise. |
| (operation_has_case_p): Likewise. |
| (operations_overlap_p): Likewise. |
| (function_operation_p): Likewise. |
| (operand_cases_overlap_p): Likewise. |
| (cmp_operand): Handle conversion cases and function iterators. |
| (nodes_overlap_p): New function. |
| (decision_tree::find_node): Do not merge across an overlapping node. |
| (decision_tree::insert_operand): Assert the recursive lookup result. |
| (fns_cmp): Remove. |
| (dt_operand_group): New structure. |
| (add_operation_cases): New function. |
| (find_group): Likewise. |
| (collect_operand_groups): Likewise. |
| (operation_covers_group_p): Likewise. |
| (emit_operation_test): Likewise. |
| (emit_group_labels): Likewise. |
| (emit_expr_group): Likewise. |
| (emit_fn_group): Likewise. |
| (dt_node::gen_kids): Do not sort function nodes. |
| (dt_node::gen_kids_1): Emit groups with unique case labels. |
| |
| 2026-09-10 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.md (one_cmpldi2): Use s_not_b64. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc: Spell noce_if_info without the struct keyword throughout. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (count_bb_insns, cheap_bb_rtx_cost_p, first_active_insn, |
| last_active_insn, find_active_insn_before, find_active_insn_after, |
| block_fallthru, cond_exec_get_condition, noce_get_condition, |
| find_if_header, block_jumps_and_fallthru, noce_find_if_block, |
| noce_emit_move_insn, noce_emit_store_flag, noce_try_move, |
| noce_try_ifelse_collapse, noce_try_store_flag, noce_try_addcc, |
| noce_try_store_flag_constants, noce_try_shifted_store_flag, |
| noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, |
| noce_get_alt_condition, noce_try_minmax, noce_try_abs, |
| noce_try_sign_mask): Remove the unused forward declarations. |
| (noce_emit_cmove): Likewise, and give the definition the default |
| arguments. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_can_force_operand): Return a bool rather than an |
| insn_code. |
| (noce_emit_cmove): Remove ATTRIBUTE_UNUSED from local variables. |
| (bbs_ok_for_cmove_arith): Drop braces around single statements. |
| (noce_find_if_block): Value-initialize if_info instead of memsetting it. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_original_region_cost): New function. |
| (noce_process_if_block): Use it for the multiple-set and the |
| single-set estimate. Rename old_cost to base_cost and compute |
| speed_p once. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (cond_move_process_if_block): Make then_regs and else_regs |
| auto_vec and return directly instead of jumping to a cleanup label. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_seq_clobbers_cc_cmp_p): New function. |
| (noce_convert_multiple_sets_1): Use it for both candidate sequences. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (MAX_CONDITIONAL_EXECUTE): Add a comment. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (cond_exec_changed_p): Rename to... |
| (ifcvt_changed_p): ...this, and correct its comment. Adjust all uses. |
| (noce_finish_if_conversion): Bump num_updated_if_blocks. |
| (noce_convert_multiple_sets, noce_process_if_block, |
| cond_move_process_if_block): Drop the bump the helper now does. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_try_store_flag_logical): Pass 0, not false, for the |
| normalize argument. |
| (noce_convert_multiple_sets): Use a range-for over insn_info. |
| (merge_if_block, cond_exec_find_if_block): Drop the elaborated struct |
| type. |
| (block_jumps_and_fallthru): Test the insn pointer directly. |
| (cond_exec_find_if_block): Drop a redundant last_test_bb store. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_splat_to_const): New function. |
| (noce_try_sign_bit_splat): Use it for both orientations. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (merge_block_into_combo): New function. |
| (merge_if_block): Use it for the THEN and the ELSE block. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_representable_diff_p): New function. |
| (noce_try_store_flag_constants): Use it. |
| (noce_try_cmove): Likewise. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_reversed_cond): New function. |
| (noce_reversed_cond_code): Use it. |
| (noce_try_addcc, noce_try_cmove_arith, noce_try_cond_arith): Likewise. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.h (struct ce_if_block): Make and_and_p a bool. |
| (struct noce_multiple_sets_info): Correct the unmodified_insn and |
| need_cmov comments. |
| (struct noce_if_info): Correct the insn_a/insn_b, speed_p and |
| original_cost comments. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_process_if_block): Remove a redundant else_bb test. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (IFCVT_MULTIPLE_DUMPS): Remove. |
| (if_convert): Remove its now-vacuous #ifdef guards. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (first_active_insn, find_active_insn_after, block_fallthru, |
| noce_try_move, noce_try_sign_bit_splat, noce_try_store_flag_mask, |
| noce_emit_cmove, noce_try_cmove, get_base_reg_or_constant, |
| noce_try_cond_arith, try_emit_cmove_seq, |
| noce_convert_multiple_sets_1, init_noce_multiple_sets_info, |
| check_cond_move_block, find_if_header, block_jumps_and_fallthru, |
| find_if_case_2, dead_or_predicable): Fix comments. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (dead_or_predicable): Make merge_set, live and return_regs |
| auto_bitmap and drop the manual BITMAP_FREE calls. |
| (bbs_ok_for_cmove_arith): Make bba_sets an auto_bitmap. |
| (bb_valid_for_noce_process_p): Make test_bb_temps an auto_bitmap and |
| return directly instead of jumping to a cleanup label. |
| (noce_convert_multiple_sets): Make set_targets an auto_bitmap. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_convert_multiple_sets_1): Take the condition as a |
| parameter instead of re-decoding it. Remove the unused cond_earliest |
| local. |
| (noce_convert_multiple_sets): Pass the decoded condition down. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (enum ifcvt_phase): New. |
| (ifcvt_pass_phase): New, replacing... |
| (ifcvt_after_combine): ...this. |
| (cheap_bb_rtx_cost_p): Test ifcvt_pass_phase. |
| (if_convert): Take an ifcvt_phase instead of a bool. |
| (rest_of_handle_if_conversion): Adjust caller. |
| (pass_if_after_combine, pass_if_after_reload): Remove, folding both |
| into... |
| (pass_rtl_ifcvt): ...this, now parameterised on the phase. |
| (make_pass_rtl_ifcvt, make_pass_if_after_combine, |
| make_pass_if_after_reload): Construct it with the matching phase. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_commit_sequence): New function. |
| (noce_try_ifelse_collapse, noce_try_store_flag, |
| noce_try_sign_bit_splat, noce_try_inverse_constants, |
| noce_try_shifted_store_flag, noce_try_store_flag_constants, |
| noce_try_store_flag_logical, noce_try_addcc, |
| noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, |
| noce_try_cond_arith, noce_try_sign_mask): Use it. |
| |
| 2026-09-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_finish_if_conversion): New function. |
| (noce_convert_multiple_sets): Use it. Remove now-unused locals. |
| (noce_process_if_block): Likewise. |
| (cond_move_process_if_block): Likewise. |
| |
| 2026-09-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*vec_concatv2sf_sse4_1): Restrict the condition |
| to accept only CONST0_RTX as operand 2 when operand 1 is MEM. |
| (*vec_concatv2si_sse4_1): Ditto. |
| (*vec_concatv2sf_sse): Disable the pattern when SSE4.1 is enabled. |
| (*vec_concatv2si_sse): Rename from *vec_concatv2si. |
| |
| 2026-09-10 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| PR tree-optimization/125734 |
| * tree-ssa-loop-niter.cc (is_rshift_by_1): Remove TYPE_UNSIGNED restriction. |
| (number_of_iterations_cltz): Use range_on_edge to check non-negativity of |
| signed preheader input. |
| (number_of_iterations_cltz_complement): Likewise. |
| |
| 2026-09-10 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| |
| * config/riscv/riscv-protos.h (get_vector_units): New. |
| (get_scalar_units): New. |
| * config/riscv/generic-ooo.md: Update comments for vector issue width. |
| * config/riscv/generic-vector-ooo.md (vxu_ooo_issue): Change to reservation over 2 units. |
| (vxu_ooo_alu): Likewise. |
| (vxu_ooo_multicycle): Likewise. |
| * config/riscv/riscv-vector-costs.cc (costs::scale_vector_cost): New. |
| (costs::add_stmt_cost): Call it. |
| * config/riscv/riscv-vector-costs.h (costs::scale_vector_cost): New. |
| * config/riscv/riscv.cc (riscv_tune_param): Add scalar_units and |
| vector_units. |
| (generic_ooo_tune_info): Set scalar_units to 4 and vector_units to 2. |
| |
| 2026-09-09 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR rtl-optimization/127142 |
| * config/pa/pa.md: Add alternatives using ldil/addl |
| sequence to various insns to load the high part of |
| a symbolic operand. |
| |
| 2026-09-09 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127261 |
| * tree-ssa-sccvn.cc (insert_predicates_for_cond): Canonicalize |
| the comparison before testing for recusion. |
| |
| 2026-09-09 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * expr.cc (gen_common_operation_to_reflect): Remove. |
| (reflect_64_bit_value): Remove. |
| (reflect_32_bit_value): Remove. |
| (reflect_16_bit_value): Remove. |
| (reflect_8_bit_value): Remove. |
| (generate_reflecting_code_standard): Remove. |
| * expr.h (generate_reflecting_code_standard): Remove. |
| |
| 2026-09-09 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.cc (pa_spill_class): Declare. |
| (pa_legitimize_address_displacement): Declare. |
| (TARGET_SPILL_CLASS): Define. |
| (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define. |
| (pa_secondary_reload): Handle 32 and 64-bit |
| float/integer type puns. We need a secondary |
| reload for SImode/DImode REG+D moves to general |
| and float registers. |
| (pa_legitimate_address_p): Allow 14-bit displacements |
| when lra_in_progress is true. |
| (pa_spill_class): Implement. |
| (pa_legitimize_address_displacement): Implement. |
| |
| 2026-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (if_case_blocks_ok_p): New function. |
| (find_if_case_1, find_if_case_2): Use it. |
| |
| 2026-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_try_shifted_store_flag): Drop the vacuous null test |
| on common. |
| (noce_try_store_flag_mask): Match the two forms without assigning |
| inside the condition. |
| (noce_convert_multiple_sets): Drop the redundant set_used_flags calls |
| and the locals they were the only use of. |
| |
| 2026-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_try_cond_arith): Assert that the conditional move |
| exists after the subreg fallback and drop the four dead tests for it. |
| |
| 2026-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): Remove and poison. |
| * recog.h (insn_data_d::insn_output_u): New union, replacing the |
| anonymous one and its non-designated fallback. Add a constructor |
| per member. |
| * genoutput.cc (output_operand_data): Emit one row per line. |
| (output_insn_data): Likewise, and initialise the output member |
| directly rather than through a designated initialiser. |
| |
| 2026-09-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-ssa-loop-im.cc (can_sm_ref_p): Reject a trapping store when |
| non-call exceptions are enabled. |
| |
| 2026-09-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-phiopt.cc (hoist_adjacent_loads): Clear the range |
| info of the hoisted loads. |
| |
| 2026-09-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * tree-ssa-threadbackward.cc (back_threader::m_visited_bbs): |
| Replace with... |
| (back_threader::m_visited_flag): ...this. |
| (back_threader::back_threader): Initialize it. |
| (back_threader::find_paths_to_names): Adjust. |
| (back_threader::maybe_thread_block): Drop the reset. |
| |
| 2026-09-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.cc (range_from_missing_constructor_part): |
| Allow float types. |
| (range_from_readonly_load): Add the range of a REAL_CST. |
| (fold_using_range::range_from_readonly_var): Allow float types. |
| |
| 2026-09-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127262 |
| * gimple-predicate-analysis.cc (predicate::init_from_control_deps): |
| Convert switch label values to the type of the switch index. |
| |
| 2026-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.cc (nowrap_type_p): Honor |
| -fwrapv-pointer. |
| |
| 2026-09-09 Sun, Qin <qin.sun@intel.com> |
| |
| * config/i386/sse.md (vec_concatv2df): Restrict the condition |
| to accept only CONST0_RTX as operand 2 when operand 1 is MEM. |
| |
| 2026-09-09 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/126153 |
| * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Only |
| reinterpret a known aggregate value into the type of the |
| condition if both types have the same precision. |
| |
| 2026-09-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126153 |
| * tree-ssa-sccvn.cc (reverse_storage_order_for_component_p): Take |
| the operands by const reference. |
| (vn_reference_lookup_3): Punt when translating a reference through |
| an aggregate copy consumes all of its operands and either access |
| has reverse storage order. |
| |
| 2026-09-09 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc: Merge NEON_FUNCTION |
| macro instances having the same CLASS and ARGS arguments. |
| * config/aarch64/aarch64-neon-builtins-functions.h |
| (NEON_FUNCTION): Convert to a variadic macro and rename from this ... |
| (NEON_FUNCTION_IMPL): ... to this. |
| (NEON_FUNCTION_COUNT_IMPL): New macro. |
| (NEON_FUNCTION_COUNT): Likewise. |
| (NEON_FUNCTION_N_3): Likewise. |
| (NEON_FUNCTION_N_4): Likewise. |
| (NEON_FUNCTION_N_5): Likewise. |
| (NEON_FUNCTION_N_6): Likewise. |
| (NEON_FUNCTION_N_7): Likewise. |
| (NEON_FUNCTION_N_8): Likewise. |
| (NEON_FUNCTION_N_9): Likewise. |
| (NEON_FUNCTION_N_10): Likewise. |
| (NEON_FUNCTION_N_11): Likewise. |
| (NEON_FUNCTION_N_12): Likewise. |
| (NEON_FUNCTION_2): Likewise. |
| (NEON_FUNCTION_1): Likewise. |
| |
| 2026-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/127225 |
| * config/i386/i386-expand.cc (ix86_expand_vector_init_v4sf): Use |
| emit_move_insn rather than a bare SET to materialize the V2SFmode |
| zero half, as movv2sf may not be available. |
| |
| 2026-09-08 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/126622 |
| * config/alpha/alpha.cc (alpha_va_start): Use |
| build_int_cst (integer_type_node, cst). |
| * config/i386/i386-options.cc (ix86_handle_tm_regparm_attribute): Ditto. |
| * config/mips/mips.cc (mips_build_builtin_va_list): Ditto. |
| (mips_gimplify_va_arg_expr): Ditto. |
| * config/rs6000/rs6000-call.cc (rs6000_va_start): Ditto. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Ditto. |
| (resolve_vec_step): Ditto. |
| * config/s390/s390.cc (s390_va_start): Ditto. |
| * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Ditto. |
| (s390_resolve_overloaded_builtin): Ditto. |
| * config/stormy16/stormy16.cc (xstormy16_expand_builtin_va_start): Ditto. |
| * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Ditto. |
| * omp-simd-clone.cc (simd_clone_adjust): Ditto. |
| * trans-mem.cc (ipa_tm_insert_irr_call): Ditto. |
| * tree-data-ref.cc (compute_overlap_steps_for_affine_univar): Ditto. |
| (analyze_subscript_affine_affine): Ditto. |
| * tsan.cc (instrument_builtin_call): Ditto. |
| * omp-expand.cc (expand_omp_atomic_fetch_op): Ditto. |
| (expand_omp_atomic_cas): Ditto. |
| (expand_omp_atomic_pipeline): Ditto. |
| * tree-vect-generic.cc (add_shift): Ditto. |
| * tree-vect-patterns.cc (vect_recog_divmod_pattern): Ditto. |
| * expr.cc (maybe_optimize_mod_cmp): Ditto. |
| * gimple-ssa-store-merging.cc (bswap_replace): Ditto. |
| (imm_store_chain_info::output_merged_store): Ditto. |
| * omp-low.cc (lower_omp_ordered): Ditto. |
| |
| 2026-09-08 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * tree-pretty-print.h (pp_double_int): Remove. |
| * tree-pretty-print.cc (pp_double_int): Ditto. |
| |
| 2026-09-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-path.h (path_range_query::m_pointer_exit_dependencies): |
| New. |
| * gimple-range-path.cc (path_range_query::adjust_for_non_null_uses): |
| Walk m_pointer_exit_dependencies, and return early for a block with no |
| inferred ranges. |
| (path_range_query::compute_ranges): Fill in m_pointer_exit_dependencies. |
| |
| 2026-09-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-path.cc (path_range_query::reset_path): Splice |
| into the existing path vector. |
| (path_range_query::compute_ranges): Reset the path oracle |
| unconditionally. |
| * tree-ssa-threadbackward.cc (back_threader::m_solver): New. |
| (back_threader::back_threader): Allocate it. |
| (back_threader::~back_threader): Free it. |
| (back_threader::find_taken_edge_goto): Use it. |
| (back_threader::find_taken_edge_switch): Same. |
| (back_threader::find_taken_edge_cond): Same. |
| |
| 2026-09-08 Rohith Kapelli <kapellirohith@gmail.com> |
| |
| PR ipa/119006 |
| * ipa-icf-gimple.cc (func_checker::compare_operand): Pass |
| OEP_ADDRESS_OF_SAME_FIELD to operand_equal_p. |
| |
| 2026-09-08 Dominic P <gcc@gcc.dp11.uk> |
| |
| * match.pd (((x >> 1) + (y >> 1)) + ((x | y) & 1)): New pattern. |
| |
| 2026-09-08 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR target/126932 |
| * config/riscv/autovec.md: Rewrite vector FMA patterns. |
| * config/riscv/autovec-opt.md: Likewise and add new patterns. |
| |
| 2026-09-08 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/117193 |
| * fold-const.cc (combine_comparisons): Add support |
| for LT, GT, LE, and GE. |
| * match.pd (`(a CMP0 b) OP (a OP1 b)`): Change to use simple_comparison |
| instead of eq/ne. |
| |
| 2026-09-08 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/107881 |
| * fold-const.cc (enum comparison_code): Mark underlying type as |
| unsigned char. Wrap in an anonymous namespace. |
| (operator~): New function. |
| (operator|): New function. |
| (operator&): New function. |
| (operator^): New function. |
| (combine_comparisons): Add support for NE/XOR and EQ. |
| * match.pd (`(a CMP1 b) OP (a CMP2 b)`): Move |
| above others and add NE, XOR and EQ to the list of OPs. |
| (`(a CMP1 b) ^ (a CMP2 b)`): Remove. |
| (`(a CMP1 b) == (a CMP2 b)`): Remove. |
| |
| 2026-09-08 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/126912 |
| * doc/match-and-simplify.texi: Document new |
| with optional operands. |
| * genmatch.cc (fprint_indent): New function. |
| (class c_code_id): New class. |
| (c_code_id::gen_checking): New mthod. |
| (get_operator): For c_code_id, mark it as used too. |
| (lower_for): Treat c_code_id like a function. |
| (get_operand_type): Handle c_code_id with cmps |
| set as a comparison. |
| (expr::gen_transform): Likewise. |
| Call gen_checking for c_code_id and handle |
| c_code_id for generic for function and tree code case. |
| (dt_simplify::gen_1): Handle c_code_id. |
| (parser::parse_c_with_ids): New method. |
| (parser::parse_result): Handle optional part of with. |
| * match.pd (`(a CMP1 b) bitop (a CMP2 b)`): Remove rcmp |
| loop and update for the new syntax. |
| (other comparison loops): Update for the new syntax. |
| |
| 2026-09-08 Joel Sherrill <joel@rtems.org> |
| |
| * config/microblaze/rtems.h: RTEMS needs this defined to |
| select the proper procedure for executing the |
| global constructors. |
| |
| 2026-09-08 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-vector-costs.cc (costs::add_stmt_cost): Skip |
| statement cost adjustments for scalar costing. |
| |
| 2026-09-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127245 |
| * tree-vect-slp.cc (vect_slp_analyze_node_operations): Check |
| whether child passes vect_get_num_copies_for_invariant. |
| |
| 2026-09-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (cond_exec_process_insns): Document the parameters in the |
| function comment instead of between them. |
| (cond_exec_process_if_block): Likewise. |
| |
| 2026-09-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * ifcvt.cc (noce_try_cond_arith): Return bool instead of int. |
| (block_jumps_and_fallthru): Use a logical test on the bool flags. |
| |
| 2026-09-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-ssa-math-opts.cc (match_arith_overflow): Canonicalize the |
| operands of commutative overflow internal functions. |
| |
| 2026-09-08 Chung-Lin Tang <cltang@baylibre.com> |
| |
| PR middle-end/122205 |
| * omp-offload.cc (omp_discover_implicit_declare_target): For variables, |
| under 'OMP_REQUIRES_SELF_MAPS | OMP_REQUIRES_UNIFIED_SHARED_MEMORY', |
| remove "omp declare target" attribute and add "omp declare target link". |
| |
| 2026-09-08 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64.md |
| (*extend<SHORT:mode><GPI:mode>2_aarch64): Use extsize instead of |
| size. |
| (*adds_<optab><ALLX:mode>_<GPI:mode>): Likewise. |
| (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise. |
| (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. |
| (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. |
| (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise. |
| (*add_<optab><SHORT:mode>_si_uxtw): Likewise. |
| (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. |
| (*add_<optab><SHORT:mode>_shft_si_uxtw): Likewise. |
| (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise. |
| (*sub_<optab><SHORT:mode>_si_uxtw): Likewise. |
| (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. |
| (*sub_<optab><SHORT:mode>_shft_si_uxtw): Likewise. |
| (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise. |
| (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): |
| Likewise. |
| (*aarch64_combinez_be<mode>): Likewise. |
| * config/aarch64/atomics.md |
| (*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Likewise. |
| * config/aarch64/iterators.md (size): Yield empty string for SI. |
| (extsize): New iterator. |
| |
| 2026-09-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (movsf_internal): |
| Prefix register constraints with '*' for hardware FP register load |
| and store alternatives. |
| |
| 2026-09-08 Jack O'Donohue <jackodonohue41@gmail.com> |
| |
| * config/sh/sh.cc (sh1_builtin_p): Rename to sh_fpu_p. |
| (sh_fpu_p): Check TARGET_FPU_ANY instead of TARGET_SH1. |
| (bdesc): Update sh1_builtin_p to sh_fpu_p. |
| |
| 2026-09-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expmed.cc (store_fixed_bit_field_1): Use new aop_optab when |
| writing a value into a fixed size bitfield of a structure. |
| * optabs.cc (expand_binop): If target doesn't provide a suitable |
| aop<mode>3 instruction, intelligently use PLUS or IOR instead. |
| (expand_binop): For rotations, use aop_optab to select AOP |
| implementation instead of hard-coding add_optab. |
| (expand_bitreverse): Likwise, Use aop_optab instead of ior_optab |
| when composing swapped bits and nibbles (allows use of shift_add). |
| * optabs.def (aop_optab): New named optab for any_or_plus. |
| * rtl.def (AOP): New RTX code to capture any_or_plus semantics. |
| * config/avr/avr.md (aop<mode>3): New define_expand to specify |
| that IOR should always be used to implement any_or_plus (AOP). |
| |
| 2026-09-07 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_spill_class): Spill scalars to SGPRs. |
| |
| 2026-09-07 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (vnhi): New mode attribute. |
| (VnHI): Likewise. |
| (<u>mul<mode><vnsi>3<exec>): New. |
| (<u>mul<mode><vnhi>3<exec>): New. |
| * config/gcn/gcn.md (<u>mulqihi3_scalar): Rename this ... |
| (<u>mulqihi3): ... to this. |
| |
| 2026-09-07 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-opts.h (TARGET_RDNA3_PLUS): New. |
| * config/gcn/gcn-valu.md (<expander><mode>2<exec>): New. |
| (<expander><mode>2): New. |
| (<expander><mode>2_natural): New. |
| * config/gcn/gcn.md (rnda): Add n3 and 3p values. |
| (enabled): Handle rdna n3 and 3p. |
| (mnemonic): Add clz and ctz. |
| (rdna_mnemonic): New code attribute. |
| |
| 2026-09-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| Cui Lili <lili.cui@intel.com> |
| |
| PR tree-optimization/125557 |
| * ifcvt.cc (noce_convert_multiple_sets): Build metadata for both arms. |
| Append entries for else-only live-out destinations, enforce the final |
| output limit, and preserve the then-arm source location. |
| (noce_convert_multiple_sets_1): Consume the unified output metadata. |
| Select incoming values for destinations defined by only one arm. |
| (init_noce_multiple_sets_info): Initialize stable metadata fields. |
| (bb_ok_for_noce_convert_multiple_sets): Remove final-source |
| classification. |
| (noce_process_if_block): Form the union of the arm live-outs, accept |
| arm-only destinations and one-set arms without a shared-source gate, and |
| keep the CFG arm order. |
| |
| 2026-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * optabs.def (bitinttofp_optab, bitintfromfp_optab): New optabs. |
| * optabs-libfuncs.h (gen_bitint_fp_libfunc): Declare. |
| * optabs-libfuncs.cc (gen_interclass_conv_libfunc): Move most of |
| the function into ... |
| (gen_interclass_conv_libfunc_name_name): New helper function. |
| (gen_bitint_fp_libfunc): New function. |
| * internal-fn.cc (expand_FLOATTOBITINT): Use |
| optab_libfunc (bitintfromfp_optab, mode) instead of constructing |
| libcall name manually. |
| (expand_BITINTTOFLOAT): Similarly with |
| optab_libfunc (bitinttofp_optab, mode). |
| |
| 2026-09-06 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/i386-expand.cc (ix86_expand_call): User setting of |
| no_caller_saved_registers overrides lazy symbol stub reservations. |
| |
| 2026-09-06 wangjue <juewang@linux.alibaba.com> |
| |
| * config/m68k/m68k.cc (m68k_sched_issue_rate): Return one for CPUs |
| without a scheduling model. |
| |
| 2026-09-05 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/126196 |
| * config/riscv/vector-crypto.md (vv_ins_con): New int attribute. |
| (vv_ins1_con): Likewise. |
| (vi_ins1_con): Likewise. |
| (@pred_v<vv_ins1_name><mode>): Use vv_ins1_con. |
| (@pred_crypto_vv<vv_ins_name><ins_type><mode>): Use vv_ins_con. |
| (@pred_vi<vi_ins1_name><mode>_nomaskedoff_scalar): Use vi_ins1_con. |
| (@pred_vsm3me<mode>): Mark the destination as early-clobber. |
| |
| 2026-09-05 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_add): Add the |
| X + MIN (~X, Y) form. |
| |
| 2026-09-05 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_sat_sub): Add the four |
| forms that compare the difference with the minuend. |
| |
| 2026-09-05 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/127201 |
| * tree-data-ref.cc (dr_may_alias_p): Consult DR_PTR_INFO of both |
| data references before falling back to base-object analysis. |
| |
| 2026-09-05 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_zero_call_used_regs): |
| Change to assign 0 to the A9 register and then use it to clear |
| other non-GP registers, instead of triggering a gcc_assert() |
| failure when the address register is not zeroed out at all. |
| |
| 2026-09-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126671 |
| * config/riscv/bitmanip.md (bswaphi2): Use |
| TARGET_ZBB || TARGET_ZBKB condition instead of just |
| TARGET_ZBB. |
| (bitreverse<mode>2): New expander. |
| |
| 2026-09-04 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/126463 |
| * config/aarch64/aarch64.cc (aarch64_select_cc_mode): Correctly |
| match overflow detection idioms using MINUS and NEG. |
| * config/aarch64/aarch64.md (subv<GPI:mode>4): Re-order the |
| compare into canonical form. |
| (subv<GPI:mode>4_insn): Likewise. |
| (negv<GPI:mode>4): Likewise. |
| (negv<GPI:mode>_insn): Likewise. Fix typo in output template. |
| |
| 2026-09-04 Yongqiang Tian <yqtian668@gmail.com> |
| |
| PR debug/108784 |
| * ira.cc (ira): Use get_max_insn_count instead of get_max_uid when |
| selecting simple LRA. |
| |
| 2026-09-04 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/125507 |
| * gengtype-lex.l: Remove ENUM_BITFIELD. |
| * real.h (struct real_value): Ditto. |
| |
| 2026-09-04 Dominic P <gcc@gcc.dp11.uk> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/111609 |
| * config/arm/neon.md (neon_vshll<sup>_n<mode>): Emit vmovl for a |
| shift of zero. Use signless form when the shift amount == element |
| size. |
| |
| 2026-09-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126942 |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Use |
| set_range_query. |
| * gimple-range-path.h (path_ranger::active_query_compatible_p): New. |
| * gimple-range.cc (enable_ranger): Use set_range_query. |
| (disable_ranger): Likewise. |
| * tree-vrp.cc (execute_fast_vrp): Likewise. |
| * value-query.cc (set_range_query): New. |
| * value-query.h (range_query::active_query_compatible_p): New. |
| (set_range_query): Declare. |
| |
| 2026-09-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/127188 |
| * config/avr/avr-passes.cc (avr_pass_2moves) <optimize_2moves_bb>: |
| Use next_nondebug_insn_bb to traverse the insns. |
| <optimize_2moves>: Ignore degug insns when traversing |
| DF_REG_USE_CHAIN. |
| |
| 2026-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127206 |
| * tree-vect-slp.cc (vect_schedule_slp): If scc_info is already |
| present, use its failure state. |
| |
| 2026-09-04 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-09-03 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR middle-end/125390 |
| * config/riscv/riscv-v.cc (shuffle_even_odd_patterns): Adjust |
| check and clarify comment. |
| * config/riscv/riscv.cc (riscv_can_change_mode_class): Allow |
| same-sized vectors. |
| (riscv_regmode_natural_size): Set to "one vector" for VLS modes. |
| |
| 2026-09-03 Robin Dapp <rdapp.gcc@gmail.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/124996 |
| PR middle-end/125390 |
| * doc/tm.texi: Document int move requirements for |
| REGMODE_NATURAL_SIZE. |
| * doc/tm.texi.in: Likewise. |
| * expmed.cc (store_bit_field_1): Spill unsplittable modes to |
| memory. |
| (store_integral_bit_field): Defer unsplittable modes to |
| extract_bit_field. |
| (extract_bit_field_1): Spill if necessary. |
| * expr.cc (read_complex_part): Adjust assert. |
| * lower-subreg.cc (interesting_mode_p): Don't consider |
| unsplittable modes as interesting. |
| (simple_move_operand): Don't split subregs whose outer mode |
| can be split but the inner mode cannot. |
| (simplify_subreg_concatn): Don't insist the outer mode is |
| interesting but rather check that its size is constant. |
| |
| 2026-09-03 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv-protos.h (riscv_split_quadword_move): |
| Declare. |
| * config/riscv/riscv.cc (riscv_subpart): New function to get |
| TImode sub-parts from OImode regs. |
| (subreg_word_splittable_p): New function to check if a subreg |
| (spill_subreg_move): New function. |
| (riscv_split_doubleword_move): Add unsplittable-subreg handling. |
| (riscv_split_quadword_move): New function to split OImode. |
| * config/riscv/riscv.md (movti): New expander. |
| (movoi): Likewise. |
| |
| 2026-09-03 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/126629 |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svldff1_gather_impl::expand): Change ffr update. |
| (svldff1_gather_extend::expand): Likewise. |
| (svldxf1_impl::expand): Likewise. |
| (svldxf1_extend_impl::expand): Likewise. |
| * config/aarch64/aarch64-sve.md (aarch64_update_ffr_for_load): |
| Change to... |
| (@aarch64_update_ffr<mode>): ...this. |
| |
| 2026-09-03 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127183 |
| * tree-eh.cc (lower_eh_constructs_2): Use lhs_could_trap_p for lhs. |
| (stmt_could_throw_1_p): Use tree_could_throw_1 for lhs. |
| (tree_could_throw_p): Likewise. |
| |
| 2026-09-03 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR target/96056 |
| * config/arm/arm.cc (arm_expand_compare_and_swap): Always promote |
| mod_s to ACQ_REL for the RELEASE/ACQUIRE combination. |
| |
| 2026-09-03 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (vn_mode): Add the SVE modes whose |
| elements halve without changing the number of lanes. |
| * config/aarch64/aarch64-sve2.md |
| (*aarch64_sve_<shrn_op>shrnb<mode>): New pattern. |
| |
| 2026-09-03 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (VNARROWQ, Vnarrowq): Add the SVE |
| modes whose elements halve without changing the number of lanes. |
| (Ventype): Add the unpacked SVE modes. |
| * config/aarch64/aarch64-sve2.md |
| (<sat_trunc_op>trunc<mode><Vnarrowq>2): New pattern. |
| |
| 2026-09-03 Josef Melcr <josef.melcr@suse.com> |
| |
| * doc/extend.texi: Reformat callback_only attrbute docs. |
| |
| 2026-09-03 Josef Melcr <josef.melcr@suse.com> |
| |
| * doc/extend.texi: Add a line saying variadic functions are |
| unsupported to the callback_only description. |
| |
| 2026-09-03 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Move gpr<->xmm move cost ... |
| (ix86_vector_costs::add_slp_cost): ... here, to new overload |
| of add_slp_cost. |
| * tree-vect-slp.cc (vect_prologue_cost_for_slp): Consistently |
| set SLP node for all cost components to make grouping for |
| the add_slp_cost hook work. |
| (add_slp_costs): Avoid calling vector_costs::add_slp_cost |
| with NULL SLP node. |
| |
| 2026-09-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127195 |
| * tree-vect-slp.cc (vect_create_constant_vectors): |
| Properly compute number_of_copies, assert we end up |
| on a vector boundary. |
| |
| 2026-09-03 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/gcc-auto-profile: Replace explicit perf.data |
| with perf_file variable. Add parsing for "--perf" flag. |
| * config/i386/gcc-auto-profile: Likewise. |
| |
| 2026-09-03 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/89007 |
| * tree-vect-patterns.cc (vect_recog_average_pattern): Allow signed |
| types in the fallback. Check whether the fallback operations are |
| supported. |
| |
| 2026-09-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): |
| Prefer the computed SLP schedule location to determine |
| the containing loop. Make sure to make lock-step |
| progress when iterating regions with missing vector/scalar |
| part. Delay individual assessment of profitability for |
| the region containing the entry and require profitability |
| based on total costs. |
| |
| 2026-09-03 Julio Sotoriva De Bastiani <Julio.SotorivaDeBastiani@arm.com> |
| |
| PR target/126096 |
| * config/aarch64/aarch64-acle-builtins.cc |
| (gimple_folder::fold_to_pfalse): Handle svcount_t. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svpfalse_impl::fold): Handle svcount_t. |
| (svwhilelx_impl::fold_type): Punt for non-pfalse svcount_t. |
| |
| 2026-09-03 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/driver-riscv.cc (struct riscv_cpuid): New. |
| (riscv_cpuid::valid_p, riscv_cpuid::match): New member functions. |
| (struct riscv_core_id): New. |
| (riscv_core_ids): New. |
| (riscv_core_from_cpuid): New function. |
| (riscv_hwprobe_cpus, riscv_hwprobe_affinity, riscv_hwprobe_this_core): |
| New functions. |
| (struct riscv_cpuinfo): Add the identification registers. |
| (riscv_read_cpuinfo): Read them. |
| (riscv_cpuid_from_pairs, riscv_cpuid_from_hwprobe) |
| (riscv_cpuid_from_cpuinfo): New functions. |
| (riscv_native_tune): New function. |
| (host_detect_local_cpu): Handle "tune". |
| * config/riscv/riscv.h (RISCV_NATIVE_SPECS): Handle -mtune=native |
| and -mcpu=native. |
| (OPTION_DEFAULT_SPECS): Leave -mcpu=native to RISCV_NATIVE_SPECS. |
| * config/riscv/x-riscv: Update the dependencies. |
| * doc/invoke.texi (RISC-V Options): Document -mtune=native and |
| -mcpu=native. |
| |
| 2026-09-03 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_CORE): Fill in MVENDORID, |
| MARCHID and MIMPID for sifive-u74, sifive-p550, sifive-p870-d, |
| spacemit-x60, spacemit-x100 and spacemit-a100. |
| |
| 2026-09-03 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-hwprobe.h (riscv_core_id_t): New typedef. |
| * config/riscv/riscv-cores.def (UNKNOWN_ID): New macro. |
| (RISCV_CORE): Take MVENDORID, MARCHID and MIMPID; pass UNKNOWN_ID |
| for every core. |
| * common/config/riscv/riscv-common.cc (RISCV_CORE): Update for the |
| new arguments. |
| * config/riscv/gen-riscv-mcpu-texi.cc (RISCV_CORE): Likewise. |
| |
| 2026-09-02 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127092 |
| * range-op.cc (operator_div::op1_op2_relation_effect): Only |
| handle TRUNC_DIV_EXPR, EXACT_DIV_EXPR and FLOOR_DIV_EXPR |
| for the `a < b` case. |
| |
| 2026-09-02 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/125557 |
| * ifcvt.cc: Include "explow.h". |
| (noce_simple_cmove_operand_p): New function. |
| (noce_try_cmove): Use it. |
| (noce_convert_multiple_sets): Handle diamond CFG cleanup. |
| (noce_convert_multiple_sets_1): Evaluate secondary-arm values in fresh |
| pseudos, preserve their source locations, and use their final values |
| as conditional-move inputs. Use copy_to_mode_reg. Reject secondary |
| sequences that modify condition inputs and handle condition-code |
| clobbers. |
| (bb_ok_for_noce_convert_multiple_sets): Add REQUIRE_MULTIPLE, |
| LIVE_OUT_DESTS, HAS_NON_SIMPLE_SRC, NONREG_LIVE_OUT_DESTS, and |
| INSN_COUNT. Record distinct live-out destinations, non-simple sources, |
| the raw source class of each final live-out definition, and the number |
| of active sets. |
| (noce_process_if_block): Recognize and cost multi-set diamonds. Choose |
| the compatible primary arm from the validated live-out destinations. |
| Require a shared destination with a non-register final source in at least |
| one arm. Limit unconditional secondary-arm evaluation with |
| MAX_CONDITIONAL_EXECUTE. Defer all-simple diamonds to existing |
| conditional-move handling. |
| (check_cond_move_block): Use noce_simple_cmove_operand_p. |
| |
| 2026-09-02 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.cc (simplify_unary_operation_1) <case BSWAP>: |
| Canonicalize (BSWAP (BITREVERSE x)) as (BITREVERSE (BSWAP x)). |
| |
| 2026-09-02 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/aarch64/aarch64.md (*aarch_movk<mode>): Prepend asterisk. |
| Use any_or_plus iterator to also recognize PLUS and XOR forms. |
| |
| 2026-09-02 wangjue <juewang@linux.alibaba.com> |
| |
| * ifcvt.cc (noce_parallel_cost_node): New. |
| (noce_parallel_costed_insn_p): New. |
| (noce_dependency_level): New. |
| (noce_parallel_seq_cost): New. |
| (default_noce_conversion_profitable_p): Use it. |
| |
| 2026-09-02 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_register_move_cost): Check |
| secondary memory necessity before early return. |
| |
| 2026-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/126153 |
| * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Do not |
| look up an aggregate value for a condition whose offset is not |
| byte aligned. |
| |
| 2026-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127190 |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Fail |
| when vect_get_num_copies_for_invariant does. |
| |
| 2026-09-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/127149 |
| * tree-vect-patterns.cc (vect_recog_popcount_clz_ctz_ffs_pattern): |
| Handle lhs_type without mode precision by adding casts. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config/i386/acev1intrin.h: Add new intrins. |
| * config/i386/i386-builtin-types.def: Add new builtin type. |
| * config/i386/i386-builtin.def (BDESC): Add new builtins. |
| * config/i386/i386-expand.cc (ix86_expand_ace_builtin): |
| Handle new builtin type. |
| * config/i386/sse.md (UNSPECV_TOP2BF16PS): New. |
| (UNSPECV_TOP4BSSD): Ditto. |
| (UNSPECV_TOP4BSUD): Ditto. |
| (UNSPECV_TOP4BUSD): Ditto. |
| (UNSPECV_TOP4BUUD): Ditto. |
| (UNSPECV_TOP4MXBF8PS): Ditto. |
| (UNSPECV_TOP4MXBHF8PS): Ditto. |
| (UNSPECV_TOP4MXHBF8PS): Ditto. |
| (UNSPECV_TOP4MXHF8PS): Ditto. |
| (UNSPECV_TOP4MXBSSPS): Ditto. |
| (top2bf16ps): Ditto. |
| (top4<top4bdtype>): Ditto. |
| (top4<top4mxfp8type>ps): Ditto. |
| (top4mxbssps): Ditto. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config/i386/acev1intrin.h: Add new intrins. |
| * config/i386/i386-builtin-types.def: Add new builtin types. |
| * config/i386/i386-builtin.def (BDESC): Handle new builtins. |
| * config/i386/i386-expand.cc |
| (ix86_expand_ace_builtin): Handle new builtin type. |
| * config/i386/sse.md (UNSPEC_TCVTROWD2PS) New. |
| (UNSPEC_TCVTROWPS2FP16H): Ditto. |
| (UNSPEC_TCVTROWPS2FP16L): Ditto. |
| (UNSPEC_TILEMOVROWEXTRACT): Ditto. |
| (UNSPECV_TILEMOVROWINSERT): Ditto. |
| (UNSPECV_TILEMOVCOLINSERT): Ditto. |
| (VHFBF_512): Ditto. |
| (tcvtrowd2ps): Ditto. |
| (tcvtrowps2<bf16_ph><highlowsuffix>): Ditto. |
| (tilemovrow_extract): Ditto. |
| (tilemov<rowcol>_insert): Ditto. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config/i386/acev1intrin.h: Add new intrins. |
| * config/i386/i386-builtin-types.def: Add new function types. |
| * config/i386/i386-builtins.cc |
| (ix86_init_mmx_sse_builtins): Add new builtins. |
| * config/i386/i386-builtins.h (enum ix86_builtins): Ditto. |
| * config/i386/i386-expand.cc (ix86_expand_builtin): |
| Handle new builtins. |
| * config/i386/sse.md (UNSPEC_BSRMOVH_STORE): New. |
| (UNSPEC_BSRMOVL_STORE): Ditto. |
| (UNSPECV_BSRINIT): Ditto. |
| (UNSPECV_BSRMOVH_LOAD): Ditto. |
| (UNSPECV_BSRMOVL_LOAD): Ditto. |
| (bsrinit): Ditto. |
| (bsrmovf): Ditto. |
| (bsrmovh_load): Ditto. |
| (bsrmovl_load): Ditto. |
| (bsrmovh_store): Ditto. |
| (bsrmovl_store): Ditto. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config.gcc: Include acev1intrin.h. |
| * config/i386/i386-builtin-types.def: Add new function type. |
| * config/i386/i386-builtin.def (BDESC): Reuse AMX-TILE builtins |
| and handle ACEV1 new builtins. |
| * config/i386/i386-builtins.cc |
| (BDESC_VERIFYS): Add BDESC_ACE. |
| (def_builtin): Share builtin between AMX-TILE and ACEv1. |
| (ix86_init_mmx_sse_builtins): Handle BDESC_ACE. |
| * config/i386/i386-expand.cc |
| (ix86_expand_ace_builtin): New. |
| (ix86_check_builtin_isa_match): Share builtin between AMX-TILE |
| and ACEv1. |
| (ix86_expand_builtin): Handle BDESC_ACE. |
| * config/i386/i386.md (ldtilecfg): Add TARGET_ACEV1. |
| (sttilecfg): Ditto. |
| * config/i386/immintrin.h: Include acev1intrin.h. |
| * config/i386/sse.md (UNSPECV_TILEZERO): New. |
| (tilezero): Ditto. |
| * config/i386/acev1intrin.h: New intrin file. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config/i386/i386.cc (regclass_map): Add BSR_REGS. |
| (debugger_register_map): Add bsr. |
| (debugger64_register_map): Add bsr. |
| (svr_debugger_register_map): Add bsr. |
| (ix86_conditional_register_usage): Enable bsr when ACE exists. |
| (print_reg): Handle bsr. |
| * config/i386/i386.h (FIXED_REGISTERS): Add bsr0. |
| (CALL_USED_REGISTERS): Ditto. |
| (REG_ALLOC_ORDER): Ditto. |
| (HI_REGISTER_NAMES): Add bsr0. |
| * config/i386/i386.md: Add BSR0_REG. |
| * config/i386/predicates.md (bsr0_operand): New. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * config/i386/i386.cc (regclass_map): Add tmm. |
| (debugger64_register_map): Ditto. |
| (debugger_register_map): Ditto. Also fix for APX r16-31. |
| (svr4_debugger_register_map): Ditto. |
| (ix86_conditional_register_usage): Enable tmm only when AMX |
| or ACE exists. |
| * config/i386/i386.h (FIXED_REGISTERS): Ditto. |
| (CALL_USED_REGISTERS): Ditto. |
| (REG_ALLOC_ORDER): Ditto. |
| (HI_REGISTER_NAMES): Ditto. |
| * config/i386/i386.md: Ditto. |
| |
| 2026-09-02 Haochen Jiang <haochen.jiang@intel.com> |
| Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Add ACEV1. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_ACEV1_SET): New. |
| (OPTION_MASK_ISA2_AVX10V2AUX_UNSET): Disable ACEV1. |
| (OPTION_MASK_ISA2_ACEV1_UNSET): New. |
| (ix86_handle_option): Handle ACEV1. |
| * common/config/i386/i386-cpuinfo.h |
| (enum processor_features): Add FEATURE_ACEV1. |
| * common/config/i386/i386-isas.h: Handle acev1. |
| * config/i386/cpuid.h (bit_ACE): New. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): |
| Handle acev1. |
| * config/i386/i386-isa.def (ACEV1): Add DEF_PTA. |
| * config/i386/i386-options.cc (isa2_opts): Handle acev1. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| * config/i386/i386.opt: Add macev1. |
| * config/i386/i386.opt.urls: Regenerated. |
| * doc/extend.texi: Add acev1 documentation. |
| * doc/invoke.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2026-09-02 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/127166 |
| * match.pd: Canonicalize conditional signed narrow clips before loop |
| if-conversion. |
| |
| 2026-09-02 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match-sat-alu.pd (unsigned_integer_narrow_clip): Require an |
| unsigned comparison and a signed right shift. |
| |
| 2026-09-02 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/127114 |
| * config/i386/i386.cc (ix86_optab_supported_p): Return true for |
| round_optab in HFmode. |
| |
| 2026-09-02 Peter Bergner <bergner@gcc.gnu.org> |
| |
| * doc/install.texi: Remove incorrect mention of --with-long-double-64. |
| Co-authored-by: Kishan Parmar <kishan@linux.ibm.com> |
| |
| 2026-09-02 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/127133 |
| PR tree-optimization/127134 |
| * tree-eh.cc (tree_could_trap_p): Split into ... |
| (tree_could_trap_1): This. Take into account lhs |
| in some cases. |
| (lhs_could_trap_p): Just call tree_could_trap_1. |
| |
| 2026-09-02 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-loop-im.cc (can_sm_ref_p): Use lhs_could_trap_p. |
| * tree-ssa-phiopt.cc (cond_store_replacement): Likewise. |
| |
| 2026-09-02 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-09-01 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add |
| AARCH64_BUILTIN_YIELD, AARCH64_BUILTIN_WFE, AARCH64_BUILTIN_WFI, |
| AARCH64_BUILTIN_SEV and AARCH64_BUILTIN_SEVL. |
| (aarch64_init_syshintop_builtins): New function. |
| (handle_arm_acle_h): Call aarch64_init_syshintop_builtins. |
| (aarch64_general_expand_builtin): Expand the system hint builtins. |
| * config/aarch64/aarch64.md (unspecv): Add UNSPECV_YIELD, UNSPECV_WFE, |
| UNSPECV_WFI, UNSPECV_SEV and UNSPECV_SEVL. |
| (aarch64_yield): New insn pattern. |
| (aarch64_wfe): Likewise. |
| (aarch64_wfi): Likewise. |
| (aarch64_sev): Likewise. |
| (aarch64_sevl): Likewise. |
| |
| 2026-09-01 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/126977 |
| * gimple-match-exports.cc (fn_arg_must_be_const_p): New function. |
| (all_ssa_names_p): New function. |
| (factor_operation_ok): New exported function. |
| * gimple-match.h (factor_operation_ok): New declaration. |
| * tree-if-conv.cc (factor_out_operators): Use factor_operation_ok. |
| * tree-ssa-phiopt.cc (factor_out_conditional_operation): Use |
| factor_operation_ok. |
| * tree-ssa-tail-merge.cc (merge_stmts_p): Use factor_operation_ok |
| instead of just looking at specific internal functions. |
| |
| 2026-09-01 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): |
| Restrict LMUL scaling to vector types. |
| (costs::add_stmt_cost): Recover the scalar type for scalar costing. |
| |
| 2026-09-01 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/127039 |
| * fold-const-call.cc (fold_const_reduction): Explain the handling of |
| singleton sNaN encodings. |
| |
| 2026-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127130 |
| * tree-scalar-evolution.cc (simplify_peeled_chrec): |
| Guard against signed integer overflow UB. |
| |
| 2026-09-01 Christopher Bazley <chris.bazley@arm.com> |
| |
| * tree-vect-slp.cc (vect_create_constant_vectors): |
| Add an assertion to guard against the outer loop never |
| terminating because the inner loop is never entered. |
| |
| 2026-09-01 Shreesh Adiga <16567adigashreesh@gmail.com> |
| |
| * fold-const-call.cc (fold_const_crc): new function to fold crc |
| (fold_const_call): invoke fold_const_crc to fold builtin crc |
| |
| 2026-09-01 Shreesh Adiga <16567adigashreesh@gmail.com> |
| |
| * expr.cc (calculate_crc): Moved to hwint.cc file. |
| (assemble_crc_table): Updated function call. |
| (calculate_reversed_crc): Moved to hwint.cc file. |
| (assemble_reversed_crc_table): Updated function call. |
| * hwint.cc (calculate_crc): Moved from expr.cc and made public. |
| (calculate_reversed_crc): Moved from expr.cc and made public. |
| * hwint.h (calculate_crc): Added function prototype. |
| (calculate_reversed_crc): Added function prototype. |
| |
| 2026-09-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127154 |
| * value-range-storage.cc (prange_storage::set_prange) Access |
| bitmask and points to fields only for kinds those that use them |
| |
| 2026-09-01 Jørgen Kvalsvik <j@lambda.is> |
| |
| * profile.cc (coverage_instrumentation_p): Put return type on |
| separate line. |
| |
| 2026-09-01 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov.cc (find_prime_paths): Remove comment. |
| |
| 2026-09-01 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/127038 |
| * gcov.cc (tombstone_subsequence_p): Guard iterator |
| dereference. |
| |
| 2026-09-01 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (function_instance::match): Do not insert a null |
| entry into counts. |
| |
| 2026-09-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_get_num_copies_for_invariant): |
| Refactor to avoid accessing rem when we will return false. |
| |
| 2026-08-31 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| PR tree-optimization/126690 |
| * match.pd: Add patterns to fold CPROJ when nested inside CPROJ or CABS. |
| |
| 2026-08-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/127163 |
| * tree-ssa-forwprop.cc (simplify_phi_result_movdiv): check if |
| the div/mod is using INTEGRAL_TYPE_P operands. |
| |
| 2026-08-31 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126906 |
| * cfghooks.h (can_copy_bbs_p): Add prevailing_exit argument. |
| (copy_bbs): Likewise. |
| * cfghooks.cc (can_copy_bbs_p): Exempt prevailing_exit->src |
| from the abnormal successor edge refusal; refuse a |
| prevailing_exit->dest inside the region. |
| (copy_bbs): Prune the non-prevailing edges of |
| prevailing_exit->src's copy instead of redirecting them. |
| Assert the prevailing exit leaves the region. |
| * tree-ssa-threadupdate.cc |
| (back_jt_path_registry::duplicate_thread_path): Pass EXIT to |
| can_copy_bbs_p and copy_bbs when the path ends in abnormal |
| edges. Assert the region ends in EXIT's source. Remove |
| write-only exit_copy. |
| |
| 2026-08-31 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * tree-into-ssa.cc (struct mark_def_sites_global_data): Remove. |
| * tree-ssa-propagate.cc (ssa_propagation_engine::ssa_propagate): |
| Remove. |
| * tree-ssa-tail-merge.cc (struct aux_bb_info): Remove |
| (BB_VOP_AT_EXIT): Remove. |
| * tree-vectorizer.h (vect_detect_hybrid_slp): Remove. |
| |
| 2026-08-31 wangjue <juewang@linux.alibaba.com> |
| |
| * ifcvt.cc (noce_cond_arith_operation): New function. |
| (noce_operand_known_extended_p): New function. |
| (noce_try_cond_arith): Handle arithmetic operations wrapped in an |
| extension. |
| |
| 2026-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126998 |
| * tree-vectorizer.h (vect_get_num_copies_for_invariant): |
| Adjust API. |
| * tree-vect-slp.cc (vect_get_num_copies_for_invariant): Also |
| compute and output the constant number of excess lanes produced. |
| (vect_create_constant_vectors): Adjust. |
| (vect_slp_analyze_node_operations): Likewise. |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Likewise. |
| |
| 2026-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127152 |
| * tree-vect-loop.cc (vect_transform_reduction): Restore |
| vectype_in computation, compute vec_in_num from unaltered |
| vec_oprnds. |
| |
| 2026-08-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/101179 |
| * tree-ssa-forwprop.cc (simplify_phi_result_movdiv): New |
| forwprop step where MOD/DIV ops with pow2 divisors can be |
| simplified to BIT_AND/RSHIFT. |
| (pass_forwprop::execute): Call simplify_phi_result_movdiv. |
| |
| 2026-08-31 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/bitmanip.md: Split masked bit-test branches into |
| BEXT. |
| |
| 2026-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127116 |
| * tree-vect-patterns.cc (vect_recog_mask_conversion_pattern): |
| Pass rhs1_type as scalar type to build_mask_conversion. |
| (vect_init_pattern_stmt): Dump mask-precision used for the stmt. |
| (append_pattern_def_seq): Likewise. |
| |
| 2026-08-31 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/126982 |
| * match-sat-alu.pd (signed_integer_sat_trunc): Require the |
| conversion to keep the precision of the operand, and the result |
| to be narrower than it. |
| |
| 2026-08-31 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/126981 |
| * match-sat-alu.pd (unsigned_integer_narrow_clip): Require the |
| operand to be known different from the minimum of its type. |
| |
| 2026-08-31 Lunex <imlunex2011@gmail.com> |
| |
| PR tree-optimization/126994 |
| * tree-scalar-evolution.cc (final_value_replacement_loop): Guard |
| analyze_and_compute_bitop_with_inv_effect on |
| integer_zerop (niter_desc.may_be_zero). |
| |
| 2026-08-31 Matthias Kretz <m.kretz@gsi.de> |
| |
| PR target/127055 |
| * config/i386/sse.md (floor<mode>2): Drop !flag_trapping_math. |
| (lfloor<mode><sseintvecmodelower>2): Likewise. |
| (ceil<mode>2): Likewise. |
| (lceil<mode><sseintvecmodelower>2): Likewise. |
| (btrunc<mode>2): Likewise. |
| |
| 2026-08-31 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/constraints.md (Gz, Gc): New FP constant constraint. |
| * config/xtensa/predicates.md (move_operand): |
| Remove to replace the role with the following two new predicates, in |
| order to make it easier for both humans and compilers to understand. |
| (move_int_operand): New predicate for the second operand of |
| "mov[dshq]i_internal" MD patterns. |
| (move_fp_operand): New predicate for the second operand of |
| "mov[ds]f_internal" MD patterns. |
| (const_float_1_operand): Remove as it is not being used. |
| * config/xtensa/xtensa-protos.h (xtensa_fp_const): |
| New function prototype. |
| * config/xtensa/xtensa.cc (xtensa_fp_const): |
| New function that returns the corresponding non-negative index number |
| for FP constant values supported by the CONST.S instruction. |
| (print_operand): Add a new format specifier "G" that outputs the index |
| for the FP constant value handled by the "CONST.S" instruction. |
| (xtensa_legitimate_constant_p): Add the non-negative zero set by the |
| "MOVI" instruction and the floating-point constant supported by the |
| "CONST.S" instruction to the evaluation range. |
| * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_CONST_S): |
| A new macro indicating the conditions under which the "CONST.S" |
| instruction is available. |
| * config/xtensa/xtensa.md |
| (movdi_internal, movsi_internal, movhi_internal, movqi_internal): |
| Replace the "move_operand" predicate with "move_int_operand". |
| (movsf): Modify the preparation statement used during RTL generation |
| to prevent constant immediates that satisfy "Gz" or "Gc" constraints |
| from being placed in literal pool. |
| (movsf_internal): Replace the "move_operand" predicate with |
| "move_fp_operand", and Add the "MOVI" instruction using the "Gz" |
| constraint and the "CONST.S" instruction using the "Gs" constraint to |
| the alternatives. |
| (movdf_internal): Replace the "move_operand" predicate with |
| "move_fp_operand". |
| |
| 2026-08-31 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/127102 |
| * match.pd: Add pattern to simplify MIN(A,B) == 0 to A == 0 and |
| MIN(A,B) != 0 to A != 0 when B is known positive. |
| |
| 2026-08-31 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-31 Sun, Qin <qin.sun@intel.com> |
| |
| PR target/119300 |
| * config/i386/i386-options.cc (ix86_option_override_internal): |
| Warn and use SSE arithmetics when -mfpmath=387 is set, 387 is turned |
| off but SSE is available. |
| |
| 2026-08-29 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure): Remove |
| stray semi-colon and fix formatting. |
| |
| 2026-08-29 Mark Wielaard <mark@klomp.org> |
| |
| * common.opt.urls: Regenerate. |
| |
| 2026-08-29 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Configuration): Update SARIF website. |
| |
| 2026-08-29 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.md (UNSPEC_SSP_SET, UNSPEC_SSP_TEST): New |
| unspecs. |
| (stack_protect_set, stack_protect_setdi): New patterns. |
| (stack_protect_test, stack_protect_testdi): Likewise. |
| |
| 2026-08-29 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Define. |
| * config/alpha/alpha.cc (alpha_initial_elimination_offset): Resolve |
| FRAME_POINTER_REGNUM to the high end of the local variables when |
| FRAME_GROWS_DOWNWARD. |
| (alpha_vms_initial_elimination_offset): Likewise. |
| |
| 2026-08-29 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.cc (alpha_expand_unaligned_load): Use |
| copy_addr_to_reg to compute the byte address. |
| (alpha_expand_unaligned_store_safe_partial): Likewise. |
| |
| 2026-08-29 Jovan Dmitrovic <jovan.dmitrovic@htecgroup.com> |
| Radosav Krunić <radosav.krunic@htecgroup.com> |
| |
| * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure): |
| Change register pressure estimate in order to respect |
| the impact of spilling induction variables, compared |
| to spilling loop invariants. |
| |
| 2026-08-29 Jovan Dmitrovic <jovan.dmitrovic@htecgroup.com> |
| |
| * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure): |
| Remove target_reg_cost from the computation of register pressure |
| and target_res_regs from the computation of available registers. |
| |
| 2026-08-29 Jovan Dmitrovic <jovan.dmitrovic@htecgroup.com> |
| Radosav Krunić <radosav.krunic@htecgroup.com> |
| |
| * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure): |
| Remove n_cands bias from reg pressure cost calculation. |
| |
| 2026-08-29 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.h (FRAME_ADDR_RTX): Define. |
| |
| 2026-08-29 Matt Turner <mattst88@gmail.com> |
| |
| * builtins.cc (expand_builtin_return_addr): Pass COUNT to |
| FRAME_ADDR_RTX. |
| * defaults.h (FRAME_ADDR_RTX): Add COUNT argument. |
| * config/epiphany/epiphany.h (FRAME_ADDR_RTX): Likewise. |
| * config/s390/s390.h (FRAME_ADDR_RTX): Likewise. |
| * config/sparc/sparc.h (FRAME_ADDR_RTX): Likewise. |
| * doc/tm.texi.in (FRAME_ADDR_RTX): Document COUNT and the |
| NULL_RTX return value. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-08-29 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (ARM ARMv8-M Security Extensions): Update URL. |
| * doc/invoke.texi (ARM Options): Ditto. |
| |
| 2026-08-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR middle-end/127098 |
| * config/avr/avr.md (MPUSH): Add TImode to mode iterator. |
| * config/avr/avr.h (PUSH_ROUNDING): Adjust comment. |
| |
| 2026-08-29 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126896 |
| * tree-ssa-phiopt.cc (pass_phiopt::execute): Run |
| replicate_conds_over_phis in early phiopt too. |
| |
| 2026-08-28 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/127039 |
| * fold-const-call.cc (fold_const_reduction): Fold non-stepped constants |
| when the available lane-count information determines the result. |
| * match.pd (reduction of a vector duplicate): New simplifications to |
| the duplicated element or zero. |
| |
| 2026-08-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127105 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Access |
| scalar_stmts[0] only after we determined it exists. |
| |
| 2026-08-28 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (ftree-loop-if-convert): Mark as ignored. |
| * doc/invoke.texi (ftree-loop-if-convert): Remove. |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement): |
| Do not check !flag_tree_loop_if_convert. |
| * tree-if-conv.cc (pass_if_conversion::gate): Only |
| run when loop vectorization is enabled on any loop. |
| (pass_if_conversion::execute): Adjust. |
| (tree_if_conversion): Likewise. Simplify as we now |
| always version. |
| (convert_scalar_cond_reduction): Remove loop_versioned |
| argument which is now always true. |
| (predicate_scalar_phi): Likewise. |
| (predicate_all_scalar_phis): Likewise. |
| (combine_blocks): Likewise. |
| |
| 2026-08-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-operands.cc (operands_scanner::verify_ssa_operands): |
| Verify there are no operands that need renaming. |
| |
| 2026-08-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127094 |
| * gimple-range-phi.cc (phi_analyzer::process_phi): Do not process |
| the same name multiple times. |
| |
| 2026-08-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127082 |
| * range-op.cc (operator_trunc_mod::same_quotient): New. |
| (operator_trunc_mod::wi_fold): Call same_quotient. |
| |
| 2026-08-28 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-27 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR target/102055 |
| * config/aarch64/aarch64.cc (is_bb_in_loop): New. |
| (aarch64_evpc_rev64_ext): New. |
| (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_rev64_ext. |
| |
| 2026-08-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/127100 |
| * doc/md.texi (vec_mask_len_load_lanes@var{m}@var{n}): Use |
| operand4 - operand5 rather than operand4 + operand5. |
| (vec_mask_len_store_lanes@var{m}@var{n}): Use |
| operand3 - operand4 rather than operand3 + operand4. |
| (mask_len_gather_load@var{m}@var{n}): Use operand 7 - operand 8 |
| rather than operand 7 + operand 8. |
| (mask_len_strided_load@var{m}): Use operand 4 - operand 5 rather |
| than operand 4 + operand 5. |
| (mask_len_scatter_store@var{m}@var{n}): Use operand 6 - operand 7 |
| rather than operand 6 + operand 7. |
| (mask_len_strided_store@var{m}): Use operand 4 - operand 5 rather |
| than operand 4 + operand 5. |
| (len_load_@var{m}): Use operand 3 - operand 4 rather than |
| operand 3 + operand 4. |
| (len_store_@var{m}): Use operand 2 - operand 3 rather than |
| operand 2 + operand 3. |
| (mask_len_load@var{m}@var{n}): Use operand 4 - operand 5 rather |
| than operand 3 + operand 4 or operand 4 + operand 5. Use |
| Operand 5 rather than Operand 4 when talking about bias QI mode. |
| (mask_len_store@var{m}@var{n}): Use operand 3 - operand 4 rather |
| than operand 3 + operand 4 or operand 2 + operand 4. |
| (cond_len_neg@var{mode}): Use operand 4 - operand 5 rather than |
| operand 4 + operand 5. Use ops[4] - ops[5] rather than |
| ops[4] + ops[5]. |
| (cond_len_add@var{mode}): Use operand 5 - operand 6 rather than |
| operand 5 + operand 6. Use ops[5] - ops[6] rather than |
| ops[5] + ops[6]. |
| (cond_len_fma@var{mode}): Use ops[6] - ops[7] rather than |
| ops[6] + ops[7]. |
| * gimple-fold.cc (partial_load_store_mask_state): Compute wlen |
| as wi::to_poly_widest (len) - wi::to_widest (bias) rather than |
| wi::to_poly_widest (len) + wi::to_widest (bias). |
| |
| 2026-08-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt (Wunsafe-loop-optimizations): Use 2 spaces instead of |
| 1 between sentences in the description. |
| (Wunreachable-code, fargument-alias, fargument-noalias, |
| fargument-noalias-global, fargument-noalias-anything, |
| floop-flatten, fipa-matrix-reorg, fipa-struct-reorg, |
| foptimize-register-move, fregmove, ftree-vect-loop-version): |
| Likewise. |
| * config/alpha/alpha.opt (mgas): Use 2 spaces instead of 1 between |
| sentences in the description. |
| |
| 2026-08-27 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| PR target/120192 |
| * cfgexpand.cc (defer_stack_allocation): Use align_local_variable |
| to compute the alignment, matching expand_one_stack_var_1. |
| |
| 2026-08-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_3): Move stmt-local |
| checks first. Check unsupported BIT_FIELD_REFs for all stmts. |
| |
| 2026-08-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_3): New function, |
| split out from ... |
| (vect_build_slp_tree_1): ... here. |
| |
| 2026-08-27 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/127085 |
| * tree-ssa-phiopt.cc (preserves_loop_structure_p): Remove. |
| (replicate_cond_into_pred): Do not call it. |
| (replicate_conds_over_phis): Never duplicate loop headers; do |
| not mark back edges; set LOOPS_NEED_FIXUP when the CFG changed. |
| |
| 2026-08-27 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/9175.md: Complete list of instructions which are |
| utilizing the LSU/FXA/FXB. |
| |
| 2026-08-27 Manjunath Matti <mmatti@linux.ibm.com> |
| |
| PR target/126512 |
| * config/rs6000/rs6000-builtins.def (__builtin_altivec_vperm_1ti, |
| __builtin_altivec_vperm_1ti_uns, __builtin_altivec_vsel_1ti, |
| __builtin_altivec_vsel_1ti_uns, __builtin_altivec_vsldoi_v1ti): Move |
| from the [altivec] stanza to the [vsx] stanza. |
| |
| 2026-08-27 Vijay Shankar <vijay@linux.ibm.com> |
| |
| PR target/116004 |
| * config/rs6000/vsx.md (first_mismatch_or_eos_index): Remove redundant |
| emit_insns. |
| |
| 2026-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126998 |
| * tree-vectorizer.h (vect_get_num_copies_for_invariant): |
| Declare. |
| * tree-vect-slp.cc (vect_get_num_copies_for_invariant): Export. |
| * tree-vect-loop.cc (vectorizable_lane_reducing): Use |
| vect_get_num_copies_for_invariant on the SLP input. |
| |
| 2026-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126998 |
| * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): |
| Return a bool, defer vect_record_loop_{len,mask} to the caller. |
| (vectorizable_lane_reducing): Adjust. |
| (vectorizable_reduction): Likewise. |
| |
| 2026-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126998 |
| * tree-vect-loop.cc (vect_transform_reduction): Remove |
| redundant effec_reduc_ncopies, compute vec_num based on |
| the actual vector inputs and rename to vec_in_num. |
| |
| 2026-08-27 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/cris/cris.md (*bswapsi2_not<setcc><setnz><setnzvc>): |
| New define_insn. |
| (cris_swap_bits): Rename to... |
| (<acc><anz><anzvc>bitreversesi2<setcc><setnz><setnzvc>): Renamed |
| from cris_swap_bits. |
| (*bitreversesi2_not<setcc><setnz><setnzvc>): New define_insn. |
| (*rotsi2_16<setcc><setnz><setnzvc>): Likewise. |
| (*rotsi2_16_not<setcc><setnz><setnzvc>): Likewise. |
| |
| 2026-08-27 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.md ("*cstore<mode>4_btstqb0_<CC>"): New |
| define_insn_and_split. |
| |
| 2026-08-27 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.md ("*btst<mode>): Simplify; iterate only over |
| ZnNNZSET and compare only to a zero_extract result of SImode. |
| Just add sanity checks for the mode of operand 0 in the condition. |
| ("*cbranch<mode>4_btstrq1_<CC>", "*cbranch<mode>4_btstqb0_<CC>"): |
| Generate a zero_extract in SImode. |
| |
| 2026-08-27 Sammy Al Hashemi <sammy@salh.xyz> |
| |
| * doc/invoke.texi (-Wstrict-aliasing): Document that the |
| front-end type-based checking runs without -fstrict-aliasing |
| when the warning is requested explicitly. |
| (-Wstrict-aliasing=n): Likewise. |
| |
| 2026-08-27 Shreesh Adiga <16567adigashreesh@gmail.com> |
| |
| * config/aarch64/aarch64.md: allow usage of zero reg for CRC32 |
| instructions |
| |
| 2026-08-26 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc: Default the 64b arch to core2. |
| |
| 2026-08-26 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_gen_ccmp_next): Reject a |
| comparison that would lose an observable exception. |
| * target.def (gen_ccmp_next): Document the rule. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-08-26 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_fp_cc_mode): New function. |
| Use CCFPmode when the FCMPE exception is not observable. |
| (aarch64_select_cc_mode): Use it. |
| |
| 2026-08-26 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/127039 |
| * match.pd (REDUC (@0 op VECTOR_CST)): Require FMAX and FMIN |
| constant reductions to simplify. |
| |
| 2026-08-26 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| PR target/125138 |
| * config/rs6000/vsx.md (xxpermx): Use a temporary register for the |
| negated control vector. |
| |
| 2026-08-26 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * cgraph.cc (cgraph_nodes_queue): Removed. |
| (cgraph_cc_finalize): Removed cgraph_nodes_queue |
| initialization. |
| |
| 2026-08-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/125984 |
| * tree-dfa.cc (get_ref_base_and_extent) <ARRAY_REF>: Use the range |
| of the difference between the index expression and the low bound, |
| instead of that of the index expression itself, to constrain the |
| maximum size of the access. |
| |
| 2026-08-25 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/127056 |
| * lra-constraints.cc (process_address_1): Canonicalize a complete |
| address reload. |
| |
| 2026-08-25 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| PR target/125746 |
| * config/i386/i386.cc (ix86_hard_regno_mode_ok): For SSEv1, |
| reject 16-bit modes. |
| |
| 2026-08-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126999 |
| * tree-vrp.cc (remove_unreachable::m_list): Change from a std::pair |
| to an edge vector. |
| (remove_unreachable::maybe_register): Save edge. |
| (remove_unreachable::remove): Use the edge. |
| (remove_unreachable::remove_and_update_globals): Likewise. |
| |
| 2026-08-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/127027 |
| * gimple-range-infer.cc (exit_range::bbi): Change from stmt. |
| (infer_range_manager::add_range): Update block index not stmt. |
| (infer_range_manager::clear): Remove from specified block list. |
| |
| 2026-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127049 |
| * tree-vect-data-refs.cc (vect_analyze_data_refs): Build |
| a MEM_REF of the DR_REF type for analyzing the innermost |
| loop behavior for outer loop vectorization. |
| |
| 2026-08-25 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/48609 |
| * rtl.cc (rtvec_series_p): Enhance to allow START to be a |
| poly_int64 instead of just an int. |
| * rtl.h (rtvec_series_p): Update function prototype. |
| * rtlanal.cc (vec_series_highpart_p): Now that rtxvec_series_p |
| can handle poly_int64, we handle modes that aren't constant size. |
| (vec_series_lowpart_p): Likewise. |
| (get_ref_base_and_offset): New function to determine the base RTX |
| and byte offset of an arbitrary expression, typically a SUBREG. |
| * rtlanal.h (get_ref_base_and_offset): Prototype here. |
| * simplify-rtx.cc (simplify_binary_operation_1) <case VEC_CONCAT>: |
| Generalize the existing (vec_concat (first_half) (second_half)) |
| optimization using the new get_ref_base_and_offset function. |
| |
| 2026-08-25 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/126619 |
| * config/i386/i386-expand.cc |
| (ix86_expand_vector_init_one_nonzero) <case E_V4SFmode>: |
| Improved initialization of one non-zero element V4SF vectors. |
| (ix86_expand_vector_init_v4sf): Reuse the above function |
| ix86_expand_vector_init_one_nonzero where possible. Various |
| improvements. Fall back to using (the original) |
| ix86_expand_vector_init_concat in the general case, when |
| SSE 4.1 instructions aren't available. |
| * config/i386/sse.md (vec_set<mode>_0): Prefer to avoid |
| inter-unit moves to general purpose registers in reload. |
| (vec_setv4sf_sse4_1): Remove asterisk to expose to i386-expand. |
| (sse4_1_insertps_v4sf_init): Variant of insertps that clears |
| all the other elements of the destination to zero. |
| (sse2_insertps_v4sf_3): Implementation of the above instruction |
| available on SSE2 by using the pslldq instruction. |
| |
| 2026-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127058 |
| PR tree-optimization/127051 |
| * tree-vect-slp.cc (vect_create_constant_vectors): Zero-pad |
| excess elements. |
| * tree-vect-stmts.cc (vect_create_vectorized_demotion_stmts): |
| Change 'half' parameter to indicate optional fixed number |
| of vectors to produce. |
| (vectorizable_conversion): Adjust. |
| |
| 2026-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/127032 |
| * config/avr/avr.md (Tag_GNU_AVR_BITS_LONG_DOUBLE) |
| (Tag_GNU_AVR_BITS_DOUBLE): New define_constants. |
| * config/avr/avr.cc (avr_uses_long_double_p) |
| (avr_uses_double_p): New static variables. |
| (avr_find_double): New function. |
| (avr_file_end) [HAVE_AS_AVR_GNU_ATTRIBUTE]: Run avr_find_double |
| on each varpool node. Output .gnu_attribute according to |
| avr_uses_long_double_p and avr_uses_double_p. |
| * config/avr/avr-passes.cc (gimple-walk.h): Include. |
| (avr_pass_has) <op_callback>: New static method. |
| <scan_bb>: Use it in walk_gimple_op. |
| <execute>: Set up walk_stmt_info and pass it to scan_bb. |
| * config/avr/avr-passes.def (avr_pass_has): Adjust comment. |
| * config/avr/avr-protos.h (avr_find_double): New proto. |
| |
| 2026-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * configure.ac [avr] <HAVE_AS_AVR_GNU_ATTRIBUTE>: Set |
| according to gcc_GAS_CHECK_FEATURE for .gnu_attribute. |
| * configure: Rebuild. |
| * config.in: Rebuild. |
| * config/avr/avr.h (avr_addrspace_t) <gnu_attr_val>: New field. |
| * config/avr/avr.cc (avr_addrspace): Adjust initializer. |
| (avr_uses_vtable_p): New global variable. |
| (avr_file_end): Update avr_uses_vtable_p according to varpool, |
| then output .gnu_attribute 4 according to avr_uses_vtable_p. |
| * config/avr/avr-passes.cc (gimple.h): Include. |
| (gimple-iterator.h): Include. |
| (avr_pass_data_has): New pass data. |
| (avr_pass_has): New gimple pass. |
| (make_avr_pass_has): New function. |
| * config/avr/avr-passes.def (avr_pass_has): Insert pass. |
| * config/avr/avr-protos.h (avr_uses_vtable_p): New global var. |
| (class gimple_opt_pass): Declare. |
| (make_avr_pass_has): New proto. |
| * config/avr/avr.md (Tag_GNU_AVR_VTABLE_AS) |
| (Val_GNU_AVR_VTABLE_NONE, Val_GNU_AVR_VTABLE_RAM) |
| (Val_GNU_AVR_VTABLE_FLASH, Val_GNU_AVR_VTABLE_FLASH1) |
| (Val_GNU_AVR_VTABLE_FLASH2, Val_GNU_AVR_VTABLE_FLASH3) |
| (Val_GNU_AVR_VTABLE_FLASH4, Val_GNU_AVR_VTABLE_FLASH5) |
| (Val_GNU_AVR_VTABLE_FLASHX): Define constants. |
| |
| 2026-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt (-mfuse-ifelse): New option. |
| * config/avr/avr-passes.cc (avr_pass_ifelse::gate): Don't |
| return true when avropt_fuse_ifelse is false. |
| * config/avr/avr.opt.urls (mfuse-ifelse): Add URL. |
| * common/config/avr/avr-common.cc (avr_option_optimization_table) |
| [OPT_LEVELS_1_PLUS]: Set OPT_mfuse_ifelse to 1. |
| * doc/invoke.texi (AVR Options): Document it. |
| |
| 2026-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126995 |
| * tree-vect-slp.cc (vect_schedule_slp_node): When we cannot |
| place according to constraints for possibly trapping stmts, |
| fail. |
| |
| 2026-08-25 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR middle-end/127031 |
| * expmed.h (struct algorithm): Add one slot to the op and log |
| arrays for the operation synth_mult appends to a full |
| sub-algorithm before discarding it. |
| |
| 2026-08-25 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Require the |
| result of an intervening conversion to be single-use. |
| |
| 2026-08-25 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Handle HFmode. |
| (aarch64_gen_ccmp_next): Likewise. Reject unsupported HFmode early. |
| * config/aarch64/aarch64.md |
| (@ccmp<CCFP_CCFPE:mode><GPF_F16:mode>): Use GPF_F16 and stype. |
| (@ccmp<CCFP_CCFPE:mode><GPF_F16:mode>_rev): Likewise. |
| |
| 2026-08-25 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): Detect AVX512BMM from |
| extended features instead of standard leaf. |
| * config/i386/cpuid.h (bit_AVX512BMM): Move to extended features |
| section. |
| |
| 2026-08-25 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/127023 |
| * multiple_target.cc (create_dispatcher_calls): Use the call |
| statement variant of create_reference. |
| |
| 2026-08-25 Josef Melcr <josef.melcr@suse.com> |
| |
| PR plugins/126882 |
| * plugin.cc (struct callback_info): Put the struct into an |
| anonymous namespace. |
| |
| 2026-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127000 |
| * match.pd ((T *)(ptr - ptr_cst)): Canonicalize directly |
| to (T *)ptr p+ cst. |
| |
| 2026-08-25 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126896 |
| * tree-ssa-phiopt.cc: Include tree-ssa-threadedge.h. |
| (preserves_loop_structure_p): New. |
| (replicate_cond_into_pred): New. |
| (replicate_conds_over_phis): New. |
| (pass_phiopt::execute): Call replicate_conds_over_phis. |
| |
| 2026-08-25 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/127045 |
| * config/i386/i386.md (*fix_trunc<mode>si_sse_zext): Removed. |
| (*fix_trunc<mode>si_sse_2_zext): Likewise. |
| |
| 2026-08-25 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/127020 |
| * config/i386/i386-features.cc |
| (timode_scalar_chain::compute_convert_gain): Check TARGET_SSE4_1 |
| instead of TARGET_AVX for pinsrq and pextrq. |
| |
| 2026-08-25 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-24 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/126991 |
| * genmatch.cc (dt_node::gen_kids): New in_gcond argument. |
| (dt_node::gen_kids_1): New in_gcond argument. |
| Disable SSA_NAME generation when in_gcond is true. |
| (dt_operand::gen): Pass false to gen_kids. |
| (decision_tree::gen): Likewise. |
| (write_predicate): Likewise. |
| (dt_operand::gen_phi_on_cond): Pass true to gen_kids. |
| |
| 2026-08-24 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/126745 |
| * range-op.cc (operator_div::op1_op2_relation_effect): add |
| VREL_EQ range equal one for op1/op2 and op1%op2 if op1 == op2. |
| |
| 2026-08-24 Kishan Parmar <kishan@linux.ibm.com> |
| |
| PR target/126738 |
| * config/rs6000/rs6000.opt: Fix formatting of the -mfuture warning. |
| Co-authored-by: Göran Uddeborg <goeran@uddeborg.se> |
| |
| 2026-08-24 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/127039 |
| * match.pd (REDUC (@0 op VECTOR_CST)): Require the constant reduction |
| to simplify. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_get_vector_types_for_stmt): Remove |
| nunits_vectype_out parameter and code computing it. |
| * tree-vectorizer.h (vect_get_vector_types_for_stmt): Adjust. |
| (vect_get_smallest_scalar_type): Remove. |
| * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Likewise. |
| (simd_clone_call_p): Likewise. |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Adjust. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_record_vectype): Inline ... |
| (vect_build_slp_tree_2): ... here. |
| (vect_build_slp_tree_1): ... and here. Use vectype to |
| guide splitting for BB vectorization. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Hard-fail early |
| due to BB SLP unrolling. |
| |
| 2026-08-24 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126896 |
| * tree-ssa-threadedge.cc |
| (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): Make |
| static. Split into... |
| (cond_on_phi_p): ...this... |
| (phi_arg_from_cmp_p): ...and this. |
| * tree-ssa-threadedge.h (cond_on_phi_p): Declare. |
| (phi_arg_from_cmp_p): Declare. |
| |
| 2026-08-24 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126896 |
| * cfghooks.cc (can_duplicate_block_on_edge_p): New. |
| * cfghooks.h (can_duplicate_block_on_edge_p): Declare. |
| * tree-ssa-threadedge.cc: Include cfghooks.h. |
| (jump_threader::thread_across_edge): Use |
| can_duplicate_block_on_edge_p. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127018 |
| * tree-vect-slp.cc (vect_schedule_scc): For SCCs of |
| multiple components update the scheduling state and |
| propagate it to all nodes. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127018 |
| * tree-vect-slp.cc (slp_scc_info::res): New member. |
| (vect_schedule_scc): Initialize res for invariants |
| and when pushing to the stack. Record result for |
| singletons and look it up for already visited entries. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/127000 |
| * match.pd ((T *)(ptr - ptr_cst)): Use build1 to build |
| an ADDR_EXPR. |
| * tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Avoid |
| creating GIMPLE_SINGLE_RHS to insert stmts. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126984 |
| * tree-vect-slp-patterns.cc (complex_pattern::build): |
| Rename to ... |
| (complex_pattern::build_common): ... this. |
| (complex_pattern::build): Likewise and adjust. |
| (complex_pattern::m_rep): New. |
| (complex_pattern::complex_pattern): Initialize m_rep. |
| (complex_add_pattern::build): Call build_common instead |
| of complex_pattern::build. |
| (complex_mul_pattern::build): Likewise. |
| (complex_fms_pattern::build): Likewise. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126995 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Keep |
| schedule when we schedule to a point dominated by the |
| trapping stmt. |
| |
| 2026-08-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126933 |
| * config/i386/i386-expand.cc (ix86_expand_truncsfbf2): New. |
| * config/i386/i386-protos.h (ix86_expand_truncsfbf2): Likewise. |
| * config/i386/i386.md (truncsfbf2): Changed to define_expand |
| and update comments. |
| (truncsfbf2_vcvtneps2bf16): New. |
| |
| 2026-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126997 |
| * tree-ssa-loop-unswitch.cc (tree_ssa_unswitch_loops): |
| Perform invariant motion when we unswitched a loop. |
| |
| 2026-08-24 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/driver-riscv.cc (riscv_arch_from_hwprobe): Use |
| RISCV_HWPROBE_EXT_V rather than the removed RISCV_HWPROBE_IMA_V. |
| |
| 2026-08-24 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * Makefile.in (check_p_min_slots, check_p_jobs, check_p_slots): New |
| variables. |
| (check_p_subdirs): Use check_p_slots. |
| |
| 2026-08-24 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * ipa-cp.cc (adjust_clone_incoming_counts): Adjust counts only when |
| ipa quality. |
| |
| 2026-08-24 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add sifive-p550 and |
| sifive-p870-d. |
| (RISCV_CORE): Add sifive-p550 and sifive-p870-d. |
| * config/riscv/riscv.cc (sifive_p550_tune_info): New. |
| (sifive_p870_tune_info): New. |
| * doc/riscv-mcpu.texi: Regenerate. |
| * doc/riscv-mtune.texi: Regenerate. |
| |
| 2026-08-24 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (standard_extensions_p): |
| Rename to... |
| (riscv_ext_is_known_p): ...this, and export. |
| (riscv_subset_list::parse_single_std_ext): Update the callers. |
| (riscv_subset_list::parse_single_multiletter_ext): Likewise. |
| * config/riscv/riscv-subset.h (riscv_ext_is_known_p): Declare. |
| * config/riscv/driver-riscv.cc: Include riscv-subset.h. |
| (riscv_native_arch): Split the hwprobe half out into... |
| (riscv_arch_from_hwprobe): ...this new function. |
| (struct riscv_cpuinfo): New. |
| (riscv_cpuinfo_file, riscv_cpuinfo_forced, riscv_cpuinfo_cpu) |
| (riscv_cpuinfo_field, riscv_read_cpuinfo, riscv_cpuinfo) |
| (riscv_filter_isa, riscv_arch_from_cpuinfo): New functions. |
| * config/riscv/x-riscv: Update the dependencies. |
| |
| 2026-08-24 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config.host: Build driver-riscv.o for riscv*-*-linux* hosts. |
| * config/riscv/driver-riscv.cc: New file. |
| * config/riscv/x-riscv: New file. |
| * config/riscv/riscv.h (host_detect_local_cpu): Declare. |
| (HAVE_LOCAL_CPU_DETECT): Define. |
| (RISCV_NATIVE_SPEC_FUNCTIONS): Define. |
| (RISCV_NATIVE_SPECS): Define. |
| (EXTRA_SPEC_FUNCTIONS): Add RISCV_NATIVE_SPEC_FUNCTIONS. |
| (DRIVER_SELF_SPECS): Add RISCV_NATIVE_SPECS. |
| * doc/invoke.texi (RISC-V Options): Document -march=native. |
| |
| 2026-08-24 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-hwprobe.def: New file. |
| * common/config/riscv/riscv-hwprobe.h: New file. |
| |
| 2026-08-24 vekumar <Venkataramanan.Kumar@amd.com> |
| |
| * config/i386/x86-tune-costs.h (znver4_cost): Increase branch |
| mispredict scale from COSTS_N_INSNS (2) to COSTS_N_INSNS (2) + 3. |
| (znver5_cost): Likewise. |
| |
| 2026-08-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/127004 |
| * config/avr/avr-passes.cc (rtl-iter.h): Include. |
| (insninfo_t::scratch_mask): New method. |
| (optimize_data_t::try_split_ldi): Use it for ignore_mask. |
| (optimize_data_t::try_split_any): Same. |
| (optimize_data_t::emit_sequence): Dump ignore_mask prior to |
| calling fatal_insn. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (struct long_mul_summand): Add |
| constructors and methods and operator bool. |
| (long_mul_set_summand): Rename to ... |
| (long_mul_summand::set): This. Remove the info argument. |
| (long_mul_classify_carry): Rename to ... |
| (long_mul_summand::classify_carry): This. Remove the |
| info argument. |
| (long_mul_classify_plus_kinds): Rename to ... |
| (long_mul_summand::classify_plus_kinds): This. Remove the |
| info argument. |
| (long_mul_classify_hi_extract): Rename to ... |
| (long_mul_summand::classify_hi_extract): This. Remove the |
| info argument. |
| (long_mul_classify_lo_extract): Rename to ... |
| (long_mul_summand::classify_lo_extract): This. Remove the |
| info argument. |
| (long_mul_classify_shl_extract): Rename to ... |
| (long_mul_summand::classify_shl_extract): This. Remove the |
| info argument. |
| (long_mul_classify_bare): Rename to ... |
| (long_mul_summand::classify_bare): This. Remove the |
| info argument. |
| (long_mul_classify_summand): Rename to ... |
| (long_mul_summand::long_mul_summand): This. Remove the |
| info argument. |
| (long_mul_classify_chain): Update for the long_mul_summand |
| constructor. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (enum long_mul_kind): Add LMK_INVALID. |
| (long_mul_set_summand): Add default case to switch. |
| (long_mul_summand_compare): Add checking to make sure |
| the kinds are not LMK_INVALID. |
| (long_mul_find_summand): Likewise. |
| (long_mul_classify_chain): Add checking right before |
| the push to check for LMK_INVALID. |
| (match_long_mul_phi): Simpilify stynx for initializing carry. |
| |
| 2026-08-23 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/59429 |
| * match.pd: Combine four loops into one loop for spaceship. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (enum long_mul_kind): Fix to unsigned char. |
| (enum long_mul_extract): Likewise. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (enum long_mul_kind): Put in an anonymous namespace. |
| (enum long_mul_extract): Likewise. |
| (struct long_mul_summand): Likewise. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (long_mul_set_summand): Update |
| comment on the shift. |
| |
| 2026-08-23 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * combine.cc (combine_simplify_rtx): Handle PREFETCH like MEM when |
| simplifying the address. |
| |
| 2026-08-23 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/126501 |
| PR rtl-optimization/126747 |
| * ifcvt.cc (noce_cc_reg_set): New struct. |
| (noce_record_cc_reg_set): New function. |
| (noce_clobbers_live_cc_p): New function. |
| (end_ifcvt_sequence): Use it to reject sequences that clobber a |
| condition-code register that is live out of the test block. |
| (noce_convert_multiple_sets): Likewise. |
| |
| 2026-08-23 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * compare-elim.cc (find_comparisons_in_bb): Test the live-in set |
| of the successor block rather than of the current block. |
| |
| 2026-08-23 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (struct riscv_tune_param): New member. |
| (xt_c9501_tune_info): Set autoprefetcher model to weak. |
| (riscv_override_options_internal): Set |
| param_sched_autopref_queue_depth based on autoprefetcher model. |
| |
| 2026-08-23 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126827 |
| * gimple-range-op.cc (class cfn_fp_nonnegative): New class. |
| (class cfn_fp_nonnegative_arg0): New class. |
| (gimple_range_op_handler::maybe_builtin_call): Handle some |
| functions which were handled in nonnegative. |
| |
| 2026-08-23 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR target/71048 |
| * expmed.cc (store_fixed_bit_field_1): When OP0 is a memory |
| reference that the field fills entirely, store VALUE directly |
| instead of doing a read-modify-write, so that no read of OP0 is |
| emitted. |
| |
| 2026-08-23 Dominic P <gcc@gcc.dp11.uk> |
| |
| * expmed.cc (last_div_const): New variable, moved out of... |
| (expand_divmod): ...here. |
| * expmed.h (last_div_const): Declare. |
| * function.cc (prepare_function_start): Reset last_div_const. |
| |
| 2026-08-23 Dominic P <gcc@gcc.dp11.uk> |
| |
| PR tree-optimization/111000 |
| * tree-ssa-loop-im.cc (movement_possibility_1): Require |
| MOVE_PRESERVE_EXECUTION for an out-of-range constant shift |
| count, not an in-range one. |
| |
| 2026-08-23 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-22 Luke Zhuang <luke.zhuang@linux.alibaba.com> |
| |
| * config/riscv/riscv.md: Restrict slliw shifted bitfield split |
| to extractions starting at bit 0, and require the outer mask to |
| match slliw sign-extension. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (struct long_mul_summand): Change |
| hilo{0,1,2} into an array. |
| (long_mul_set_summand): Use a copy loop instead of written out. |
| (long_mul_check_consistency): Use the array directly instead |
| of a local copy of the loop for the range for loop. |
| (match_long_mul_phi): Replace `hilo0` with `hilo[0]`. |
| Replace `hilo1` with `hilo[1]`. Replace `hilo2` with `hilo[2]`. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (mul_carry_low_sum): Remove @1 from |
| the result captures. Rename @0 to @shift0. |
| (mul_low_accum): Likewise. |
| (mul_ladder_sum1): Likewise. |
| (mul_ladder_sum2): Likewise. |
| (mul_ladder_sum3): Likewise. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (mul_carry_cross_sum): Use wi::to_wide instead |
| of tree_to_uhwi. |
| (long_mul_high_chain): Likewise and use `% 4`. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (mul_hilo): Remove INTEGER_CST check on the operands. |
| (mul_lolo): Likewise. |
| (mul_hihi): Likewise. |
| (mul_low_accum): Likewise. |
| (mul_ladder_sum1): Likewise. |
| (mul_ladder_sum2): Likewise. |
| (mul_ladder_sum3): Likewise. |
| (mul_carry_low_sum): Likewise. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (mul_cross_sum): Remove the `:c` from the plus. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-forwprop.cc (match_long_mul_phi): Swap the shift |
| amount check with gimple_mul_low_sum/gimple_mul_cross_sum |
| checks. |
| |
| 2026-08-22 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (cond_carry_add_neg): Rename to |
| cond_carry_add. |
| * tree-ssa-forwprop.cc (gimple_cond_carry_add_neg): Remove. |
| (match_long_mul_phi): Don't call gimple_cond_carry_add_neg. |
| |
| 2026-08-21 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126958 |
| * match.pd (mul_hi): Use wi::to_wide instead of |
| tree_fits_uhwi_p/tree_to_uhwi. |
| (mul_lo): Likewise. |
| |
| 2026-08-21 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126957 |
| * match.pd (mul_carry_low_sum): Remove `?` from convert. |
| (mul_carry_cross_sum): Likewise. |
| |
| 2026-08-21 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126956 |
| * match.pd (cond_carry_add): Use `:c` instead of manually |
| swapping the comparison and operands. |
| (cond_carry_add_neg): Likewise. |
| |
| 2026-08-21 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/126955 |
| * match.pd: Remove extra `#if GIMPLE`/`#endif` pair. |
| |
| 2026-08-21 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126954 |
| * match.pd (mul_ladder_sum1): Change over to match syntax |
| instead of doing it manually. |
| |
| 2026-08-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * value-query.cc (range_query::get_tree_range): Add bitmask back to |
| VARYING case. |
| |
| 2026-08-21 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/126873 |
| * config/riscv/autovec.md (vec_set<mode>): Zero-extend a |
| sub-Pmode index to Pmode. |
| (vec_extract<mode><vel>): Likewise. |
| |
| 2026-08-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_poly_int_indeterminate_bound): New. |
| (TARGET_POLY_INT_INDETERMINATE_BOUND): Implement hook using it. |
| |
| 2026-08-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * target.def (poly_int_indeterminate_bound): New. |
| * doc/tm.texi.in: Document it. |
| * doc/tm.texi: Regenerate. |
| * value-query.cc (range_query::get_tree_range): Use it. |
| |
| 2026-08-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (vnarrowq): Delete. |
| * config/aarch64/aarch64-simd.md |
| (<sat_trunc_op>trunc<mode><vnarrowq>2): Rename to... |
| (<sat_trunc_op>trunc<mode><Vnarrowq>2): ... this. |
| |
| 2026-08-21 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_hard_regno_nregs, |
| aarch64_class_max_nregs): Handle `FP_HI_REGS`. |
| * config/aarch64/aarch64-acle-builtins.h (mop4_base, |
| mop4_b16b16, mop4_f8f16, mop4_f8f32, mop4_f64f64, |
| mop4_i16i64): New type arrays. |
| * config/aarch64/aarch64.h (reg_class::FP_HI_REGS): New enum member. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (struct mop4_def): New function shape. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: New function shape. |
| * config/aarch64/aarch64-sve-builtins-sme.def (DEF_SME_FUNCTION): |
| Unconditionally define in terms of `DEF_SME_FUNCTION_GS`. |
| (DEF_SME_ZA_FUNCTION_GS): Unconditionally define in terms of `DEF_SME_ZA_FUNCTION_GS_FPM`. |
| (DEF_SME_ZA_FUNCTION): Unconditionally define in terms of `DEF_SME_ZA_FUNCTION_GS`. |
| (svmop4a, svmop4s): New function groups. |
| (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION_GS_FPM): New |
| macros. |
| * config/aarch64/aarch64-sve-builtins.def (1x1, 1x2, 2x1, 2x2): |
| New SVE function modes. |
| * config/aarch64/constraints.md (z, Ux2, Uxz): New register |
| constraints. |
| * config/aarch64/aarch64-sme.md (@aarch64_mop4_): New insns. |
| * config/aarch64/aarch64-sve-builtins-functions.h (class sme_mop4): New function base. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (svmop4a_za, |
| svmop4s_za): New functions. |
| * config/aarch64/aarch64-sve-builtins-sme.h (svmop4a_za, |
| svmop4s_za): New function bases. |
| * config/aarch64/iterators.md: New mode iterators. |
| (UNSPEC_SME_FMOP4A, UNSPEC_SME_FMOP4S, UNSPEC_SME_UMOP4A, |
| UNSPEC_SME_UMOP4S, UNSPEC_SME_SMOP4A, UNSPEC_SME_SMOP4S, |
| UNSPEC_SME_SUMOP4A, UNSPEC_SME_SUMOP4S, UNSPEC_SME_USMOP4A, |
| UNSPEC_SME_USMOP4S): New unspecs. |
| (SME_FP_MOP4, SME_FP8_MOP4, SME_INT_MOP4): New int iterators. |
| |
| 2026-08-21 Karl Meakin <karl.meakin@arm.com> |
| |
| * doc/invoke.texi: Document new extension flags. |
| * config/aarch64/aarch64.h (TARGET_SME_MOP4): New target macro. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define |
| `__ARM_FEATURE_SME_MOP4` macros when the relevant extension is enabled. |
| |
| 2026-08-21 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/constraints.md: Fix comments. |
| |
| 2026-08-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126856 |
| * value-relation.cc (dom_oracle::dom_oracle): Create m_block_list. |
| (dom_oracle::~dom_oracle): Free m_block_list. |
| (relation_chain_head::clear): Decrease the number of relations. |
| (dom_oracle::clear): Walk the block_list looking for relations. |
| (dom_oracle::record_relation_block): New. |
| (dom_oracle::create_relation_in_bb): call record_relation_block. |
| * value-relation.h (dom_oracle::m_block_list): New. |
| (record_relation_block): Declare. |
| |
| 2026-08-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126856 |
| * value-relation.cc (equiv_oracle::equiv_oracle): Adjust for |
| rename from m_self_equiv to m_name_info. |
| (equiv_oracle::~equiv_oracle): Likewise. |
| (equiv_oracle::register_equiv_block): New. |
| (equiv_oracle::equiv_set): Adjust for rename. |
| (equiv_oracle::register_equiv): Call register_equiv_block. |
| (equiv_oracle::clear): Process just the required blocks. |
| (equiv_oracle::add_equiv_to_block): Call register_equiv_block. |
| * value-relation.h (class name_info): New. |
| (equiv_oracle::m_self_equiv): Change type and Rename to m_name_info. |
| (register_equiv_block): Declare. |
| |
| 2026-08-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126856 |
| * gimple-range-infer.cc (exit_range::name_link): New. |
| (infer_range_manager::infer_range_manager): Adjust for rename |
| from m_nonzero to m_name_info. |
| (infer_range_manager::~infer_range_manager): Likewise. |
| (infer_range_manager::get_nonzero): Likewise |
| (infer_range_manager::add_range): Add to name_link list. |
| (infer_range_manager::clear): Walk name_link list. |
| * gimple-range-infer.h (class ssa_name_link): New vec. |
| (infer_range_manager::m_nonzero): Retype and rename to m_name_info. |
| |
| 2026-08-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * gimple-fold.cc (gimple_fold_builtin_fwrite): New function. |
| (gimple_fold_builtin): Call it for BUILT_IN_FWRITE and |
| BUILT_IN_FWRITE_UNLOCKED. |
| |
| 2026-08-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR sanitizer/88109 |
| * tree.h (TYPE_OVERFLOW_SANITIZED): Use ANY_INTEGRAL_TYPE_P. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126979 |
| * tree-vect-slp-patterns.cc (compatible_complex_nodes_p): |
| Special case VEC_PERM nodes. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126965 |
| * tree-ssa-pre.cc (find_or_generate_expression): Limit |
| recursion depth. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_slp_tree::max_nunits): Remove. |
| (vect_update_max_nunits): Likewise. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust. |
| (vect_record_max_nunits): Rename to ... |
| (vect_record_vectype): ... this and adjust. |
| (vect_build_slp_tree_1): Drop max_nunits argument and adjust. |
| (vect_build_slp_tree_2): Likewise. |
| (vect_build_slp_tree): Likewise. |
| (vect_build_slp_store_interleaving): Likewise. |
| (vect_print_slp_tree): Adjust. |
| (optimize_load_redistribution_1): Likewise. |
| (vect_build_slp_instance): Likewise. |
| (vect_analyze_slp_reduc_chain): Likewise. |
| (vect_analyze_slp_reduction): Likewise. |
| (vect_analyze_slp_reduction_group): Likewise. |
| (vect_analyze_slp_instance): Likewise. |
| (vect_lower_load_permutations): Likewise. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_update_slp_vf_for_node): Compute |
| VF based on SLP_TREE_VECTYPE only. |
| (vect_get_num_copies_for_invariant): New. |
| (vect_prologue_cost_for_slp): Take nvectors as argument. |
| (vect_slp_analyze_node_operations): Verify that we can |
| div_away_from_zero for vect_prologue_cost_for_slp. |
| (vect_create_constant_vectors): Use vect_get_num_copies_for_invariant. |
| * tree-vect-stmts.cc (vect_create_vectorized_promotion_stmts): |
| Support creating half of the promoted results. |
| (vectorizable_conversion): When we have excess input elements |
| request half of the promoted results. |
| |
| 2026-08-21 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/126686 |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::avoid_store_forwarding): Reject |
| BLKmode stores and loads as forwarding candidates. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.cc (get_or_alloc_expr_for_nary): Assert we |
| do not try to encode a SSA name or a constant as NARY. |
| (phi_translate_1): Save the translated NARY so we can |
| restore it if we want to reject a simplification to a |
| SSA name. |
| |
| 2026-08-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126959 |
| * config/i386/i386.cc (ix86_preferred_reload_class): Allow |
| minus ones for MASK register and standard SSE constants for |
| SSE register. |
| |
| 2026-08-21 Jojo R <rjiejie@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_optab_supported_p): New function. |
| (TARGET_OPTAB_SUPPORTED_P): Define. |
| |
| 2026-08-21 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_pass_aggregate_in_vr): Return |
| NULL_RTX for an aggregate with no field. |
| |
| 2026-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_slp_node_weight): Add comment |
| indicating bbs[0] fallback is imprecise. |
| (vect_optimize_slp_pass::containing_loop): Likewise. |
| |
| 2026-08-21 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-fusion.cc (riscv_fuse_cache_aligned_std): |
| Remove. |
| (riscv_fusion_table): Remove its entry. |
| * config/riscv/riscv-protos.h (enum riscv_fusion_pairs): Remove |
| RISCV_FUSE_CACHE_ALIGNED_STD. |
| |
| 2026-08-21 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tree-profile.cc (split_update_decision_counter): New. |
| (instrument_decisions): Use counter_update to determine which |
| atomic operations are available. Use |
| split_update_decision_counter() if 64-bit atomic operations can |
| be split up into two 32-bit atomic operations. |
| |
| 2026-08-21 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * cgraph.cc (cgraph_node::scale_profile_to): Apply the computed scale. |
| |
| 2026-08-21 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (afdo_calculate_branch_prob): Set a zero entry |
| block count to half a scaled sample after adjusting guessed profiles. |
| |
| 2026-08-20 Egas Ribeiro <egas.g.ribeiro@gmail.com> |
| |
| * doc/analyzer.texi (Region Model): Use malloc (n) in the |
| example to match the dump; fix the frame for the result_4 |
| cluster; correct the heap region number; note that heap region |
| numbering depends on traversal order. |
| |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_evpc_splice): New function. |
| (aarch64_expand_vec_perm_const_1): Use it. |
| |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/122069 |
| * tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Try wider |
| intermediate input types. |
| |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| Revert: |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/122069 |
| * tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Try wider |
| intermediate input types. |
| |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/122069 |
| * tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Try wider |
| intermediate input types. |
| |
| 2026-08-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (bitreverse<mode>2): New expander |
| for VDQHS. |
| (ctz<mode>2): Replace the VB and VS expanders with one for |
| VDQ_BHSI. |
| |
| 2026-08-20 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126961 |
| * tree-vect-patterns.cc (vect_recog_divmod_pattern): Fix remainder use |
| and add signedness check. |
| |
| 2026-08-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/126801 |
| * opts.cc (finish_options): Don't set flag_var_tracking_uninit to |
| flag_var_tracking by default. Instead, set flag_var_tracking to |
| flag_var_tracking_uninit if the latter was explicitly set. |
| * config/darwin.cc (darwin_override_options): Only set |
| flag_var_tracking_uninit if it wasn't explicitly set and set it to |
| 1 rather than flag_var_tracking. Formatting fix. |
| |
| 2026-08-20 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * common.opt (fopenmp-ompt): Turn into an alias for |
| -fopenmp-ompt=basic. |
| (fopenmp-ompt=): New option, replacing fopenmp-ompt{,-detailed}. |
| * common.opt.urls: Regenerate. |
| * doc/invoke.texi (-fopenmp-ompt): Document the new levels and |
| drop -fopenmp-ompt-detailed. |
| * flag-types.h (enum omp_ompt_level): New. |
| * omp-expand.cc (expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): Check flag_openmp_ompt against |
| OMP_OMPT_LEVEL_EXTENDED instead of flag_openmp_ompt_detailed. |
| * opts.cc (finish_options): Adjust diagnostic for the removal of |
| -fopenmp-ompt-detailed. |
| |
| 2026-08-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-log.cc (INCLUDE_ALGORITHM): Define for std::min. |
| (avr_log_operands, avr_log_operand): New static functions. |
| (avr_log_node): Support ADDR_EXPR, POINTER_PLUS_EXPR, |
| POINTER_DIFF_EXPR, ADDR_SPACE_CONVERT_EXPR, CONVERT_EXPR, |
| NOP_EXPR, MEM_REF, CONSTRUCTOR. |
| |
| 2026-08-20 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/126775 |
| * match.pd (0.0 - x -> -x): Use new real_negzerop function. |
| * tree.cc (real_negzerop): New predicate function to test if |
| a tree expression is -0.0 or equivalent (like real_zerop). |
| * tree.h (real_negzerop): Prototype here. |
| |
| 2026-08-20 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| * match.pd: Add simplifications for XORs and boolean |
| comparisons of zero_one_valued comparisons against zero. |
| |
| 2026-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree.cc (tree_nop_conversion_p): Special case two BLKmode |
| types. |
| |
| 2026-08-20 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/112104 |
| * tree-scalar-evolution.cc (analyze_and_compute_bitop_with_inv_effect): |
| Handle BIT_XOR_EXPR with a variable trip count. |
| |
| 2026-08-20 Manjunath Matti <mmatti@linux.ibm.com> |
| |
| PR middle-end/126939 |
| * gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow): |
| Take the address of the memmove source operand. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/107090 |
| PR tree-optimization/126642 |
| * match.pd (long_mul_high_chain): New atom for the emitted high-part chain. |
| * tree-ssa-forwprop.cc (long_mul_classify_match): Gate the |
| HIGH_PART wide-chain emit on optimize_widening_mul_active_p |
| rather than on the target having a 2N multiply. |
| * tree-ssa-math-opts.cc (can_widen_to_narrow_p): New. |
| (build_long_mul_partials): New; emits the four partial products |
| using widening or plain multiplies. |
| (emit_long_mul_highpart): New; the high N bits of an N-bit |
| product, as a longhand over (N/2)-bit partials. |
| (combine_long_mul_halves): New; the high N bits of a product of |
| two 2N-bit values given as N-bit halves. |
| (long_mul_op_fits_p): New; true when an operand is provably |
| representable in narrow_prec unsigned bits. |
| (long_mul_split_operand): New; splits an operand into N-bit |
| halves using only N-bit operations. |
| (struct long_mul_halves): New; the halves an operand PHI was |
| split into. |
| (struct long_mul_arg_split): New; an argument of an operand PHI |
| with the statements that split it. |
| (long_mul_split_phi): New; splits an operand PHI by splitting its |
| arguments and merging the halves with two new PHIs. Record the |
| halves and reuse them for the next consumer of the same PHI. |
| (long_mul_high_half_uses): New; collects the `>> N' uses forming |
| a product's high half. |
| (long_mul_only_low_half_used_p): New. |
| (unexpandable_long_mul_p): New; true for a 2N multiply in a mode |
| the target cannot multiply. |
| (narrow_long_mul_low_half): New; narrow a 2N low-half-only mult |
| the target cannot expand to an N-bit mult. |
| (narrow_long_mul_operands): New; recurse into chained wide |
| products after a narrowing/lowering. |
| (finish_long_mul_low_half): New; narrows or removes a 2N mult |
| whose high half is synthesized elsewhere. |
| (narrow_long_mul_halves): New; rewrites a 2N multiply into the |
| N-bit halves its uses read. |
| (gimple_long_mul_high_chain): Declare. |
| (lower_long_mul_high_chain): New; lowers the high-part chain to a |
| longhand at narrow precision. Split each operand into N-bit |
| halves and combine, handling an operand wider than narrow_prec |
| instead of rejecting it. Narrow or drop the residual 2N mult via |
| the helpers and recurse into its operands. |
| (optimize_widening_mul_active_p): New; shared gate used by |
| pass_optimize_widening_mul::gate and by the forwprop long-multiply |
| recognizer. Return false when optimize_debug. |
| (math_opts_dom_walker::after_dom_children): Dispatch to |
| lower_long_mul_high_chain on the outer convert. Run |
| narrow_long_mul_low_half on MULT_EXPR before the widen/fma |
| conversion attempts. |
| (pass_optimize_widening_mul::execute): Sweep the function for |
| multiplies left in a mode the target cannot expand. Scope the |
| record of split operand PHIs to one run of the pass. |
| * tree-ssa-math-opts.h (optimize_widening_mul_active_p): Declare. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add cond_carry_add and cond_carry_add_neg match |
| recognizers for the 2-arg PHI form PHI<base + pow2, base>, |
| one per gcond polarity. |
| * tree-ssa-forwprop.cc (gimple_cond_carry_add): Declare. |
| (gimple_cond_carry_add_neg): Likewise. |
| (long_mul_check_low_plus_defer): Note that the PHI entry commits |
| only to HIGH_PART rows. |
| (long_mul_classify_match): Take the candidate statement for the |
| per-row checks. |
| (long_mul_classify_chain): Take an optional pre-classified extra |
| summand, for the carry the PHI entry synthesizes. |
| (match_long_mul): Adjust. |
| (match_long_mul_phi): New PHI-driven entry; recognizes a |
| cond_carry_add(_neg) PHI and folds the long-multiply |
| when the rest of the high-part chain matches. |
| (pass_forwprop::execute): Call match_long_mul_phi on each |
| PHI in the degenerate-PHI walk. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * tree-ssa-forwprop.cc (long_mul_check_low_plus_defer): New |
| helper, defers the fold when any GT/LT/GE/LE use shares an |
| operand with the PLUS; gates the LOW_PART PLUS_EXPR row added |
| to long_mul_table. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add mul_ladder_sum1, mul_ladder_sum2, |
| mul_ladder_sum3 and mul_ladder_part_sum atom recognizers. |
| * tree-ssa-forwprop.cc (gimple_mul_ladder_sum1): Declare. |
| (gimple_mul_ladder_sum2): Likewise. |
| (gimple_mul_ladder_sum3): Likewise. |
| (gimple_mul_ladder_part_sum): Likewise. |
| (enum long_mul_kind): Add LMK_LADDER_SUM1 / LMK_LADDER_SUM2 |
| / LMK_LADDER_SUM3 / LMK_LADDER_PART_SUM, with the |
| long_mul_table HIGH_PART and LOW_PART rows for each ladder |
| form. |
| (long_mul_set_summand): Handle the new kinds. |
| (long_mul_classify_carry): Update the specificity note above |
| long_mul_classify_plus_kinds. |
| (long_mul_classify_plus_kinds): Try mul_ladder_sum3 and |
| mul_ladder_sum1 before mul_low_sum (more-constrained |
| first); add mul_ladder_sum2. |
| (long_mul_classify_hi_extract): Add mul_ladder_part_sum |
| branch. |
| (long_mul_classify_lo_extract): Adjust. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add mul_carry_low atom recognizer. |
| * tree-ssa-forwprop.cc (gimple_mul_carry_low): Declare. |
| (enum long_mul_kind): Add LMK_CARRY_LOW. |
| (struct long_mul_summand): Add carry_a / carry_b for the |
| LMK_CARRY_LOW summand's two operands. |
| (long_mul_set_summand): Handle LMK_CARRY_LOW. |
| (long_mul_classify_carry): Try mul_carry_low after the |
| more-constrained mul_carry_low_sum / mul_carry_cross_sum. |
| (long_mul_find_summand): New helper, find the first summand |
| with a given kind. |
| (long_mul_check_two_carries): New extra check, validates the |
| LMK_CARRY_LOW summand's operands against the canonical |
| (op0, op1); gates the two-carry HIGH_PART row added to |
| long_mul_table. |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add mul_low_sum and mul_carry_low_sum atom |
| recognizers. |
| * tree-ssa-forwprop.cc (gimple_mul_low_sum): Declare. |
| (gimple_mul_carry_low_sum): Likewise. |
| (create_mul_low_seq): Update the widest-atom note above |
| LONG_MUL_MAX_CAPTURES to mul_carry_low_sum (7 captures). |
| (enum long_mul_kind): Add LMK_LOW_SUM and LMK_CARRY_LOW_SUM, |
| with the long_mul_table HIGH_PART and LOW_PART rows that |
| consume them. |
| (long_mul_set_summand): Handle the new kinds. |
| (long_mul_classify_carry): Try mul_carry_low_sum before |
| mul_carry_cross_sum (most-specific first). |
| (long_mul_classify_plus_kinds): Try mul_low_sum after |
| mul_low_accum (mul_low_sum's first arm is any plus and |
| mul_low_accum constrains both arms). |
| |
| 2026-08-19 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add atom match recognizers for long-multiply |
| (mul_hi, mul_lo, mul_hilo, mul_lolo, mul_hihi, mul_cross_sum, |
| mul_low_accum, mul_carry_cross_sum). |
| * tree-ssa-forwprop.cc (gimple_mul_hi): Declare. |
| (gimple_mul_lo): Likewise. |
| (gimple_mul_hilo): Likewise. |
| (gimple_mul_lolo): Likewise. |
| (gimple_mul_hihi): Likewise. |
| (gimple_mul_cross_sum): Likewise. |
| (gimple_mul_low_accum): Likewise. |
| (gimple_mul_carry_cross_sum): Likewise. |
| (build_mul_high_seq): New, emits (N)(((2N) op1 * (2N) op2) >> N) |
| into a caller-supplied destination. |
| (long_mul_apply_extras): New, combines the preserved addends back |
| on top of the folded multiply. |
| (create_mul_high_seq): New, replaces the statement with the |
| high-part multiply plus any extras. |
| (create_mul_low_seq): New, likewise for the low part. |
| (enum long_mul_kind): New. |
| (enum long_mul_extract): New. |
| (struct long_mul_summand): New. |
| (long_mul_linearize_chain): New, walks the outer add/ior chain |
| into a multiset of leaves. |
| (long_mul_is_lshift_def): New. |
| (long_mul_set_summand): New. |
| (long_mul_classify_carry): New. |
| (long_mul_classify_plus_kinds): New. |
| (long_mul_classify_hi_extract): New. |
| (long_mul_classify_lo_extract): New. |
| (long_mul_classify_shl_extract): New. |
| (long_mul_classify_bare): New. |
| (long_mul_classify_summand): New, classify each summand via the |
| match.pd atoms. |
| (long_mul_summand_compare): New. |
| (struct long_mul_row): New. |
| (long_mul_same_ops): New. |
| (long_mul_is_cross_half): New. |
| (long_mul_hilo_orientation): New, orientation of a mul_hilo |
| capture relative to (op0, op1). |
| (long_mul_canonical_ops): New. |
| (long_mul_check_consistency): New, cross-summand consistency |
| check (operand pairing, half-width shifts, hilo cross-half). |
| (long_mul_signature_matches): New. |
| (long_mul_hint_shared_intermediate): New, dump-file hint |
| pointing at a shared inner addition. |
| (long_mul_classify_match): New, looks a summand multiset up in |
| long_mul_table and runs the per-row checks. |
| (long_mul_classify_chain): New, linearize plus classify plus |
| table lookup; sets aside leaves that classify as no summand. |
| (match_long_mul): New, top-level entry: starts only at a chain |
| end, classifies the chain, and dispatches to create_mul_high_seq |
| / create_mul_low_seq with any preserved addends. |
| (pass_forwprop::execute): Call match_long_mul on PLUS_EXPR and |
| BIT_IOR_EXPR statements. |
| |
| 2026-08-19 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126934 |
| * range-op.cc (operator_div::op1_op2_relation_effect): Fix |
| for ops range being negative with VREL_LT. |
| |
| 2026-08-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (vnarrowq): New mode attribute. |
| (sat_trunc_op): New code attribute. |
| * config/aarch64/aarch64-simd.md (<sat_trunc_op>trunc<mode><vnarrowq>2): |
| New expander. |
| |
| 2026-08-19 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sys-regs.def: Sync from Binutils. |
| |
| 2026-08-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (LINK_COMMAND_SPEC_A): Synchronise the |
| options for coverage with gcc/gcc.cc. |
| |
| 2026-08-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_cm<optab>di): Accept a |
| zero second operand in the general register alternative. |
| |
| 2026-08-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/125557 |
| * ifcvt.cc (average_cost): Scale a nonnegative cost difference using |
| the probability of the more expensive arm. |
| |
| 2026-08-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * profile-count.h (profile_probability::apply): Scale an unsigned |
| magnitude with safe_scale_64bit. |
| * profile-count.cc (test_profile_probability_apply): New. |
| (profile_count_cc_tests): New. |
| * selftest.h (profile_count_cc_tests): Declare. |
| * selftest-run-tests.cc (selftest::run_tests): Run it. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_instance): Remove dead code. |
| (vect_analyze_slp_instance): Likewise. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_print_slp_tree): Dump the scheduling |
| point, if set. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_optimize_slp_pass::containing_loop): |
| For nodes w/o representative use the region entry block |
| to indicate the containing loop. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126936 |
| * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Exclude |
| use_stmt from dominance check. |
| (vect_schedule_slp): Likewise for root. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_slp_build_two_operator_nodes): |
| Set SLP_TREE_REPRESENTATIVE to NULL for the permute nodes. |
| (vect_build_slp_tree_2): Likewise. |
| (vect_build_slp_store_interleaving): Likewise. |
| (vect_lower_load_permutations): Likewise. |
| (vect_optimize_slp_pass::get_result_with_layout): Likewise. |
| (vect_cse_slp_node_parts): Deal with NULL SLP_TREE_REPRESENTATIVE |
| for VEC_PERM nodes. |
| (vect_slp_analyze_node_operations_1): Assert permute nodes |
| do not have SLP_TREE_REPRESENTATIVE set. |
| * tree-vect-slp-patterns.cc (complex_pattern::build): Adjust. |
| (vect_build_swap_evenodd_node): Do not set SLP_TREE_REPRESENTATIVE. |
| (vect_build_combine_node): Likewise. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_slp_node_weight): Get vinfo as |
| context. For nodes without representative use the |
| region entry block. |
| (vect_optimize_slp_pass::start_choosing_layouts): Always |
| assign vertex weight. |
| |
| 2026-08-19 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/126597 |
| * config/aarch64/aarch64.cc (aarch64_expand_vec_perm_const_1): Swap |
| zero_op0_p and zero_op1_p along with the operands. |
| |
| 2026-08-19 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/126930 |
| * tree-ssa-alias.cc (ptr_deref_may_alias_global_p): Guard |
| against non-pointers. |
| (ptr_deref_may_alias_auto_p): Likewise. |
| |
| 2026-08-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126856 |
| * gimple-range-cache.cc (block_range_cache::clear): New. |
| (ranger_cache::reset_range_info): New. |
| * gimple-range-cache.h (block_range_cache::clear): Declare. |
| (ranger_cache::reset_range_info): Declare. |
| * gimple-range-gori.cc (range_def_chain::clear): New. |
| * gimple-range-gori.h (range_def_chain::clear): Declare. |
| * gimple-range-infer.cc (infer_range_manager::clear): New. |
| * gimple-range-infer.h (infer_oracle::clear): New virtual function. |
| (infer_range_manager::clear): Override. |
| * gimple-range.cc (gimple_ranger::reset_range_info): New. |
| * gimple-range.h (gimple_ranger::reset_range_info): Declare. |
| * tree-ssa-dce.cc (simple_dce_from_worklist): Reset flow-sensitive |
| information when replacing a definition. |
| * tree-ssanames.cc (reset_flow_sensitive_info): Reset information |
| maintained by the current range query. |
| * value-query.cc (range_query::reset_range_info): New. |
| * value-query.h (range_query::reset_range_info): Declare. |
| * value-relation.cc (equiv_oracle::clear): New. |
| (relation_chain_head::clear): New. |
| (dom_oracle::clear): New. |
| (path_oracle::clear): New. |
| * value-relation.h (relation_oracle::clear): New virtual function. |
| (equiv_oracle::clear): Override. |
| (relation_chain_head::clear): Declare. |
| (dom_oracle::clear): Override. |
| (path_oracle::clear): Override. |
| |
| 2026-08-18 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * auto-profile.cc (function_instance::match): Walk predecessor edges |
| for PHI arguments. |
| |
| 2026-08-18 Dylan Rees <dylan.rees@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc: fold method |
| created for 'svbrk_unary_impl'. Cases added for folding into |
| 'ptrue' and 'pfalse' where appropriate and not folding where |
| unnecessary. Expand method of 'svpfirst_svpnext_impl' extended |
| to handle specific case where 'ptrue' should be emitted but in |
| a form where it can be recognised as a flag setting operation. |
| |
| 2026-08-18 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * final.cc (notice_source_line): Remove dead condition |
| for override_filename. |
| |
| 2026-08-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/extend.texi (Coverage Pragmas): Fix a typo. |
| (Size of an asm): Fix a typo. |
| |
| 2026-08-18 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.cc (alpha_option_override): Set alpha_fprm to |
| ALPHA_FPRM_DYN when flag_rounding_math is set, -mfp-rounding-mode |
| was not given explicitly and -mfloat-vax is not in effect. |
| * doc/invoke.texi (Alpha Options): Document the default rounding |
| mode and its interaction with -frounding-math. |
| |
| 2026-08-18 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * Makefile.in ($(lang_checks_parallelized)): Only merge summaries |
| from instances that produced one, and warn about the others. Write |
| the merged files through a temporary and fail if the merge fails. |
| |
| 2026-08-18 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/iterators.md (optab): Map UNSPEC_COND_FRINTN to |
| roundeven. |
| |
| 2026-08-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options): Sort alphabetically. |
| |
| 2026-08-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (struct _slp_tree): Amend documentation. |
| |
| 2026-08-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126926 |
| * tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Only |
| replace the RHS of the vector constructing scalar stmt. |
| |
| 2026-08-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126925 |
| * tree-ssa-loop-ivopts.cc (create_new_iv): Avoid crashing |
| if the use IV is invariant. |
| |
| 2026-08-18 Dominic P <gcc@gcc.dp11.uk> |
| |
| * match.pd ((X & C1) cmp 0 op (X & C2) cmp 0): Combine pairs of |
| single-bit tests of the same operand into a single compare of |
| the union mask. |
| |
| 2026-08-18 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126876 |
| * gimple-range-path.cc |
| (path_range_query::internal_range_of_expr): Only call |
| range_defined_in_block at the current path position. |
| (path_range_query::range_defined_in_block): Assert the current |
| path position. |
| |
| 2026-08-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/126784 |
| * match.pd ((type) minmax ((wide_type) a, (wide_type) b)): Changed |
| to ... |
| (minmax ((wide_type) a, (wide_type) b)): This. |
| |
| 2026-08-18 Dominic P <gcc@gcc.dp11.uk> |
| |
| * match.pd ((t * u) % u -> 0): New simplification. |
| |
| 2026-08-18 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| PR tree-optimization/112533 |
| * match.pd: Canonicalize boolean comparisons of masked pow2 |
| bits into xor-mask tests. |
| |
| 2026-08-18 Josef Melcr <josef.melcr@suse.com> |
| |
| * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Remove |
| dead if statement checking for internal calls. |
| |
| 2026-08-18 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126906 |
| * tree-ssa-threadupdate.h |
| (back_jt_path_registry::duplicate_thread_path): Add failure_reason |
| argument. |
| * tree-ssa-threadupdate.cc |
| (back_jt_path_registry::duplicate_thread_path): Set |
| FAILURE_REASON on the two failing exits. |
| (back_jt_path_registry::update_cfg): Cancel the path with the |
| reason when duplicate_thread_path fails. |
| |
| 2026-08-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls: Add mstrict-addr-space-subsets. |
| |
| 2026-08-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt (-mstrict-addr-space-subsets): New |
| target option. |
| * config/avr/avr.cc (avr_addr_space_subset_p): Use it. |
| * doc/invoke.texi (AVR Options): Document it. |
| |
| 2026-08-17 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h (_mm_cvtss_epi32_epi8): New intrin. |
| (_mm_mask_cvtss_epi32_epi8): Ditto. |
| (_mm_maskz_cvtss_epi32_epi8): Ditto. |
| (_mm_mask_cvtss_epi32_storeu_epi8): Ditto. |
| (_mm256_cvtss_epi32_epi8): Ditto. |
| (_mm256_mask_cvtss_epi32_epi8): Ditto. |
| (_mm256_maskz_cvtss_epi32_epi8): Ditto. |
| (_mm256_mask_cvtss_epi32_storeu_epi8): Ditto. |
| (_mm512_cvtss_epi32_epi8): Ditto. |
| (_mm512_mask_cvtss_epi32_epi8): Ditto. |
| (_mm512_maskz_cvtss_epi32_epi8): Ditto. |
| (_mm512_mask_cvtss_epi32_storeu_epi8): Ditto. |
| (_mm_unpack_epi8): Ditto. |
| (_mm_mask_unpack_epi8): Ditto. |
| (_mm_maskz_unpack_epi8): Ditto. |
| (_mm256_unpack_epi8): Ditto. |
| (_mm256_mask_unpack_epi8): Ditto. |
| (_mm256_maskz_unpack_epi8): Ditto. |
| (_mm512_unpack_epi8): Ditto. |
| (_mm512_mask_unpack_epi8): Ditto. |
| (_mm512_maskz_unpack_epi8): Ditto. |
| * config/i386/i386-builtin-types.def: New function types. |
| * config/i386/i386-builtin.def (BDESC): New builtins. |
| * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle new function types |
| and reserved immediate check. |
| * config/i386/sse.md (vunpackb<mode><mask_name>): New. |
| (avx10v2aux_sym_truncatev4siv4qi2): Ditto. |
| (*avx10v2aux_sym_truncatev4siv4qi2): Ditto. |
| (avx10v2aux_sym_truncatev8siv8qi2): Ditto. |
| (*avx10v2aux_sym_truncatev8siv8qi2): Ditto. |
| (avx10v2aux_sym_truncatev4siv4qi2_mask): Ditto. |
| (*avx10v2aux_sym_truncatev4siv4qi2_mask): Ditto. |
| (avx10v2aux_sym_truncatev8siv8qi2_mask): Ditto. |
| (*avx10v2aux_sym_truncatev8siv8qi2_mask): Ditto. |
| (*avx10v2aux_sym_truncatev16siv16qi2): Ditto. |
| (avx10v2aux_sym_truncatev16siv16qi2_mask): Ditto. |
| (avx10v2aux_sym_truncatev16siv16qi2_mask_store): Ditto. |
| (*avx10v2aux_sym_truncate<mode>v<ssescalarnum>qi2_store_1): Ditto. |
| (*avx10v2aux_sym_truncate<mode>v<ssescalarnum>qi2_store_2): Ditto. |
| (avx10v2aux_sym_truncate<mode>v<ssescalarnum>qi2_mask_store_1): Ditto. |
| (avx10v2aux_sym_truncate<mode>v<ssescalarnum>qi2_mask_store_2): Ditto. |
| |
| 2026-08-17 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/86937 |
| * fold-const-call.cc (fold_const_call): fold |
| CFN_BUILT_IN_STRNLEN calls. |
| |
| 2026-08-17 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/126743 |
| * range-op-mixed.h: declare. |
| * range-op.cc (operator_bitwise_or::op1_op2_relation_effect): |
| add op1 NE op2 relation range for op1 | op2 as nonzero. |
| |
| 2026-08-17 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/126748 |
| * range-op.cc (class operator_div): declarations. |
| (operator_div::op1_op2_relation_effect): add op1/op2 relation |
| range equal zero for op1/op2 if op1 < op2 and both op1 and op2 |
| are positives. |
| |
| 2026-08-17 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/124667 |
| * match.pd(`(A & BIT) EQ|NE 0 ? A | BIT : A`): New |
| pattern. |
| (`(A & BIT) EQ|NE 0 ? A : A | BIT`): New pattern. |
| (`(A & MASK) EQ|NE MASK ? A : A | MASK`): New pattern. |
| (`(A & MASK) EQ|NE MASK ? A | MASK : A`): New pattern. |
| (`A | (((A >> N) & 1) << N)`): New pattern. |
| |
| 2026-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/126788 |
| * optabs-tree.cc (supportable_convert_operation): For same |
| modes allow NOP_EXPR and VIEW_CONVERT_EXPR. |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid |
| converting the vector to be used for blending into the |
| result to the type of the permutation. |
| * tree-vect-stmts.cc (vectorizable_conversion): Leave |
| nop-conversions to vectorizable_assignment. |
| |
| 2026-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126887 |
| * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): |
| Allow to search past a loop header in case we are threading a |
| loop exit test. |
| * tree-ssa-threadupdate.cc |
| (back_jt_path_registry::duplicate_thread_path): Properly |
| detect when a entered subloop is dissolved by threading, |
| but avoid creating new entries into the original loop. |
| (jt_path_registry::cancel_invalid_paths): Do not allow |
| peeling loops. |
| |
| 2026-08-17 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (svabal): Define. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svabal): New |
| function. |
| * config/aarch64/aarch64-sve-builtins-sve2.h (svabal): Declare. |
| * config/aarch64/iterators.md (UNSPEC_SABAL, UNSPEC_UABAL): New |
| unspecs. |
| (SVE2_INT_BINARY_LONG, SVE2_INT_ADD_BINARY_LONG): Add |
| UNSPEC_SABAL and UNSPEC_UABAL. |
| (sve_int_op, sve_int_add_op, sve_type_unspec): Handle them. |
| |
| 2026-08-17 Josef Melcr <josef.melcr@suse.com> |
| |
| * gimple-low.cc (lower_assumption): Unset stdarg after |
| determining the body function's arguments. |
| |
| 2026-08-17 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc: Fix typos in comments. |
| * config/avr/avr.md: Same. |
| * config/avr/avr-passes.cc: Same. |
| * config/avr/genmultilib.awk: Same. |
| |
| 2026-08-16 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * sel-sched-ir.cc (copy_data_sets): Removed dead code. |
| * sel-sched-ir.h (_XLIST_X): Likewise. |
| (_XLIST_NEXT): Likewise. |
| (_xlist_add): Likewise. |
| (_xlist_remove): Likewise. |
| (_xlist_clear): Likewise. |
| (_xlist_is_in_p): Likewise. |
| (_list_iter_cond_x): Likewise. |
| (_xlist_iter_remove): Likewise. |
| (_FOR_EACH_X): Likewise. |
| (_FOR_EACH_X_1): Likewise. |
| (sel_save_haifa_priorities): Likewise. |
| (insn_eligible_for_subst_p): Likewise. |
| (sel_init_invalid_data_sets): Likewise. |
| (insn_at_boundary_p): Likewise. |
| (copy_data_sets): Likewise. |
| |
| 2026-08-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_out_perm_compare_eqne): New static func. |
| (avr_out_compare): Use it. |
| |
| 2026-08-15 Pietro Monteiro <pietro@sociotechnical.xyz> |
| |
| * config/t-openbsd (USER_H): Add $(srcdir)/ginclude/stdatomic.h. |
| |
| 2026-08-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-fixed.md: Use constants like REG_24 |
| instead of magic numbers like 24. |
| |
| 2026-08-14 Odysseas Georgoudis <odygrd@hotmail.com> |
| |
| PR middle-end/122715 |
| * config/i386/i386.cc: Include "internal-fn.h". |
| (ix86_gimple_fold_builtin): Canonicalize PAVG builtins to |
| IFN_AVG_CEIL. |
| |
| 2026-08-14 Shreya Munnangi <smunnang@qti.qualcomm.com> |
| |
| PR rtl-optimization/125731 |
| * ifcvt.cc (get_base_reg_or_const): Renamed from get_base_reg. |
| Handle CONST_INTs too. |
| (noce_try_cond_arith): Use get_base_reg_or_const. Handle case where |
| get_base_reg_or_const returns a CONST_INT. |
| |
| 2026-08-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126845 |
| * value-relation.cc (dom_oracle::search_and_merge_relation): Create |
| relation immediately and update it later. |
| |
| 2026-08-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126814 |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Temporarily |
| replace the current range query with the specified one. |
| |
| 2026-08-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126533 |
| * gimple-range-gori.cc (gori_name_helper): Add depth counter. |
| |
| 2026-08-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126538 |
| * gimple-range-phi.cc (phi_group::calculate_using_modifier): Limit the |
| iteration upper bound to MAX_FIXED_MODE_SIZE. |
| |
| 2026-08-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (x / y * y == x): Extend to inequality. |
| |
| 2026-08-14 LIU Hao <lh_mouse@126.com> |
| |
| * config/i386/sym-mingw32.cc: Add `extern "C"` and `visibility("hidden")`. |
| |
| 2026-08-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126865 |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Track common |
| BB and whether there's any trapping stmt in the matching set |
| and verify the same BB constraint after we've seen all stmts. |
| |
| 2026-08-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126862 |
| * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): For PHI |
| uses verify dominance to the PHI use edge source. |
| |
| 2026-08-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126861 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Use NULL for |
| scheduling at region start. |
| |
| 2026-08-14 Reshma Roy <Reshma.Roy@amd.com> |
| |
| PR tree-optimization/126646 |
| * match.pd: Fold umin(a, 1) | umin(b, 1) into umin(a | b, 1). |
| |
| 2026-08-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126852 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Verify schedule |
| for PHIs. |
| |
| 2026-08-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (nop_convert): Use vector_nop_conversion_p. |
| ((A == 0) & (B == 0), (A != 0) | (B != 0)): Extend the |
| existing simplifications to vector operands. |
| ((A == -1) & (B == -1), (A != -1) | (B != -1)): Likewise. |
| * tree.cc (vector_nop_conversion_p): New function. |
| * tree.h (vector_nop_conversion_p): Declare. |
| |
| 2026-08-14 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/107765 |
| * match.pd (`(cast)-(cast)a`): Expand to |
| use expr_not_equal_to of INT_MIN. |
| |
| 2026-08-14 Longjun Luo <luolongjuna@gmail.com> |
| |
| PR debug/126355 |
| * cgraphunit.cc (cgraph_node::create_wrapper): Preserve |
| DECL_IGNORED_P across forced GIMPLE thunk expansion. |
| |
| 2026-08-14 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/98602 |
| * match.pd (vec_cond (cmp @0 VECTOR_CST@1) @0 VECTOR_CST@2): |
| New simplification. |
| (vec_cond (cmp @0 VECTOR_CST@1) VECTOR_CST@2 @0): Likewise. |
| * tree.cc (record_uniform_integer_difference): New helper. |
| (uniform_vector_difference_p): New function. |
| * tree.h (uniform_vector_difference_p): Declare. |
| |
| 2026-08-14 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/108031 |
| * config/riscv/riscv.cc (riscv_rtx_costs): Bump the cost of a LO_SUM |
| by one unit to encourage use of related values instead of the symbolic |
| form. |
| |
| 2026-08-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR testsuite/126697 |
| * config/i386/cpuid.h (__get_cpuid_max): Rename the first |
| argument to __leaf and apply 0xC0000000 mask before passing |
| it to CPUID. |
| (__get_cpuid): Pass __leaf to __get_cpuid_max. |
| (__get_cpuid_count): Likewise. |
| |
| 2026-08-14 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/126426 |
| * ext-dce.cc (carry_backpropagate): Return a conservatively |
| correct mask when presented with vector modes. |
| (ext_dce_process_uses): Don't use GET_MODE_INNER, we need to |
| know the full extent of the bits for vector and complex modes. |
| |
| 2026-08-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/120582 |
| * tree-ssa-forwprop.cc (simplify_builtin_call): Remove dead code. |
| |
| 2026-08-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR sanitizer/120581 |
| * sancov.cc (sancov_pass): Remove dead code. |
| |
| 2026-08-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/120580 |
| * gimple-ssa-nonnull-compare.cc (do_warn_nonnull_compare): |
| Remove dead code. |
| |
| 2026-08-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/120579 |
| * gimple.cc (gimple_could_trap_p_1): Remove dead code. |
| |
| 2026-08-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/120477 |
| * tree-ssa-math-opts.cc (arith_overflow_check_p): Remove dead code. |
| |
| 2026-08-13 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126103 |
| * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): |
| Follow abnormal PHIs. |
| |
| 2026-08-13 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-fold.h (gimple_range_ssa_p): Remove the |
| SSA_NAME_OCCURS_IN_ABNORMAL_PHI check. |
| * gimple-range-path.cc (path_range_query::ssa_range_in_phi): |
| Assert the incoming path edge is not abnormal. |
| |
| 2026-08-13 Jim Lin <jim@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_multi_lib_info_t::parse): Skip a multilib that is exactly |
| equivalent to the default march/mabi. |
| |
| 2026-08-13 Peter Bergner <bergner@tenstorrent.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add tt-ascalon-xg. |
| (RISCV_CORE): Likewise. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): |
| Add tt_ascalon_xg. |
| * config/riscv/riscv.md (tune): Likewise. |
| * config/riscv/tt-ascalon-d8.md (asc-xg-fp64-vec0, asc-xg-fp64-vec1): |
| New define_cpu_unit. |
| (tt_ascalon_xg_fp64_vec): New define_reservation. |
| (tt_ascalon_d8_int_load, tt_ascalon_d8_alu, tt_ascalon_d8_sfb, |
| tt_ascalon_d8_branch, tt_ascalon_d8_float_move, tt_ascalon_d8_fcvt, |
| tt_ascalon_d8_fcmp, tt_ascalon_d8_imul, tt_ascalon_d8_idiv, |
| tt_ascalon_d8_fadd, tt_ascalon_d8_mul, tt_ascalon_d8_float_fma, |
| tt_ascalon_d8_float_div_half, tt_ascalon_d8_float_div_single, |
| tt_ascalon_d8_float_div_double, tt_ascalon_d8_popcount, |
| tt_ascalon_d8_vec_load, tt_ascalon_d8_vec_store, |
| tt_ascalon_d8_vec_load_strided, tt_ascalon_d8_vec_store_strided, |
| tt_ascalon_d8_vec_load_indexed, tt_ascalon_d8_vec_store_indexed, |
| tt_ascalon_d8_vec_loadstore_seg, tt_ascalon_d8_vec_alu_1, |
| tt_ascalon_d8_vec_alu_2, tt_ascalon_d8_vec_alu_3, |
| tt_ascalon_d8_vec_alu_4, tt_ascalon_d8_vec_imul, tt_ascalon_d8_vec_pop, |
| tt_ascalon_d8_vec_crypto_aes, tt_ascalon_d8_vec_crypto_sha, |
| tt_ascalon_d8_vec_perm_1, tt_ascalon_d8_vec_perm_3, |
| tt_ascalon_d8_vec_perm_4, tt_ascalon_d8_vec_reduction, |
| tt_ascalon_d8_vec_ordered_reduction, tt_ascalon_d8_vec_idiv_byte, |
| tt_ascalon_d8_vec_idiv_half, tt_ascalon_d8_vec_idiv_single, |
| tt_ascalon_d8_vec_idiv_double, tt_ascalon_d8_vec_float_divsqrt_half, |
| tt_ascalon_d8_vec_float_divsqrt_single, |
| tt_ascalon_d8_vec_float_divsqrt_double, tt_ascalon_d8_vec_mask, |
| tt_ascalon_d8_vec_vesetvl, tt_ascalon_d8_vec_setrm, |
| tt_ascalon_d8_vec_readlen, tt_ascalon_d8_vec_unknown): |
| Use tt_ascalon_xg. |
| (tt_ascalon_d8_vec_fcmp, tt_ascalon_d8_vec_fadd, |
| tt_ascalon_d8_vec_fmul): Disable vector instructions that produce FP64 |
| output values when tuning for tt_ascalon_xg. |
| (tt_ascalon_xg_fp64_vec_insns): New define_insn_reservation. |
| * doc/riscv-mcpu.texi: Regenerate. |
| * doc/riscv-mtune.texi: Likewise. |
| |
| 2026-08-13 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR rtl-optimization/126315 |
| * combine.cc (simplify_comparison) <case AND>: Delete |
| transformation that changed (AND (SUBREG x) C) into the |
| non-canonical (SUBREG (AND x C)). |
| |
| 2026-08-13 Richard Biener <rguenther@suse.de> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| * match.pd ((convert (convert @0))): Allow integer vector |
| types, unify {inside,intrer,final}_vec, guard patterns that |
| are not correct for vectors and those that are with |
| checks the resulting conversion is supported by the target. |
| * optabs-tree.h (supportable_convert_operation): Remove |
| useless last argument. |
| * optabs-tree.cc (supportable_convert_operation): Likewise. |
| (supportable_half_widening_operation): Adjust. |
| * tree-vect-stmts.cc (vectorizable_conversion): Likewise. |
| (supportable_indirect_convert_operation): Likewise. |
| * tree-vect-generic.cc (expand_vector_conversion): Likewise. |
| * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Likewise. |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise. |
| |
| 2026-08-13 Josef Melcr <josef.melcr@suse.com> |
| |
| * Makefile.in: Add callback-info.o to OBJS. |
| * attr-callback.cc (callback_fetch_attr_by_edge): Use fn_idx |
| from the summary. |
| (callback_get_arg_mapping): Replaced by |
| callback_get_arg_mapping_from_attr and the summary field. |
| (callback_get_arg_mapping_from_attr): New function, parses the |
| attr and returns the computed argument mapping. |
| (callback_fetch_fn_position): Delete, obsoleted by the summary. |
| (callback_edge_useful_p): Check for the redirected flag in the |
| summary instead of cgraph_node fields. |
| * attr-callback.h (enum callback_position): Add comment. |
| (enum arg_mapping_constants): New enum, defines the identifier |
| for -1 in the arg_mapping vector. |
| (callback_get_arg_mapping): Delete. |
| (callback_fetch_fn_position): Delete. |
| (callback_get_arg_mapping_from_attr): Add decl. |
| * cgraph.cc (symbol_table::create_edge): Remove callback_id initializer. |
| (cgraph_edge::make_callback): Initialize the callback_info |
| summary, add necessary arguments. |
| (cgraph_edge::redirect_callee): Set the redirected flag when |
| redirecting a callback edge. |
| (cgraph_edge::redirect_call_stmt_to_callee): Use the summary. |
| (cgraph_node::verify_node): Remove callback_id checks. |
| (cgraph_cc_finalize): Free the summaries. |
| * cgraph.h: Remove callback_id from cgraph_edge, adjust decl of |
| cgraph_edge::make_callback. |
| * cgraphclones.cc (cgraph_edge::clone): Remove callback_id. |
| * ipa-cp.cc (ipcp_driver): Initialize the summary sum. |
| * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Remove |
| callback_id, adjust call to make_callback, use the summary. |
| (ipa_analyze_node): Initialize the summary sum. |
| (ipa_register_cgraph_hooks): Likewise. |
| * lto-cgraph.cc (lto_output_edge): Remove callback_id, stream |
| out the summary. |
| (output_symtab): Initialize the summary sum. |
| (input_edge): Remove callback_id, stream in the summary. |
| (input_cgraph_1): Initialize the summary sum. |
| * callback-info.cc: New file. |
| * callback-info.h: New file. |
| |
| 2026-08-13 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-dce.cc (simple_dce_from_worklist): Fix conditional |
| for no_delete with a call. |
| |
| 2026-08-13 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126815 |
| * tree-ssa-dce.cc (simple_dce_from_worklist): Just don't |
| remove the lhs for no_delete case rather than adding a |
| new stmt. |
| |
| 2026-08-13 Rohith Kapelli <kapellirohith@gmail.com> |
| |
| PR rtl-optimization/125683 |
| * simplify-rtx.cc (simplify_context::simplify_ternary_operation): |
| When folding an IF_THEN_ELSE of two equal MEM operands with |
| different memory attributes, return a copy whose attributes are |
| widened to what both operands allow. |
| |
| 2026-08-13 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/126723 |
| * config/darwin.cc (darwin_encode_section_info): Make all |
| string constant labels linker-visible. Likewise const |
| section anchors. |
| |
| 2026-08-12 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (range_operator::fold_range): Fold each pair |
| of sub-ranges, or the diagonal when the operands are equal. |
| (range_op_float_tests): New test. |
| |
| 2026-08-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*bt<mode>): Change operand 1 constraint |
| from "q<S>,<S>" to "r<S>,<S>". |
| (*bt<SWI48:mode>_mask): Remove constraints from operand 0. |
| |
| 2026-08-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-fixed.md (*round<mode>3.libgcc_split) |
| (*round<mode>3.libgcc): Use the ALL12QA mode iterator instead |
| of ALL1Q and ALL2QA separately. |
| |
| 2026-08-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-fixed.md (ALL12QA): New mode iterator. |
| (sat_ashl): New code iterator. |
| (usashluqq3, ssashlqq3, usashluhq3, ssashlhq3, usashluha3) |
| (ssashlha3, usashlusq3, ssashlsq3, usashlusa3, ssashlsa3) |
| (*usashluqq3, *ssashlqq3, *usashluhq3, *ssashlhq3) |
| (*usashluha3, *ssashlha3, *usashlusq3, *ssashlsq3, *usashlusa3) |
| (*ssashlsa3): New insns. |
| * config/avr/avr.md (code_stdname): Also map ss_ashift, us_ashift. |
| |
| 2026-08-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (RISC-V Vector Intrinsics): Update link to |
| specification. |
| |
| 2026-08-12 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126418 |
| * match.pd (`(A ^ -cmp) + cmp`): Cast to unsigned type |
| before taking the negative. |
| |
| 2026-08-12 Matt Turner <mattst88@gmail.com> |
| |
| * configure.ac (gcc_cv_irelative_reloc): New variable, set for |
| riscv*-*-linux* and alpha*-*-linux*. Perform the linker |
| IRELATIVE check once, driven by it. |
| * configure: Regenerate. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-simd.md (reduc_widen_<su>sum<mode><vsi2qi>3): |
| Expand through aarch64_expand_reduc_widen_sum. |
| * config/aarch64/aarch64.cc (aarch64_expand_reduc_widen_sum): Use |
| [SU]DOT for a step from byte to word elements. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_expand_reduc_widen_sum): |
| Declare. |
| * config/aarch64/aarch64.cc (aarch64_expand_reduc_widen_sum): New |
| function. |
| * config/aarch64/aarch64-simd.md (aarch64_<su>adalp<mode>): Rename |
| to ... |
| (@aarch64_<su>adalp<mode>): ... this. |
| (reduc_widen_ssum<Vdblw><mode>3, reduc_widen_usum<Vdblw><mode>3): |
| Replace by ... |
| (reduc_widen_<su>sum<Vdblw><mode>3): ... this. Expand to [SU]ADALP. |
| (reduc_widen_ssum<mode><vsi2qi>3, reduc_widen_usum<mode><vsi2qi>3): |
| Replace by ... |
| (reduc_widen_<su>sum<mode><vsi2qi>3): ... this. Handle |
| !TARGET_DOTPROD. |
| (reduc_widen_<su>sumv2di<mode>3): New expander. |
| * config/aarch64/iterators.md (VQ_BH): New mode iterator. |
| |
| 2026-08-12 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/94649 |
| PR target/126293 |
| * common/config/i386/i386-cpuinfo.h (ix86_decode_cpu_info): New |
| function. |
| * config/i386/i386-options.cc |
| (ix86_option_override_internal): Issue an error for -m128bit-atomic |
| in 32-bit mode. Turn on -mcx16 if -m128bit-atomic is enabled. |
| Enable -m128bit-atomic in 64-bit mode by default if supported by |
| the targeting processor. |
| * config/i386/i386.h (TARGET_128BIT_ATOMIC_ENABLED): New. |
| * config/i386/i386.opt (m128bit-atomic): New option. |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/i386/sync.md: Update comments for 128-bit aligned vector |
| loads and stores. |
| (atomic_loadti): New pattern. |
| (atomic_loadti_sse): Likewise. |
| (atomic_storeti): Likewise. |
| (atomic_storeti_sse): Likewise. |
| * doc/invoke.texi: Remove __atomic Builtins reference from -mcx16. |
| Document -m128bit-atomic. |
| |
| 2026-08-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126589 |
| * tree-vect-slp-patterns.cc (vect_validate_multiplication): Cleanup |
| comment. |
| (vect_validate_multiplication_commutative): Remove last 4 orders. |
| |
| 2026-08-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126589 |
| * tree-vect-slp-patterns.cc (complex_fms_pattern::matches): Check |
| another form of FMS. |
| |
| 2026-08-12 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/125129 |
| * doc/gm2.texi (-fdump-builtins): New switch. |
| |
| 2026-08-12 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h |
| (TYPES_qshr_x2): New macro. |
| (TYPES_qrshr_x2_8): Likewise. |
| (TYPES_qshru_x2): Likewise. |
| (TYPES_qrshrun_x2): Likewise. |
| (DEF_SVE_TYPES_ARRAY): Add qshr_x2, qrshr_x2_8, qrshrun_x2 |
| and qshru_x2. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (svqshrn): New |
| function. |
| (svqshrun): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svqrshrn): Add |
| SVE2p3/SME2p3 x2 form. |
| (svqrshrun): Likewise. |
| (svqshrn): Add SVE2p3/SME2p3 x2 form. |
| (svqshrun): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.h (svqshrn): Declare. |
| (svqshrun): Likewise. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve_<sve_int_op><mode>): New define_insn. |
| * config/aarch64/iterators.md (SVE_FULL_HIx2): New mode iterator. |
| (UNSPEC_SQSHRN, UNSPEC_SQSHRUN, UNSPEC_UQSHRN): New unspecs. |
| (VNARROW): Add VNx16HI mapping. |
| (Ventype): Likewise. |
| (SVE2_INT_SHIFT_IMM_NARROWxN): Add UNSPEC_SQSHRN, |
| UNSPEC_SQSHRUN and UNSPEC_UQSHRN. |
| (sve_int_op): Add sqshrn, sqshrun and uqshrn. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (((X - 1) | C) + 1): New simplification. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * doc/md.texi (reduc_widen_ssum@var{n}@var{m}3) |
| (reduc_widen_usum@var{n}@var{m}3): Document that the assignment of |
| input elements to accumulator elements is unconstrained, that |
| intermediate sums must not overflow, and that the widen_[us]sum |
| names are reserved. Fix a typo. |
| * tree.def (WIDEN_SUM_EXPR): Document that the assignment of elements |
| of the first argument to elements of the second is unconstrained. |
| (DOT_PROD_EXPR, SAD_EXPR): Note the same freedom. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * optabs.def (ssum_widen_optab): Rename to ... |
| (reduc_widen_ssum_optab): ... this. Rename the pattern from |
| widen_ssum$a$b3 to reduc_widen_ssum$a$b3. |
| (usum_widen_optab): Rename to ... |
| (reduc_widen_usum_optab): ... this. Rename the pattern from |
| widen_usum$a$b3 to reduc_widen_usum$a$b3. |
| * optabs-tree.cc (optab_for_tree_code): Update for the renamed |
| optabs. |
| * doc/md.texi (widen_ssum@var{n}@var{m}3): Rename to ... |
| (reduc_widen_ssum@var{n}@var{m}3): ... this. |
| (widen_usum@var{n}@var{m}3): Rename to ... |
| (reduc_widen_usum@var{n}@var{m}3): ... this. |
| * config/aarch64/aarch64-simd.md (widen_ssum<Vdblw><mode>3): Rename |
| to ... |
| (reduc_widen_ssum<Vdblw><mode>3): ... this. |
| (widen_ssum<Vwide><mode>3): Rename to ... |
| (reduc_widen_ssum<Vwide><mode>3): ... this. |
| (widen_usum<Vdblw><mode>3): Rename to ... |
| (reduc_widen_usum<Vdblw><mode>3): ... this. |
| (widen_usum<Vwide><mode>3): Rename to ... |
| (reduc_widen_usum<Vwide><mode>3): ... this. |
| (widen_ssum<mode><vsi2qi>3): Rename to ... |
| (reduc_widen_ssum<mode><vsi2qi>3): ... this. |
| (widen_usum<mode><vsi2qi>3): Rename to ... |
| (reduc_widen_usum<mode><vsi2qi>3): ... this. |
| * config/aarch64/aarch64-sve.md (widen_<sur>sum<mode><vsi2qi>3): |
| Rename to ... |
| (reduc_widen_<sur>sum<mode><vsi2qi>3): ... this. |
| * config/aarch64/aarch64-sve2.md (widen_ssum<mode><Vnarrow>3): Rename |
| to ... |
| (reduc_widen_ssum<mode><Vnarrow>3): ... this. |
| (widen_usum<mode><Vnarrow>3): Rename to ... |
| (reduc_widen_usum<mode><Vnarrow>3): ... this. |
| * config/arm/neon.md (widen_ssum<v_double_width><mode>3): Rename |
| to ... |
| (reduc_widen_ssum<v_double_width><mode>3): ... this. |
| (widen_ssum<V_widen_l><mode>3): Rename to ... |
| (reduc_widen_ssum<V_widen_l><mode>3): ... this. |
| (widen_usum<v_double_width><mode>3): Rename to ... |
| (reduc_widen_usum<v_double_width><mode>3): ... this. |
| (widen_usum<V_widen_l><mode>3): Rename to ... |
| (reduc_widen_usum<V_widen_l><mode>3): ... this. |
| * config/ia64/vect.md (widen_usumv4hiv8qi3): Rename to ... |
| (reduc_widen_usumv4hiv8qi3): ... this. |
| (widen_usumv2siv4hi3): Rename to ... |
| (reduc_widen_usumv2siv4hi3): ... this. |
| (widen_ssumv4hiv8qi3): Rename to ... |
| (reduc_widen_ssumv4hiv8qi3): ... this. |
| (widen_ssumv2siv4hi3): Rename to ... |
| (reduc_widen_ssumv2siv4hi3): ... this. |
| * config/rs6000/altivec.md (widen_usumv4si<mode>3): Rename to ... |
| (reduc_widen_usumv4si<mode>3): ... this. |
| (widen_ssumv4siv16qi3): Rename to ... |
| (reduc_widen_ssumv4siv16qi3): ... this. |
| (widen_ssumv4siv8hi3): Rename to ... |
| (reduc_widen_ssumv4siv8hi3): ... this. |
| |
| 2026-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126099 |
| PR tree-optimization/126053 |
| * tree-vect-slp.cc (vect_cse_gather_part_starts): New function. |
| (vect_cse_slp_node_parts): Likewise. |
| (vect_optimize_slp): For BB SLP CSE to low/highparts of |
| other nodes. |
| |
| 2026-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_schedule_slp): Adjust prototype. |
| * tree-vect-slp.cc (vect_slp_analyze_bb_1): When scheduling |
| fails, fail vectorization. |
| (vect_schedule_slp_node): Return whether we can schedule |
| the node. |
| (vect_schedule_scc): Likewise. |
| (vect_schedule_slp): When asked, elide SLP graph entries |
| that cannot be scheduled. |
| |
| 2026-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126028 |
| * tree-vectorizer.h (_slp_tree::si): New member. |
| (vect_schedule_slp): Adjust prototype. |
| * tree-vect-loop.cc (vect_transform_loop): Adjust. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize si. |
| (vect_bb_slp_mark_live_stmts): Use vector stmt placement |
| constraint computed by pre-scheduling of SLP nodes. |
| (vect_slp_analyze_bb_1): Pre-schedule SLP nodes before |
| computing live lane extraction points. |
| (vect_slp_region): Adjust. |
| (vect_schedule_slp_node): Add parameter indicating to whether |
| we should perform pre-scehduling or not. Compute the |
| insertion place suitable for dominance checks when |
| pre-scheduling. |
| (vect_schedule_scc): Adjust. |
| (vect_schedule_slp): Likewise. |
| |
| 2026-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vect_is_simple_cond): Simplify and |
| inline ... |
| (vectorizable_condition): ... here. Simplify. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/predicates.md (aarch64_general_reg): Test the |
| register number rather than REGNO_REG_CLASS, which reports the |
| W8_W11_REGS and W12_W15_REGS subclasses for x8-x15. |
| |
| 2026-08-12 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_CSSC for TARGET_CSSC. |
| |
| 2026-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126789 |
| * config/i386/mmx.md (mmxxmmmode): Add V2SF and V2SI. |
| (mmxxmmmodelower): Likewise. |
| (vcond_mask_<mode>qi): New expander for V2SF and V2SI. |
| * tree-vect-stmts.cc (vectorizable_conversion): Handle |
| conversion via VEC_COND_EXPR. |
| (supportable_indirect_convert_operation): For mask vector |
| conversions to vector integer mode try using a VEC_COND_EXPR. |
| |
| 2026-08-12 Jørgen Kvalsvik <j@lambda.is> |
| |
| * cfg-flags.def (COVERAGE_SUPPRESSED): New flag. |
| * doc/extend.texi: Add sections on suppress_coverage. |
| * doc/gcov.texi: Add sections on suppress_coverage. |
| * gcov-dump.cc (tag_suppress): New function. |
| * gcov-io.h (GCOV_TAG_SUPPRESS): New. |
| (GCOV_TAG_SUPPRESS_LENGTH): New. |
| (GCOV_TAG_SUPPRESS_NUM): New. |
| * gcov.cc (struct arc_info): Add field suppressed. |
| (block_info::block_info): Initialize suppressed. |
| (line_info::line_info): Initialize suppressed. |
| (struct coverage_info): Add fields lines_suppressed, |
| (struct path_info): Add fields residual_paths, |
| residual_covered. |
| (executed_summary): Add suppressed argument. |
| (tombstone_p): New function. |
| (remove_tombstones): New function. |
| (tombstone_subsequence_p): New function. |
| (subsumed_by_any_p): New function. |
| (path_info::suppress_blocks): New function. |
| (path_info::get_paths): New function. |
| (path_info::count): New function. |
| (path_info::suppressed_count): New function. |
| (path_info::suppressed_p): New function. |
| (find_arc): Return NULL if arc cannot be found. |
| (main): Pass total_suppressed to executed_summary. |
| (output_intermediate_json_line): Skip suppressed. |
| (json_set_prime_path_coverage): Include suppressed counts. |
| (output_json_intermediate_file): Likewise. |
| (process_all_functions): Record block, arc suppressed status. |
| (generate_results): Count total suppressed. |
| (read_graph_file): Read SUPPRESS tag. |
| (add_branch_counts): Count suppressed. |
| (add_condition_counts): Likewise. |
| (add_path_counts): Likewise. |
| (function_summary): Print info on suppressed blocks. |
| (file_summary): Count suppressed. |
| (add_line_counts): Likewise. |
| (accumulate_line_info): Likewise. |
| (accumulate_line_counts): Likewise. |
| (output_conditions): Skip suppressed. |
| (output_branch_count): Likewise. |
| (print_prime_path_lines): Annotate suppressed arcs. |
| (print_prime_path_source): Likewise, and widen the annotation |
| column. |
| (output_path_coverage): Print info on suppressed paths. |
| (output_line_beginning): Prefix suppressed lines with '#'. |
| (output_line_details): Pass suppressed. |
| (output_lines): Likewise. |
| * profile.cc (suppress_coverage): New function. |
| (suppress_coverage_unset): New function. |
| (coverage_suppressed_p): New function. |
| (any_block_coverage_suppressed_p): New function. |
| (suppress_coverage_begin): New function. |
| (suppress_coverage_end): New function. |
| (in_pragma_suppress_coverage_p): New function. |
| (location_in_pragma_suppress_coverage_p): New function. |
| (fn_in_pragma_suppress_coverage_p): New function. |
| (branch_prob): Write SUPPRESS record, skip MC/DC and path |
| coverage when the entire function is suppressed. |
| * profile.h (in_pragma_suppress_coverage_p): New forward |
| declaration. |
| (location_in_pragma_suppress_coverage_p): Ditto. |
| (coverage_suppressd_p): Ditto. |
| (suppress_coverage): Ditto. |
| (suppress_coverage_unset): Ditto. |
| * tree-cfg.cc (gimple_empty_block_p): New forward declaration. |
| (make_blocks_1): Set coverage-suppresesed on blocks. |
| (make_blocks): Sometimes insert NOP to help coverage |
| suppression on blocks. |
| (gimple_can_merge_blocks_p): Don't merge coverage-suppressed |
| block with non-suppressed blocks. |
| (gimple_merge_blocks): Likewise. |
| (gimple_split_edge): Propagate coverage-suppressed on block |
| splits. |
| (gimple_split_block): Likewise. |
| (gimple_duplicate_bb): Likewise. |
| (insert_cond_bb): Likewise. |
| |
| 2026-08-12 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126103 |
| * tree-ssa-threadbackward.cc (class back_threader): Add |
| find_taken_edge_goto. |
| (back_threader::find_taken_edge): Handle GIMPLE_GOTO. |
| (back_threader::find_taken_edge_goto): New. |
| (back_threader::maybe_thread_block): Handle GIMPLE_GOTO. |
| |
| 2026-08-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126778 |
| * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge): Move it. |
| (vect_set_loop_condition_partial_vectors): Use it to update edge. |
| |
| 2026-08-12 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/126787 |
| * config/i386/sse.md (*fma_fmadd_<mode>): Use the "jm" to replace |
| "m" constraint and set addr attribute to "gpr16" for vex only |
| alternatives. |
| (*fma_fmsub_<mode>): Likewise. |
| (*fma_fnmadd_<mode>): Likewise. |
| (*fma_fnmsub_<mode>): Likewise. |
| (*fma_fmaddsub_<mode>): Likewise. |
| (*fma_fmsubadd_<mode>): Likewise. |
| (xop_p<macs><ssemodesuffix><ssemodesuffix>): Likewise. |
| (xop_p<macs>dql): Likewise. |
| (xop_p<macs>dqh): Likewise. |
| (xop_p<macs>wd): Likewise. |
| (xop_p<madcs>wd): Likewise. |
| (xop_pcmov_<mode><avxsizesuffix>): Likewise. |
| (xop_phadd<u>bw): Likewise. |
| (xop_phadd<u>bd): Likewise. |
| (xop_phadd<u>bq): Likewise. |
| (xop_phadd<u>wd): Likewise. |
| (xop_phadd<u>wq): Likewise. |
| (xop_phadd<u>dq): Likewise. |
| (xop_phsubbw): Likewise. |
| (xop_phsubwd): Likewise. |
| (xop_phsubdq): Likewise. |
| (xop_pperm): Likewise. |
| (xop_pperm_pack_v2di_v4si): Likewise. |
| (xop_pperm_pack_v4si_v8hi): Likewise. |
| (xop_pperm_pack_v8hi_v16qi): Likewise. |
| (xop_rotl<mode>3): Likewise. |
| (xop_rotr<mode>3): Likewise. |
| (xop_vrotl<mode>3): Likewise. |
| (xop_sha<mode>3): Likewise. |
| (xop_shl<mode>3): Likewise. |
| (xop_frcz<mode>2): Likewise. |
| (*xop_vmfrcz<mode>2): Likewise. |
| (xop_maskcmp<mode>3): Likewise. |
| (xop_maskcmp_uns<mode>3): Likewise. |
| (xop_maskcmp_uns2<mode>3): Likewise. |
| (xop_pcom_tf<mode>3): Likewise. |
| (xop_vpermil2<mode>3): Likewise. |
| |
| 2026-08-12 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-protos.h (enum riscv_fusion_pairs): Use |
| HOST_WIDE_INT_1U for bit masks. |
| (riscv_get_fusible_ops): Return unsigned HOST_WIDE_INT. |
| * config/riscv/riscv.cc (struct riscv_tune_param): Change |
| fusible_ops to unsigned HOST_WIDE_INT. |
| (riscv_get_fusible_ops): Likewise. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (dom_oracle::create_relation_in_bb): Adjust |
| to use ssa_name instead of version. |
| (dom_oracle::search_and_merge_relation): Likewise. |
| (dom_oracle::find_relation_block): Likewise. |
| (dom_oracle::find_relation_dom): Likewise. |
| (dom_oracle::query): Likewise. |
| * value-relation.h (find_relation_block): Use trees not unsigned. |
| (find_relation_dom): Likewise. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (dom_oracle::record): Use search_and_merge_relation. |
| (dom_oracle::create_relation_in_bb): New. |
| (dom_oracle::search_and_merge_relation): Rename from set_one_relation |
| and extract create_relation code. |
| (dom_oracle::register_transitives): Use search_and_merge_relation. |
| * value-relation.h (set_one_relation): Delete. |
| (create_relation_in_bb): New. |
| (search_and_merge_relation): Rename from set_one_relation. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126536 |
| * gimple-range-edge.cc (calc_switch_ranges): Check that invert worked. |
| * gimple-range-op.cc (cfn_toupper_tolower::fold_range): Likewise. |
| * range-op-ptr.cc (operator_equal::op1_range): Likewise. |
| (operator_not_equal::op1_range): Likewise. |
| * range-op.cc (operator_equal::op1_range): Likewise. |
| (operator_not_equal::op1_range): Likewise. |
| (operator_rshift::op1_range): Likewise. |
| (operator_logical_not::fold_range): Likewise. |
| * tree-ssa-loop-unswitch.cc (unswitch_predicate): Likewise. |
| * value-range.cc (irange_bitmask::range_from_mask): Likewise. |
| (prange::invert): Return bool for success/fail. |
| (irange::invert): Likewise. |
| (irange::snap_subranges): Check that invert worked. |
| (range_tests_int_range_max): Confirm failed invert works. |
| (range_tests_misc): Check invert return value. |
| * value-range.h (irange::invert): Add boolean return value. |
| (prange::invert): Add boolean return value. |
| * vr-values.cc (simplify_switch_using_ranges): Check invert result. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126531 |
| * gimple-range-cache.cc (ranger_cache::range_from_dom): Track |
| abnormal edges throughout the dom search. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126329 |
| * tree-ssa-dce.cc (simple_dce_from_worklist): Add no-delete option. |
| * tree-ssa-dce.h (simple_dce_from_worklist): Add no delete param. |
| * tree-vrp.cc (remove_unreachable::handle_early): Use no delete option. |
| |
| 2026-08-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126648 |
| * range-op.cc (operator_lshift::op1_range): Handle undefined. |
| |
| 2026-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126789 |
| * tree-vect-patterns.cc (build_mask_conversion): Add |
| scalar_type_for_mask parameter and pass it along. |
| (vect_convert_mask_for_vectype): Likewise. |
| (vect_recog_bool_pattern): Adjust. |
| (vect_recog_mask_conversion_pattern): Likewise. |
| |
| 2026-08-11 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| |
| PR tree-optimization/126693 |
| * match.pd: Fold abs(x) * abs(y) into abs(x * y). |
| |
| 2026-08-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121343 |
| * config/avr/avr-fixed.md: Rewrite insns and expanders to |
| use hard-register constraints. |
| * config/avr/avr.md (*umulqihi3.call_split): Add comment. |
| |
| 2026-08-11 Rohith Kapelli <kapellirohith@gmail.com> |
| |
| PR tree-optimization/123951 |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_simd_vec_set_lane0<mode>): New pattern. |
| (*aarch64_simd_vec_copy_lane_same<mode>): New pattern. |
| |
| 2026-08-11 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/126676 |
| * config/i386/i386-expand.cc (ix86_expand_fp_compare): Only use |
| UNSPEC_OPTCOMX for the modes VCOMX exists for. |
| |
| 2026-08-10 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * wide-int.cc (canonize): Use return 1 instead of return len. |
| |
| 2026-08-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movbehi2): New insn, split from the |
| movbe alternatives of *bswaphi2_movbe. |
| (*bswaphi2_movbe): Convert to define_insn_and_split. Split |
| the MOVBE alternatives (mem<->reg) post-reload into *movbehi2 |
| to drop the now-unneeded flags clobber. |
| |
| 2026-08-10 Tudor-Stefan Magirescu <tudor.magirescu@gmail.com> |
| |
| * match.pd (((X CMP1 Y) - (X CMP2 Y)) REL 0): New pattern. |
| |
| 2026-08-10 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| * config/mingw/winnt.cc (i386_pe_drectve_name): New. |
| (i386_pe_assemble_visibility): Emit -exclude-symbols |
| directives into .drectve for VISIBILITY_HIDDEN and |
| VISIBILITY_INTERNAL instead of warning. Use the external |
| symbol spelling for 32-bit PE names. |
| |
| 2026-08-10 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-expand.cc (expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): Adjust calls to OMPT variants with |
| GOMP_loop_end. |
| |
| 2026-08-10 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126103 |
| * doc/params.texi (dom-jump-threading): Document. |
| * params.opt (-param=dom-jump-threading=): New. |
| * tree-ssa-dom.cc (dom_opt_dom_walker::after_dom_children): Honor |
| param_dom_jump_threading. |
| |
| 2026-08-10 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| PR target/69374 |
| * doc/install.texi (Binaries): Remove reference to OpenPKG. |
| |
| 2026-08-10 Alice Carlotti <alice.carlotti@arm.com> |
| |
| PR target/124629 |
| * config/aarch64/driver-aarch64.cc (AARCH64_ARCH): |
| Don't skip first character of #ARCH_IDENT. |
| |
| 2026-08-10 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * common/config/aarch64/aarch64-common.cc |
| (aarch64_get_extension_string_for_isa_flags): Check isa_flags. |
| * config/aarch64/aarch64-option-extensions.def |
| (CRYPTO, SVE2_AES, SVE2_BITPERM, SVE2_SHA3, SVE2_SM4): Remove |
| cpuinfo feature string. |
| |
| 2026-08-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Check that the |
| two arms of the pair are one access size apart. |
| |
| 2026-08-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/126701 |
| * cfgexpand.cc (verify_partition_mem_exprs): Document when it may |
| be called. |
| (pass_expand::execute): Call it after the RTL of PARM_DECL and |
| RESULT_DECL default definitions is restored. |
| * tree-outof-ssa.cc (split_overlapping_partition_decls): Note the |
| variable a partition of a parameter or result default definition |
| ends up with. |
| |
| 2026-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126658 |
| * gimple.cc (check_loadstore): Restrict TARGET_MEM_REF |
| handling. |
| * gimple-ssa-isolate-paths.cc (check_loadstore): Likewise. |
| * gimple-range-infer.cc (non_null_loadstore): Likewise. |
| |
| 2026-08-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((X | Y) >> C, (X ^ Y) >> C): New simplification. |
| |
| 2026-08-10 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR target/126513 |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Allocate reg |
| if target is null or const0_rtx. |
| * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Add |
| error handling for c1, c2 and c3 described in this commit. |
| |
| 2026-08-10 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-fusion.cc (riscv_fuse_zext_common): New function. |
| (riscv_fuse_zextw): Likewise. |
| (riscv_fuse_zextws): Use riscv_fuse_zext_common and document RTL |
| relationships and constraints. |
| (riscv_fuse_zexth): Use riscv_fuse_zext_common. |
| (riscv_fuse_ldindexed): Document RTL relationships and constraints. |
| (riscv_fuse_expanded_ld): Likewise. |
| (riscv_fuse_ldpreincrement): Likewise. |
| (riscv_fuse_lui_addi): Likewise. |
| (riscv_fuse_auipc_addi): Likewise. |
| (riscv_fuse_lui_ld): Likewise. |
| (riscv_fuse_auipc_ld): Likewise. |
| (riscv_fuse_cache_aligned_std): Likewise. |
| (riscv_fuse_aligned_std): Likewise. |
| (riscv_fuse_bfext): Likewise. |
| (riscv_fuse_b_alui): Likewise. |
| (riscv_fusion_entry::op): Rename from op_flags and use an enum. |
| (riscv_fusion_table): Split ZEXTW and ZEXTWS entries. |
| (riscv_macro_fusion_pair_p): Use riscv_fusion_enabled_p and print |
| instruction UIDs. |
| |
| 2026-08-10 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125735 |
| * match.pd: 1 / X -> X == 1 for positive X. |
| |
| 2026-08-09 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/111959 |
| * fold-const.cc (tree_single_nonnegative_p): Use the range to see |
| if the SSA_NAME was nonnegative. |
| |
| 2026-08-09 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126729 |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): Handle |
| REF_REVERSE_STORAGE_ORDER being set correctly. |
| |
| 2026-08-09 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-pretty-print.cc (dump_mem_ref): Dump REF_REVERSE_STORAGE_ORDER |
| if it was set. |
| |
| 2026-08-09 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * hwint.h (add_hwi, mul_hwi): Combine return result. |
| |
| 2026-08-09 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.md (trunctfsf2): Adjust sequence to avoid |
| conversion step landing at a halfway value. |
| |
| 2026-08-09 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/126742 |
| * match.pd: Fix wrong code. |
| |
| 2026-08-09 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/126625 |
| * hwint.cc (reflect_hwi): Use STAGE0_CXX_HAS_BUILTIN |
| for __builtin_bitreverse64. |
| * ira-color.cc (HAS_SMUL_OVERFLOW): Remove |
| and use STAGE0_CXX_HAS_BUILTIN instead. |
| * system.h (STAGE0_CXX_HAS_BUILTIN): New macro. |
| |
| 2026-08-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * data-streamer-out.cc (streamer_write_vrange): Stream each frange |
| sub-range. |
| * data-streamer-in.cc (streamer_read_value_range): Read them. |
| |
| 2026-08-09 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (float_binary_op_range_finish): Use |
| contains_zero_p on lhs instead of inspecting the hull endpoints. |
| |
| 2026-08-09 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Configuration): Spell CPU in uppercase letters. |
| (Specific): Ditto. |
| |
| 2026-08-09 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((A / B) * (C / D)): New simplification. |
| |
| 2026-08-09 Roger Sayle <roger@nextmovesofware.com> |
| Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126467 |
| * match.pd (0.0 - x -> -x): Update the conditions under which |
| the transformation is performed, disallowing x = +0.0 when we |
| honor signed zeros. This is still disallowed if x is a NaN. |
| |
| 2026-08-08 Kevin Stefanov <kevinstefanov15@gmail.com> |
| |
| PR middle-end/111856 |
| * omp-simd-clone.cc (simd_clone_adjust_return_type): Use VOID_TYPE_P |
| when checking for void return type in adjusted functions. |
| (simd_clone_adjust): Likewise. |
| |
| 2026-08-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| * gcc.cc (execute) [default]: Use the same wording as above. |
| |
| 2026-08-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (REDUC (a) op REDUC (b)): New simplifications combining |
| two reductions into one. |
| |
| 2026-08-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((type) minmax ((wide_type) a, (wide_type) b)): Accept |
| vector types, using element_precision and requiring the narrow |
| operation to be supported. |
| |
| 2026-08-08 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((x + y) - minmax (x, y)): New simplification. |
| |
| 2026-08-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (operator_cast::fold_range): Convert each |
| sub-range and union the results. |
| (range_op_float_tests): New test. |
| |
| 2026-08-08 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (operator_cast::fold_range): Convert each |
| sub-range and union the results. |
| (range_op_float_tests): New test. |
| |
| 2026-08-07 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126714 |
| * range-op-float.cc (range_op_float_tests): Guard the signed-zero |
| == op1_range self-test with HONOR_SIGNED_ZEROS. |
| |
| 2026-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126534 |
| * gimple-range-op.cc (cfn_sqrt::op1_range): Widen lb or ub |
| by further 0.5ulp or 1ulp before squaring it. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/120681 |
| * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Allow large |
| code model as well as medium code model. |
| * config/rs6000/rs6000.cc (rs6000_option_override_internal): |
| Likewise. |
| (rs6000_elf_declare_function_name): Don't create the |
| local/non-local labels for large code model if we are using |
| PC-relative addressing. |
| |
| 2026-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126667 |
| * config/s390/s390.md (usubc<mode>5): If operands[4] is |
| an immediate operand other than const0_rtx, force it into reg |
| before using it in xor<mode>3 insn. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/120528 |
| * config/rs6000/rs6000.md (zero_extend??ti2 peephole2): Add a |
| peephole2 to simplify zero extending a QI/HI/SI/DImode value in |
| memory to a TImode target in a vector register to use the |
| LXVR{B,H,W,D}X instructins. |
| |
| 2026-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126641 |
| * value-range.h (class frange): Declare widen method. |
| * range-op-float.cc (float_widen_bound): Move to value-range.cc. |
| (float_widen_lhs_range): Remove. |
| (operator_plus::op1_range, operator_minus::op1_range, |
| operator_minus::op2_range, operator_mult::op1_range, |
| foperator_div::op1_range, foperator_div::op2_range, |
| operator_cast::op1_range, range_op_float_tests): Replace |
| X = float_widen_lhs_range (T, R) with X = R; X.widen (T). |
| * value-range.cc (float_widen_bound): New, moved from |
| range-op-float.cc. |
| (frange::widen): New method, partially based on |
| float_widen_lhs_range, but replace lhs with *this and |
| avoid using set/union_ to construct range, instead modify |
| m_pair and m_num_ranges directly. |
| * real.cc (set_significand_bit, clear_significand_bit, |
| test_significand_bit): Add |
| gcc_checking_assert (n < SIGNIFICAND_BITS). |
| (clear_significand_below): Add |
| gcc_checking_assert (n <= SIGNIFICAND_BITS). |
| |
| 2026-08-07 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (operator_cast::fold_range): Convert each |
| integer sub-range and union the results. |
| (range_op_float_tests): New test. |
| |
| 2026-08-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (((x >> 1) + (y >> 1)) + (x & y & 1)): New simplification |
| to (x & y) + ((x ^ y) >> 1). |
| |
| 2026-08-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((X % C1) % C2): New simplification. |
| |
| 2026-08-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (MIN (MAX (X, Y + CST), Y)): New simplification. |
| (MAX (MIN (X, Y + CST), Y)): Likewise. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mblock-ops-vector-pair): Undo change to |
| make the -mblock-ops-vector-pair option a documented option. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Likewise. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/99293 |
| * config/rs6000/vsx.md (vsx_splat_extract_<mode>): New insn. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/117487 |
| * config/rs6000/vsx.md (SFmode logical peephoole): Update comments in |
| the original code that supports power8. |
| (SFBOOL2_*): New constants. |
| (power9/power10 define_peephol2): Add a new define_peephole2 to optimize |
| float and logical operations on power9/power10/power11 similar to the |
| optimiztion that is done on power8. |
| |
| 2026-08-07 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Enable using load |
| vector pair and store vector pair instructions for memory and string |
| built-in functions. |
| (POWERPC_MASKS): Make -mblock-ops-vector-pair an option that is set by |
| the -mcpu=<xxx> command line option. |
| * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Disable |
| -mblock-ops-vector-pair from influencing .machine selection. |
| * config/rs6000/rs6000.opt (-mblock-ops-vector-pair): Document the |
| option. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document the |
| -mblock-ops-vector-pair option. |
| |
| 2026-08-07 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/64992 |
| * match.pd: Fix two typos and format. |
| |
| 2026-08-06 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/126669 |
| * tree-ssa-strlen.cc (use_in_zero_equality): Remove dead code. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (operator_abs::fold_range): Take the absolute |
| value of each sub-range and union the results. |
| (range_op_float_tests): New test. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (operator_negate::fold_range): Negate each |
| sub-range and union the results. |
| (range_op_float_tests): New test. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (frange_add_zeros): Detect a contained zero with |
| the contains_zero_p method instead of inspecting the hull endpoints. |
| (range_op_float_tests): Test that op1_range for == admits +0.0 for a |
| multi-pair operand holding an inner -0.0. |
| |
| 2026-08-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (X + (X | -X)): New simplification. |
| (X + ((-X) & (C - 1))): Likewise. |
| |
| 2026-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/126685 |
| * config/i386/i386.md (bswaphisi2_lowpart): Use %w operand |
| modifier to emit HImode register name for ROLW alternative. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| PR tree-optimization/126637 |
| * range-op-float.cc (operator_equal::fold_range): Use the |
| contains_zero_p method to detect a contained zero instead of |
| inspecting the hull endpoints. |
| (operator_not_equal::fold_range): Likewise. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (contains_zero_p): Remove the free-standing irange |
| overload. |
| * range-op.cc (operator_equal::op1_op2_relation): Use the |
| irange::contains_zero_p method. |
| (operator_not_equal::op1_op2_relation): Likewise. |
| (operator_lt::op1_op2_relation): Likewise. |
| (operator_le::op1_op2_relation): Likewise. |
| (operator_gt::op1_op2_relation): Likewise. |
| (operator_ge::op1_op2_relation): Likewise. |
| (operator_lshift::op1_range): Likewise. |
| (operator_rshift::op1_range): Likewise. |
| (operator_cast::op1_range): Likewise. |
| (operator_logical_and::fold_range): Likewise. |
| (operator_bitwise_and::wi_fold): Likewise. |
| (operator_bitwise_xor::op1_range): Likewise. |
| (operator_addr_expr::fold_range): Likewise. |
| (operator_addr_expr::op1_range): Likewise. |
| * range-op-float.cc (operator_equal::op1_op2_relation): Likewise. |
| (operator_not_equal::op1_op2_relation): Likewise. |
| (operator_lt::op1_op2_relation): Likewise. |
| (operator_le::op1_op2_relation): Likewise. |
| (operator_gt::op1_op2_relation): Likewise. |
| (operator_ge::op1_op2_relation): Likewise. |
| |
| 2026-08-06 Karl Meakin <karl.meakin@arm.com> |
| |
| PR target/126652 |
| * config/aarch64/arm_neon.h (vaddd_s64, vaddd_u64): Delete |
| function definitions. |
| |
| 2026-08-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_call): Get scalar argument |
| type from the representative call stmt. |
| |
| 2026-08-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-vect-patterns.cc (vect_recog_mulhs_pattern): Do not give up |
| when LHS_TYPE has no vector type. |
| |
| 2026-08-06 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123175 |
| * fold-const.cc (test_vnx4si_v4si): Fixup vec_perm_indices |
| construction. |
| (test_v4si_vnx4si): Likewise. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (vrange::nonzero_p): Remove. |
| (unsupported_range::nonzero_p): Remove. |
| (irange::nonzero_p): Remove. |
| (prange::nonzero_p): Remove. |
| (frange::nonzero_p): Remove. |
| (Value_Range::nonzero_p): Remove. |
| * value-range.cc (unsupported_range::nonzero_p): Remove. |
| (frange::nonzero_p): Remove. |
| (range_tests_misc): Test contains_zero_p instead of nonzero_p. |
| (range_tests_sub_ranges_zero): Likewise. |
| * range-op.cc (range_op_bitwise_and_tests): Likewise. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (get_legacy_range): Compare against a set_nonzero |
| prange instead of calling nonzero_p. |
| * value-range-storage.cc (nonzero_range_p): New. |
| (prange_storage::prange_format): Use it instead of nonzero_p. |
| (prange_storage::equal_p): Likewise. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * gimple-range-path.cc (path_range_query::adjust_for_non_null_uses): |
| Use !contains_zero_p instead of nonzero_p. |
| * tree-ssa-structalias.cc (find_what_p_points_to): Likewise. |
| * tree-ssanames.cc (set_range_info): Likewise. |
| * tree-vrp.cc (execute_ranger_vrp): Likewise. |
| |
| 2026-08-06 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (vrange::contains_zero_p): New pure virtual. |
| (unsupported_range::contains_zero_p): Declare. |
| (irange::contains_zero_p): Declare and define. |
| (prange::contains_zero_p): Declare and define. |
| (frange::contains_zero_p): Declare. |
| (Value_Range::contains_zero_p): New. |
| * value-range.cc (unsupported_range::contains_zero_p): Define. |
| (frange::contains_zero_p): Define. |
| |
| 2026-08-06 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * match.pd: Combine several patterns into fors. |
| |
| 2026-08-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): Extend |
| from SVE_I to SVE_I_SIMD_DI. |
| (@aarch64_pred_<optab><mode>): Likewise for the MUL_HIGHPART form, |
| and print the data operands with %Z. |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve2_<optab><mode>): |
| Likewise. |
| |
| 2026-08-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((X / Y) ==/!= 0): Preserve a possible zero-divisor |
| exception. |
| ((X % Y) ==/!= X): New simplification. Preserve a possible |
| zero-divisor exception. |
| |
| 2026-08-06 Josef Melcr <josef.melcr@suse.com> |
| |
| * attr-callback.cc (callback_build_attr): Use "callback_only" |
| instead of the macro. |
| (callback_edge_callee_has_attr): Likewise. |
| (callback_fetch_attr_by_edge): Likewise. |
| (get_nth_list_elem): Move to c-family/c-attribs.cc. |
| (handle_callback_attribute): Rename to |
| handle_callback_only_attribute, move to c-family/c-attribs.cc. |
| * attr-callback.h (CALLBACK_ATTR_IDENT): Remove the macro. |
| (handle_callback_attribute): Remove the declaration. |
| * builtin-attrs.def (ATTR_CALLBACK): Rename to |
| ATTR_CALLBACK_ONLY. |
| (ATTR_CALLBACK_ONLY): Identifier for the attribute for builtins. |
| (DEF_CALLBACK_ATTRIBUTE): Rename to DEF_CALLBACK_ONLY_ATTRIBUTE. |
| (DEF_CALLBACK_ONLY_ATTRIBUTE): Renamed definition macro for builtins. |
| (GOMP): Use the renamed macro. |
| (ATTR_CALLBACK_GOMP_LIST): Renamed to |
| ATTR_CALLBACK_ONLY_GOMP_LIST. |
| (ATTR_CALLBACK_ONLY_GOMP_LIST): ATTR_NOTHROW_LIST with the |
| callback_only attribute for libgomp functions. |
| * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Use |
| "callback_only" instead of the macro. |
| (cgraph_node::verify_node): Likewise. |
| * doc/extend.texi: Add callback_only attribute docs. |
| * ipa-cp.cc (purge_useless_callback_edges): Use "callback_only" |
| instead of the macro. |
| * ipa-param-manipulation.cc |
| (drop_decl_attribute_if_params_changed_p): Likewise. |
| * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise. |
| * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC): Use the |
| renamed attribute list. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME): Likewise. |
| (BUILT_IN_GOMP_PARALLEL): Likewise. |
| (BUILT_IN_GOMP_PARALLEL_SECTIONS): Likewise. |
| (BUILT_IN_GOMP_TEAMS_REG): Likewise. |
| * tree-core.h: Update the ECF_CB flag comment. |
| |
| 2026-08-06 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/126454 |
| * config/riscv/riscv-opt-popretz.cc (pass_combine_popretz::execute): |
| Stop the backward scan at any use or definition of a0, including |
| those hidden in CALL_INSN_FUNCTION_USAGE or in a PARALLEL. |
| |
| 2026-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): Make |
| last change valid C89. Formatting fix. |
| |
| 2026-08-06 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector): Force VLS |
| constants to mem. |
| |
| 2026-08-06 Jin Ma <jinma@linux.alibaba.com> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_ext_info_t::implied_exts): Return const reference |
| instead of by-value copy. |
| |
| 2026-08-06 Ewan <ewanhai-oc@zhaoxin.com> |
| |
| * config/i386/cpuid.h (__get_cpuid_max): Update comment to |
| document 0x40000000 and 0xC0000000 as valid ext values. |
| (__get_cpuid): Replace "__leaf & 0x80000000" with explicit |
| range checks for Basic, Hypervisor, Extended, and |
| Centaur/Zhaoxin CPUID ranges. |
| (__get_cpuid_count): Likewise. |
| |
| 2026-08-06 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126580 |
| * tree-ssa-phiopt.cc (cond_store_replacement_limited): Allow |
| a load before the store; not removing the store. |
| |
| 2026-08-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd ((X | C) ==/!= (Y | C)): New simplification. |
| |
| 2026-08-06 Matt Turner <mattst88@gmail.com> |
| |
| PR target/124495 |
| * config/alpha/alpha.md (UNSPECV_LDGP2): New unspec_volatile. |
| (*ldgp_er_2_v): New insn. |
| (*builtin_setjmp_receiver_1): Split the second half of the gpdisp |
| pair to it instead of *ldgp_er_2. |
| (*exception_receiver_1): Ditto. |
| |
| 2026-08-06 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_tune_param): Add reassociation |
| widths. |
| (generic_ooo_tune_info): Set reassociation widths. |
| (xt_c9501_tune_info): Likewise. |
| (riscv_reassociation_width): New function. |
| (TARGET_SCHED_REASSOCIATION_WIDTH): Define. |
| |
| 2026-08-06 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-fixed.md: Use alldiv as code iterator for the |
| 16-bit fixed-point insns and expanders of [U]HAmode, [U]HQmode. |
| Support saturated divisions in [U]HAmode, [U]HQmode. |
| |
| 2026-08-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (code_stdname): Add code attributes |
| for: ss_div, us_div, div, udiv. |
| * config/avr/avr-fixed.md (alldiv): New code iterator. |
| Use it in all [U]SAmode division expanders and insns. |
| Use <code_stdname> instead of <code> as needed. |
| |
| 2026-08-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_conversion): Elide op0/op1. |
| (vect_is_simple_use): New overload. |
| (supportable_indirect_convert_operation): Drop optional and |
| unused scalar op argument. |
| * tree-vectorizer.h (supportable_indirect_convert_operation): |
| Adjust prototype. |
| (vect_is_simple_use): New overload. |
| |
| 2026-08-05 Sivan Shani <sivan.shani@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_SVE_AES2): Define. |
| * config/aarch64/aarch64.md (UNSPEC_SSVE_LANE_SELECT): New unspec. |
| * config/aarch64/aarch64-acle-builtins.cc |
| (function_resolver::finish_opt_n_resolution): Add overload taking an |
| sve_type argument. Make the existing overload delegate to it. |
| * config/aarch64/aarch64-acle-builtins.h |
| (function_resolver::finish_opt_n_resolution): Declare the new overload. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_SVE_AES2 and __ARM_FEATURE_SSVE_AES. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (unspec_based_aes_lane_function): New typedef. |
| (unspec_based_aes_lane_mc_function): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (binary_to_pair_opt_n_def): New shape. |
| (ternary_to_pair_opt_n_def): Likewise. |
| (binary_aes_lane_def): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: Declare new shapes. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc: Add new function |
| entries. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: Add new ACLE |
| builtin definitions. |
| * config/aarch64/aarch64-sve-builtins-sve2.h: Declare new functions. |
| * config/aarch64/aarch64-sve2.md: Add PMULL/PMLAL pair and AES |
| indexed multi-vector patterns. |
| * config/aarch64/iterators.md: Add iterators and attrs for new |
| patterns. |
| * config/aarch64/predicates.md (const_0_to_3_operand): New predicate. |
| |
| 2026-08-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_vec_defs): Adjust to take |
| bool instead of tree arguments. |
| * tree-vect-stmts.cc (vect_get_vec_defs): Likewise. |
| (vectorizable_bswap): Simplify. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison_1): Likewise. |
| * tree-vect-loop.cc (vect_transform_lc_phi): Likewise. |
| |
| 2026-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126650 |
| * tree-affine.cc (get_inner_reference_aff): Fixup rounding |
| of size. |
| |
| 2026-08-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * fold-const.cc (split_address_to_core_and_offset): Use STRIP_NOPS. |
| * match.pd ((&a + b) !=/== (&a[1] + c) -> (&a[0] - &a[1]) + b !=/== c): |
| Don't require captures to be ADDR_EXPR. |
| ((&a+b) - (&a[1] + c) -> sizeof(a[0]) + (b - c)): Likewise. |
| ((p + b) - &p->d -> offsetof (*p, d) + b): Likewise. |
| (Try folding difference of addresses): Likewise. Remove |
| redundant simplifications because of that. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h (_mm_cvts_bf8_bf6): New intrin. |
| (_mm256_cvts_bf8_bf6): Ditto. |
| (_mm512_cvts_bf8_bf6): Ditto. |
| (_mm_cvts_hf8_hf6): Ditto. |
| (_mm256_cvts_hf8_hf6): Ditto. |
| (_mm512_cvts_hf8_hf6): Ditto. |
| (_mm_cvtbf6_hf8): Ditto. |
| (_mm_mask_cvtbf6_hf8): Ditto. |
| (_mm_maskz_cvtbf6_hf8): Ditto. |
| (_mm256_cvtbf6_hf8): Ditto. |
| (_mm256_mask_cvtbf6_hf8): Ditto. |
| (_mm256_maskz_cvtbf6_hf8): Ditto. |
| (_mm512_cvtbf6_hf8): Ditto. |
| (_mm512_mask_cvtbf6_hf8): Ditto. |
| (_mm512_maskz_cvtbf6_hf8): Ditto. |
| (_mm_cvthf6_hf8): Ditto. |
| (_mm_mask_cvthf6_hf8): Ditto. |
| (_mm_maskz_cvthf6_hf8): Ditto. |
| (_mm256_cvthf6_hf8): Ditto. |
| (_mm256_mask_cvthf6_hf8): Ditto. |
| (_mm256_maskz_cvthf6_hf8): Ditto. |
| (_mm512_cvthf6_hf8): Ditto. |
| (_mm512_mask_cvthf6_hf8): Ditto. |
| (_mm512_maskz_cvthf6_hf8): Ditto. |
| * config/i386/i386-builtin.def (BDESC): New builtins. |
| * config/i386/sse.md (vcvt<convertfp82fp6s><mode>): New. |
| (vcvt<convertfp62hf8><mode><mask_name>): Ditto. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h (_mm_cvts_bf8_bf4): New intrin. |
| (_mm256_cvts_bf8_bf4): Ditto. |
| (_mm512_cvts_bf8_bf4): Ditto. |
| (_mm_cvts_hf8_bf4): Ditto. |
| (_mm256_cvts_hf8_bf4): Ditto. |
| (_mm512_cvts_hf8_bf4): Ditto. |
| (_mm_cvtbf4_hf8): Ditto. |
| (_mm_mask_cvtbf4_hf8): Ditto. |
| (_mm_maskz_cvtbf4_hf8): Ditto. |
| (_mm256_cvtbf4_hf8): Ditto. |
| (_mm256_mask_cvtbf4_hf8): Ditto. |
| (_mm256_maskz_cvtbf4_hf8): Ditto. |
| (_mm512_cvtbf4_hf8): Ditto. |
| (_mm512_mask_cvtbf4_hf8): Ditto. |
| (_mm512_maskz_cvtbf4_hf8): Ditto. |
| * config/i386/i386-builtin-types.def : New function types. |
| * config/i386/i386-builtin.def (BDESC): New builtins. |
| * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle new function types. |
| * config/i386/sse.md (vcvt<convertfp82bf4s>v16qi): New. |
| (*vcvt<convertfp82bf4s>v16qi): Ditto. |
| (vcvt<convertfp82bf4s><mode>): Ditto. |
| (vcvtbf42hf8<mode><mask_name>): Ditto. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h (_mm_cvtbf8_ps): New intrins. |
| (_mm_mask_cvtbf8_ps): Ditto. |
| (_mm_maskz_cvtbf8_ps): Ditto. |
| (_mm256_cvtbf8_ps): Ditto. |
| (_mm256_mask_cvtbf8_ps): Ditto. |
| (_mm256_maskz_cvtbf8_ps): Ditto. |
| (_mm512_cvtbf8_ps): Ditto. |
| (_mm512_mask_cvtbf8_ps): Ditto. |
| (_mm512_maskz_cvtbf8_ps): Ditto. |
| (_mm_cvthf8_ps): Ditto. |
| (_mm_mask_cvthf8_ps): Ditto. |
| (_mm_maskz_cvthf8_ps): Ditto. |
| (_mm256_cvthf8_ps): Ditto. |
| (_mm256_mask_cvthf8_ps): Ditto. |
| (_mm256_maskz_cvthf8_ps): Ditto. |
| (_mm512_cvthf8_ps): Ditto. |
| (_mm512_mask_cvthf8_ps): Ditto. |
| (_mm512_maskz_cvthf8_ps): Ditto. |
| * config/i386/i386-builtin-types.def: New function types. |
| * config/i386/i386-builtin.def (BDESC): New builtins for avx10v2aux. |
| * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle new function types. |
| * config/i386/sse.md (vcvt<convertfp82ps><mode><mask_name>): New. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h (_mm_cvtbiasps_bf8): New intrin. |
| (_mm_mask_cvtbiasps_bf8): Ditto. |
| (_mm_maskz_cvtbiasps_bf8): Ditto. |
| (_mm256_cvtbiasps_bf8): Ditto. |
| (_mm256_mask_cvtbiasps_bf8): Ditto. |
| (_mm256_maskz_cvtbiasps_bf8): Ditto. |
| (_mm512_cvtbiasps_bf8): Ditto. |
| (_mm512_mask_cvtbiasps_bf8): Ditto. |
| (_mm512_maskz_cvtbiasps_bf8): Ditto. |
| (_mm_cvts_biasps_bf8): Ditto. |
| (_mm_mask_cvts_biasps_bf8): Ditto. |
| (_mm_maskz_cvts_biasps_bf8): Ditto. |
| (_mm256_cvts_biasps_bf8): Ditto. |
| (_mm256_mask_cvts_biasps_bf8): Ditto. |
| (_mm256_maskz_cvts_biasps_bf8): Ditto. |
| (_mm512_cvts_biasps_bf8): Ditto. |
| (_mm512_mask_cvts_biasps_bf8): Ditto. |
| (_mm512_maskz_cvts_biasps_bf8): Ditto. |
| (_mm_cvtbiasps_hf8): Ditto. |
| (_mm_mask_cvtbiasps_hf8): Ditto. |
| (_mm_maskz_cvtbiasps_hf8): Ditto. |
| (_mm256_cvtbiasps_hf8): Ditto. |
| (_mm256_mask_cvtbiasps_hf8): Ditto. |
| (_mm256_maskz_cvtbiasps_hf8): Ditto. |
| (_mm512_cvtbiasps_hf8): Ditto. |
| (_mm512_mask_cvtbiasps_hf8): Ditto. |
| (_mm512_maskz_cvtbiasps_hf8): Ditto. |
| (_mm_cvts_biasps_hf8): Ditto. |
| (_mm_mask_cvts_biasps_hf8): Ditto. |
| (_mm_maskz_cvts_biasps_hf8): Ditto. |
| (_mm256_cvts_biasps_hf8): Ditto. |
| (_mm256_mask_cvts_biasps_hf8): Ditto. |
| (_mm256_maskz_cvts_biasps_hf8): Ditto. |
| (_mm512_cvts_biasps_hf8): Ditto. |
| (_mm512_mask_cvts_biasps_hf8): Ditto. |
| (_mm512_maskz_cvts_biasps_hf8): Ditto. |
| * config/i386/i386-builtin-types.def (V16QI): New function types. |
| * config/i386/i386-builtin.def (BDESC): New builtins. |
| * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle new function types. |
| * config/i386/sse.md (vcvt<biasps2fp8>v4sf): New. |
| (*vcvt<biasps2fp8>v4sf): Ditto. |
| (vcvt<biasps2fp8>v8sf): Ditto. |
| (*vcvt<biasps2fp8>v8sf): Ditto. |
| (vcvt<biasps2fp8>v4sf_mask): Ditto. |
| (*vcvt<biasps2fp8>v4sf_mask): Ditto. |
| (vcvt<biasps2fp8>v8sf_mask): Ditto. |
| (*vcvt<biasps2fp8>v8sf_mask): Ditto. |
| (vcvt<biasps2fp8>v16sf<mask_name>): Ditto. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/avx10v2auxintrin.h:(_mm_cvtrops_hf8): New intrins. |
| (_mm_mask_cvtrops_hf8): Ditto. |
| (_mm_maskz_cvtrops_hf8): Ditto. |
| (_mm256_cvtrops_hf8): Ditto. |
| (_mm256_mask_cvtrops_hf8): Ditto. |
| (_mm256_maskz_cvtrops_hf8): Ditto. |
| (_mm512_cvtrops_hf8): Ditto. |
| (_mm512_mask_cvtrops_hf8): Ditto. |
| (_mm512_maskz_cvtrops_hf8): Ditto. |
| (_mm_cvts_rops_hf8): Ditto. |
| (_mm_mask_cvts_rops_hf8): Ditto. |
| (_mm_maskz_cvts_rops_hf8): Ditto. |
| (_mm256_cvts_rops_hf8): Ditto. |
| (_mm256_mask_cvts_rops_hf8): Ditto. |
| (_mm256_maskz_cvts_rops_hf8): Ditto. |
| (_mm512_cvts_rops_hf8): Ditto. |
| (_mm512_mask_cvts_rops_hf8): Ditto. |
| (_mm512_maskz_cvts_rops_hf8): Ditto. |
| * config/i386/i386-builtin.def (BDESC): New avx10v2aux builtins. |
| * config/i386/sse.md: Add RTO UNSPEC. |
| |
| 2026-08-05 Dipesh Sharma <Dipesh.Sharma@amd.com> |
| Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): Add AVX10V2AUX. |
| * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX10V2AUX_SET): New. |
| (OPTION_MASK_ISA2_AVX10_1_UNSET): Disable AVX10_1. |
| (OPTION_MASK_ISA2_AVX10V2AUX_UNSET): New. |
| (ix86_handle_option): Handle AVX10V2AUX. |
| * common/config/i386/i386-cpuinfo.h (enum processor_features): Add FEATURE_AVX10V2AUX. |
| * common/config/i386/i386-isas.h: Handle avx10v2aux. |
| * config.gcc: Include avx10v2auxintrin.h. |
| * config/i386/cpuid.h (bit_AVX10V2AUX): New. |
| * config/i386/i386-builtin-types.def: Add new function type. |
| * config/i386/i386-builtin.def (BDESC): New AVX10V2AUX builtins. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Handle avx10v2aux. |
| * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle avx10v2aux function types. |
| * config/i386/i386-isa.def (AVX10V2AUX): New DEF_PTA |
| * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p): Handle avx10v2aux. |
| * config/i386/i386.opt: Add avx10v2aux. |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/i386/immintrin.h: Include avx10v2auxintrin.h. |
| * config/i386/sse.md (vcvt<convertps2fp8>v4sf): New. |
| (*vcvt<convertps2fp8>v4sf): Ditto. |
| (vcvt<convertps2fp8>v8sf): Ditto. |
| (*vcvt<convertps2fp8>v8sf): Ditto. |
| (vcvt<convertps2fp8>v4sf_mask): Ditto. |
| (*vcvt<convertps2fp8>v4sf_mask): Ditto. |
| (vcvt<convertps2fp8>v8sf_mask): Ditto. |
| (*vcvt<convertps2fp8>v8sf_mask): Ditto. |
| (vcvt<convertps2fp8>v16sf<mask_name>): Ditto. |
| * doc/extend.texi: Add avx10v2aux documentation. |
| * doc/invoke.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| * config/i386/avx10v2auxintrin.h: New file. |
| |
| 2026-08-05 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/56223 |
| * match.pd (X >=/> 0 ? Y + X : Y - X): New simplification. |
| (X <=/< 0 ? Y - X : Y + X): Likewise. |
| |
| 2026-08-05 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/125708 |
| * expr.cc: Include gimple-range.h. |
| (near_pow2_divisor_range_p): New function. |
| (expand_expr_divmod): Split eligible TRUNC_DIV_EXPRs into two |
| constant divisions selected by a conditional move. |
| |
| 2026-08-05 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * mem-stats.h (mem_alloc_description::mem_alloc_description): Make |
| private. |
| (mem_alloc_description::~mem_alloc_description): Disallow |
| destruction entirely. |
| (mem_alloc_description::instance): New function. |
| * alloc-pool.cc (dump_alloc_pool_statistics): Adapt to |
| pool_allocator_usage being a function instead of a variable. |
| * alloc-pool.h (pool_allocator_usage): New function. |
| (TBlockAllocator>::initialize): Adapt to |
| pool_allocator_usage being a function instead of a variable. |
| (TBlockAllocator>::release): Likewise. |
| (TBlockAllocator>::allocate): Likewise. |
| (TBlockAllocator>::remove): Likewise. |
| * bitmap.cc (bitmap_mem_desc): Change from a static variable to an |
| inline function. |
| (bitmap_register): Adapt to bitmap_mem_desc being a function instead |
| of a variable. |
| (register_overhead): Likewise. |
| (release_overhead): Likewise. |
| (bitmap_list_find_element): Likewise. |
| (bitmap_tree_splay): Likewise. |
| (bitmap_tree_find_element): Likewise. |
| (dump_bitmap_statistics): Likewise. |
| * bitmap.h (bitmap_mem_desc): Remove unneeded extern declaration. |
| * ggc-common.cc (ggc_mem_desc): Change from a static variable to an |
| inline function. |
| (ggc_record_overhead): Adapt to ggc_mem_desc being a function |
| instead of a variable. |
| (ggc_free_overhead): Likewise |
| (ggc_prune_overhead_list): Likewise. |
| * vec.cc (vec_mem_desc): Change from a static variable to a |
| function. |
| (vec_prefix::register_overhead): Adapt to vec_mem_desc being a |
| function instead of a variable. |
| (vec_prefix::release_overhead): Likewise. |
| (dump_vec_loc_statistics): Likewise. |
| * hash-table.cc (hash_table_usage): Move to... |
| * hash-table.h (hash_table_usage): ...here, and use new singleton |
| interface. |
| |
| 2026-08-05 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR middle-end/28734 |
| * mem-stats.h (mem_alloc_description::release_object_overhead): |
| Handle the case that PTR was not found in the hash map, which can |
| happen after PCH restore. |
| |
| 2026-08-04 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/126550 |
| * config/riscv/riscv-v.cc (expand_const_vector_single_step_npatterns): |
| User global builder's npatterns. |
| |
| 2026-08-04 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126242 |
| PR tree-optimization/126325 |
| * match.pd ((FTYPE) N CMP CST): Always attempt to initialize |
| value range information. Check undefined_p before using range |
| bounds. Check that icst_val hasn't overflowed, i.e. that |
| (FTYPE)ICST == CST, before transforming to integer comparison. |
| |
| 2026-08-04 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/100173 |
| * fold-const.h (safe_operand_equal_p): New function. |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): Add simple |
| support for TARGET_MEM_REF. |
| |
| 2026-08-04 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| Revert: |
| 2026-08-04 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add atom match recognizers for long-multiply |
| (mul_hi, mul_lo, mul_hilo, mul_lolo, mul_hihi, mul_cross_sum, |
| mul_low_sum, mul_low_accum, mul_carry_cross_sum, |
| mul_carry_low_sum, mul_carry_low, mul_ladder_sum1, |
| mul_ladder_sum2, mul_ladder_sum3, mul_ladder_part_sum), the |
| cond_carry_add and cond_carry_add_neg recognizers for the 2-arg |
| PHI carry form, one per gcond polarity, and long_mul_high_chain |
| for the emitted chain shape. |
| * tree-ssa-forwprop.cc (gimple_cond_carry_add): Declare. |
| (gimple_cond_carry_add_neg): Likewise. |
| (gimple_mul_hi): Likewise. |
| (gimple_mul_lo): Likewise. |
| (gimple_mul_hilo): Likewise. |
| (gimple_mul_lolo): Likewise. |
| (gimple_mul_hihi): Likewise. |
| (gimple_mul_cross_sum): Likewise. |
| (gimple_mul_low_sum): Likewise. |
| (gimple_mul_low_accum): Likewise. |
| (gimple_mul_carry_cross_sum): Likewise. |
| (gimple_mul_carry_low_sum): Likewise. |
| (gimple_mul_carry_low): Likewise. |
| (gimple_mul_ladder_sum1): Likewise. |
| (gimple_mul_ladder_sum2): Likewise. |
| (gimple_mul_ladder_sum3): Likewise. |
| (gimple_mul_ladder_part_sum): Likewise. |
| (build_mul_high_seq): New, emits (N)(((2N) op1 * (2N) op2) >> N) |
| into a caller-supplied destination. |
| (long_mul_apply_extras): New, combines the preserved addends back |
| on top of the folded multiply. |
| (create_mul_high_seq): New, replaces the statement with the |
| high-part multiply plus any extras. |
| (create_mul_low_seq): New, likewise for the low part. |
| (enum long_mul_kind): New. |
| (enum long_mul_extract): New. |
| (struct long_mul_summand): New. |
| (long_mul_linearize_chain): New, walks the outer add/ior chain |
| into a multiset of leaves. |
| (long_mul_is_lshift_def): New. |
| (long_mul_set_summand): New. |
| (long_mul_classify_carry): New, most-specific carry atom first. |
| (long_mul_classify_plus_kinds): New, likewise by specificity. |
| (long_mul_classify_hi_extract): New. |
| (long_mul_classify_lo_extract): New. |
| (long_mul_classify_shl_extract): New. |
| (long_mul_classify_bare): New. |
| (long_mul_classify_summand): New, classify a summand via the |
| match.pd atoms. |
| (long_mul_summand_compare): New. |
| (struct long_mul_row): New. |
| (long_mul_same_ops): New. |
| (long_mul_is_cross_half): New. |
| (long_mul_hilo_orientation): New, orientation of a mul_hilo |
| capture relative to (op0, op1). |
| (long_mul_canonical_ops): New. |
| (long_mul_find_summand): New. |
| (long_mul_check_consistency): New, cross-summand consistency |
| check (operand pairing, half-width shifts, hilo cross-half). |
| (long_mul_signature_matches): New. |
| (long_mul_check_two_carries): New extra check, validates the |
| two-carry row's carry operands against the canonical (op0, op1). |
| (long_mul_check_low_plus_defer): New extra check, defers the |
| low-plus row while a GT/LT/GE/LE use shares an operand with the |
| PLUS. |
| (long_mul_hint_shared_intermediate): New, dump-file hint pointing |
| at a shared inner addition. |
| (long_mul_classify_match): New, looks a summand multiset up in |
| long_mul_table, runs the per-row checks, and gates the high-part |
| emit on optimize_widening_mul_active_p. |
| (long_mul_classify_chain): New, linearize plus classify plus |
| table lookup; sets aside leaves that classify as no summand and |
| takes an optional pre-classified summand. |
| (match_long_mul): New, top-level entry: starts only at a chain |
| end and dispatches to create_mul_high_seq / create_mul_low_seq |
| with any preserved addends. |
| (match_long_mul_phi): New PHI-driven entry, recognizes a |
| cond_carry_add(_neg) PHI and folds the long-multiply shape when |
| the rest of the high-part chain matches. |
| (pass_forwprop::execute): Call match_long_mul on PLUS_EXPR and |
| BIT_IOR_EXPR statements, and match_long_mul_phi on each PHI in |
| the degenerate-PHI walk. |
| * tree-ssa-math-opts.cc (can_widen_to_narrow_p): New. |
| (build_long_mul_partials): New, emits the four partial products |
| using widening or plain multiplies. |
| (emit_long_mul_highpart): New, the high N bits of an N-bit |
| product, as a longhand over (N/2)-bit partials. |
| (combine_long_mul_halves): New, the high N bits of a product of |
| two 2N-bit values given as N-bit halves. |
| (long_mul_op_fits_p): New, true when an operand is provably |
| representable in narrow_prec unsigned bits. |
| (long_mul_split_operand): New, splits an operand into N-bit |
| halves using only N-bit operations. |
| (long_mul_only_low_half_used_p): New. |
| (narrow_long_mul_low_half): New, narrow a 2N low-half-only mult |
| the target cannot expand to an N-bit mult. |
| (narrow_long_mul_operands): New, recurse into chained wide |
| products after a narrowing/lowering. |
| (gimple_long_mul_high_chain): Declare. |
| (lower_long_mul_high_chain): New, lowers the high-part chain to a |
| longhand at narrow precision, splitting each operand into N-bit |
| halves and combining them, then narrowing or dropping the |
| residual 2N mult via the helpers. |
| (optimize_widening_mul_active_p): New, shared gate used by |
| pass_optimize_widening_mul::gate and by the forwprop long-multiply |
| recognizer. Return false when optimize_debug. |
| (math_opts_dom_walker::after_dom_children): Dispatch to |
| lower_long_mul_high_chain on the outer convert. Run |
| narrow_long_mul_low_half on MULT_EXPR before the widen/fma |
| conversion attempts. |
| * tree-ssa-math-opts.h (optimize_widening_mul_active_p): Declare. |
| |
| 2026-08-04 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/107090 |
| * match.pd: Add atom match recognizers for long-multiply |
| (mul_hi, mul_lo, mul_hilo, mul_lolo, mul_hihi, mul_cross_sum, |
| mul_low_sum, mul_low_accum, mul_carry_cross_sum, |
| mul_carry_low_sum, mul_carry_low, mul_ladder_sum1, |
| mul_ladder_sum2, mul_ladder_sum3, mul_ladder_part_sum), the |
| cond_carry_add and cond_carry_add_neg recognizers for the 2-arg |
| PHI carry form, one per gcond polarity, and long_mul_high_chain |
| for the emitted chain shape. |
| * tree-ssa-forwprop.cc (gimple_cond_carry_add): Declare. |
| (gimple_cond_carry_add_neg): Likewise. |
| (gimple_mul_hi): Likewise. |
| (gimple_mul_lo): Likewise. |
| (gimple_mul_hilo): Likewise. |
| (gimple_mul_lolo): Likewise. |
| (gimple_mul_hihi): Likewise. |
| (gimple_mul_cross_sum): Likewise. |
| (gimple_mul_low_sum): Likewise. |
| (gimple_mul_low_accum): Likewise. |
| (gimple_mul_carry_cross_sum): Likewise. |
| (gimple_mul_carry_low_sum): Likewise. |
| (gimple_mul_carry_low): Likewise. |
| (gimple_mul_ladder_sum1): Likewise. |
| (gimple_mul_ladder_sum2): Likewise. |
| (gimple_mul_ladder_sum3): Likewise. |
| (gimple_mul_ladder_part_sum): Likewise. |
| (build_mul_high_seq): New, emits (N)(((2N) op1 * (2N) op2) >> N) |
| into a caller-supplied destination. |
| (long_mul_apply_extras): New, combines the preserved addends back |
| on top of the folded multiply. |
| (create_mul_high_seq): New, replaces the statement with the |
| high-part multiply plus any extras. |
| (create_mul_low_seq): New, likewise for the low part. |
| (enum long_mul_kind): New. |
| (enum long_mul_extract): New. |
| (struct long_mul_summand): New. |
| (long_mul_linearize_chain): New, walks the outer add/ior chain |
| into a multiset of leaves. |
| (long_mul_is_lshift_def): New. |
| (long_mul_set_summand): New. |
| (long_mul_classify_carry): New, most-specific carry atom first. |
| (long_mul_classify_plus_kinds): New, likewise by specificity. |
| (long_mul_classify_hi_extract): New. |
| (long_mul_classify_lo_extract): New. |
| (long_mul_classify_shl_extract): New. |
| (long_mul_classify_bare): New. |
| (long_mul_classify_summand): New, classify a summand via the |
| match.pd atoms. |
| (long_mul_summand_compare): New. |
| (struct long_mul_row): New. |
| (long_mul_same_ops): New. |
| (long_mul_is_cross_half): New. |
| (long_mul_hilo_orientation): New, orientation of a mul_hilo |
| capture relative to (op0, op1). |
| (long_mul_canonical_ops): New. |
| (long_mul_find_summand): New. |
| (long_mul_check_consistency): New, cross-summand consistency |
| check (operand pairing, half-width shifts, hilo cross-half). |
| (long_mul_signature_matches): New. |
| (long_mul_check_two_carries): New extra check, validates the |
| two-carry row's carry operands against the canonical (op0, op1). |
| (long_mul_check_low_plus_defer): New extra check, defers the |
| low-plus row while a GT/LT/GE/LE use shares an operand with the |
| PLUS. |
| (long_mul_hint_shared_intermediate): New, dump-file hint pointing |
| at a shared inner addition. |
| (long_mul_classify_match): New, looks a summand multiset up in |
| long_mul_table, runs the per-row checks, and gates the high-part |
| emit on optimize_widening_mul_active_p. |
| (long_mul_classify_chain): New, linearize plus classify plus |
| table lookup; sets aside leaves that classify as no summand and |
| takes an optional pre-classified summand. |
| (match_long_mul): New, top-level entry: starts only at a chain |
| end and dispatches to create_mul_high_seq / create_mul_low_seq |
| with any preserved addends. |
| (match_long_mul_phi): New PHI-driven entry, recognizes a |
| cond_carry_add(_neg) PHI and folds the long-multiply shape when |
| the rest of the high-part chain matches. |
| (pass_forwprop::execute): Call match_long_mul on PLUS_EXPR and |
| BIT_IOR_EXPR statements, and match_long_mul_phi on each PHI in |
| the degenerate-PHI walk. |
| * tree-ssa-math-opts.cc (can_widen_to_narrow_p): New. |
| (build_long_mul_partials): New, emits the four partial products |
| using widening or plain multiplies. |
| (emit_long_mul_highpart): New, the high N bits of an N-bit |
| product, as a longhand over (N/2)-bit partials. |
| (combine_long_mul_halves): New, the high N bits of a product of |
| two 2N-bit values given as N-bit halves. |
| (long_mul_op_fits_p): New, true when an operand is provably |
| representable in narrow_prec unsigned bits. |
| (long_mul_split_operand): New, splits an operand into N-bit |
| halves using only N-bit operations. |
| (long_mul_only_low_half_used_p): New. |
| (narrow_long_mul_low_half): New, narrow a 2N low-half-only mult |
| the target cannot expand to an N-bit mult. |
| (narrow_long_mul_operands): New, recurse into chained wide |
| products after a narrowing/lowering. |
| (gimple_long_mul_high_chain): Declare. |
| (lower_long_mul_high_chain): New, lowers the high-part chain to a |
| longhand at narrow precision, splitting each operand into N-bit |
| halves and combining them, then narrowing or dropping the |
| residual 2N mult via the helpers. |
| (optimize_widening_mul_active_p): New, shared gate used by |
| pass_optimize_widening_mul::gate and by the forwprop long-multiply |
| recognizer. Return false when optimize_debug. |
| (math_opts_dom_walker::after_dom_children): Dispatch to |
| lower_long_mul_high_chain on the outer convert. Run |
| narrow_long_mul_low_half on MULT_EXPR before the widen/fma |
| conversion attempts. |
| * tree-ssa-math-opts.h (optimize_widening_mul_active_p): Declare. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * match.pd (((X + C1) & LOWMASK) ==/!= C2): New simplification. |
| ((X & HIGHMASK) >/<= C): Likewise. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126593 |
| * tree-vect-slp-patterns.cc (compatible_complex_nodes_p): Check def |
| stmts of real and imag pairs. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126301 |
| * tree-vect-loop-manip.cc (vect_use_loop_latch_condition_p): New. |
| (vect_set_loop_condition_partial_vectors, vect_set_loop_condition): Use |
| it to rewrite latch and condition. |
| (vect_set_loop_controls_directly): Adjust IV for do-loop conversion. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126592 |
| * tree-vect-slp-patterns.cc (is_linear_load_p): Rewrite using |
| vec_perm_indices. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/126589 |
| * config/aarch64/aarch64-simd.md (cmul<conj_op><mode>3): Require not |
| honor signed zeros. |
| * config/aarch64/aarch64-sve.md (cmul<conj_op><mode>3): Require not |
| honor signed zeros. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/126589 |
| * tree-vect-slp-patterns.cc (vect_validate_multiplication): Refactor. |
| (vect_validate_multiplication_commutative): New. |
| (complex_mul_pattern::matches, complex_fms_pattern::matches): Use it. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126602 |
| * match.pd: Fix constraints. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h (map_to_rtx_codes): Make |
| arguments default to `UNSPEC_NONE`. |
| (map_to_unspecs): Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (unspec_based_function_base): Make arguments default to |
| `UNSPEC_NONE`. |
| (sme_1mode_function): Likewise. |
| (integer_conversion): Likewise. |
| (reduction): Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.cc (svbic_impl): |
| Delete unnecessary `UNSPEC_NONE` arguments. |
| (svcmla_impl): Likewise. |
| (svnot_impl): Likewise. |
| (svsub_impl): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (svadd_write_za): Likewise. |
| (svaddha_za): Likewise. |
| (svbmopa_za): Likewise. |
| (svbmops_za): Likewise. |
| (svsudot_lane_za): Likewise. |
| (svsuvdot_lane_za): Likewise. |
| (svsumopa_za): Likewise. |
| (svsumops_za): Likewise. |
| (svusdot_za): Likewise. |
| (svusdot_lane_za): Likewise. |
| (svusbdot_lane_za): Likewise. |
| (svusmopa_za): Likewise. |
| (svusmops_za): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (svqcadd_impl): Likewise. |
| (svqrshl_impl): Likewise. |
| (svqshl_impl): Likewise. |
| (svrshl_impl): Likewise. |
| (svuqadd_impl): Likewise. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (struct |
| aarch64_pragma_builtins_data): Change type to `unspec`. |
| (aarch64_get_low_unspec): Likewise. |
| (aarch64_expand_fpsr_fpcr_setter): Likewise. |
| (aarch64_expand_tbl_tbx): Add `default` case to `switch` statement to silence warning. |
| * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla): Change type to `unspec`. |
| (unspec_fcmla): Likewise. |
| (unspec_cond_fcmla): Likewise. |
| (expand_mla_mls_lane): Likewise. |
| (svac_impl): Likewise. |
| (svbrk_binary_impl): Likewise. |
| (svbrk_unary_impl): Likewise. |
| (svclast_impl): Likewise. |
| (svcmla_impl): Likewise. |
| (svcmp_impl): Likewise. |
| (svcmp_wide_impl): Likewise. |
| (svcvt_impl): Likewise. |
| (svlast_impl): Likewise. |
| (svldxf1_impl): Likewise. |
| (svldxf1_extend_impl): Likewise. |
| (svnot_impl): Likewise. |
| (svpfirst_svpnext_impl): Likewise. |
| (svrint_impl): Likewise. |
| (svsel_impl): Likewise. |
| (svwhilelx_impl): Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h(rtx_code_function_base): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc (expand_ld1_st1): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (expand_ld1_st1): Likewise. |
| * config/aarch64/aarch64-acle-builtins.cc (function_expander::map_to_rtx_codes): Likewise. |
| (function_expander::map_to_unspecs): Likewise. |
| * config/aarch64/aarch64-acle-builtins.h: Likewise. |
| * config/aarch64/aarch64.cc (aarch64_replace_reg_mode): Likewise. |
| (aarch64_split_sve_subreg_move): Likewise. |
| (aarch_pac_insn_p): Likewise. |
| (aarch64_evpc_hvla): Likewise. |
| * config/aarch64/aarch64.md: Add `UNSPEC_NONE` enum member. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.h (enum aarch64_type_qualifiers): Use shifts. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.cc (VECTOR_TYPE_none): |
| Delete preprocessor macro. |
| * config/aarch64/aarch64-acle-builtins.h (VECTOR_TYPE_none): Add |
| enum member. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (DEF_SIMD_TYPE): Reformat. |
| * config/aarch64/aarch64-acle-builtins.cc (vector_types): Likewise. |
| (mode_suffixes): Likewise. |
| (group_suffixes): Likewise. |
| (function_groups): Likewise. |
| (neon_sve_function_groups): Likewise. |
| (sme_function_groups): Likewise. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.h (DEF_SIMD_TYPE): Use |
| variadic arguments. |
| * config/aarch64/aarch64-acle-builtins.h (DEF_SVE_TYPE): Likewise. |
| (DEF_SVE_MODE): Likewise. |
| (DEF_SVE_NEON_TYPE_SUFFIX): Likewise. |
| (DEF_SME_ZA_SUFFIX): Likewise. |
| (DEF_SVE_GROUP_SUFFIX): Likewise. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.def (DEF_SVE_TYPE_SUFFIX): Define |
| in terms of `DEF_SVE_NEON_TYPE_SUFFIX`. |
| * config/aarch64/aarch64-acle-builtins.cc (DEF_SVE_TYPE_SUFFIX): Delete |
| since it is now defined in terms of `DEF_SVE_NEON_TYPE_SUFFIX`. |
| (DEF_SVE_NEON_TYPE_SUFFIX): Move to be next to `DEF_SVE_TYPE_SUFFIX`. |
| * config/aarch64/aarch64-acle-builtins.h (DEF_SVE_TYPE_SUFFIX): Rename to ... |
| (DEF_SVE_NEON_TYPE_SUFFIX): ... here. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-sve-bridge-builtins.def (DEF_NEON_SVE_FUNCTION): Document. |
| * config/aarch64/aarch64-simd-builtin-types.def (DEF_SIMD_TYPE): Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.def (DEF_SVE_FUNCTION_GS_FPM): Likewise. |
| (DEF_SVE_FUNCTION_GS): Likewise. |
| (DEF_SVE_FUNCTION): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.def (DEF_SME_FUNCTION): Likewise. |
| (DEF_SME_FUNCTION_GS): Likewise. |
| (DEF_SME_ZA_FUNCTION_GS): Likewise. |
| (DEF_SME_ZA_FUNCTION): Likewise. |
| * config/aarch64/aarch64-sve-builtins.def (DEF_SVE_MODE): Likewise. |
| (DEF_SVE_TYPE): Likewise. |
| (DEF_SVE_TYPE_SUFFIX): Likewise. |
| (DEF_SME_ZA_SUFFIX): Likewise. |
| (DEF_SVE_GROUP_SUFFIX): Likewise. |
| (DEF_SVE_FUNCTION_GS_FPM): Likewise. |
| (DEF_SVE_FUNCTION_GS): Likewise. |
| (DEF_SVE_NEON_TYPE_SUFFIX): Likewise. |
| (DEF_SVE_FUNCTION): Likewise. |
| |
| 2026-08-04 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (ENTRY): Rename to ... |
| (DEF_SIMD_TYPE): Here. |
| * config/aarch64/aarch64-builtins.h (ENTRY): Likewise. |
| (DEF_SIMD_TYPE): Likewise. |
| * config/aarch64/aarch64-simd-builtin-types.def (ENTRY): Likewise. |
| (DEF_SIMD_TYPE): Likewise. |
| * config/aarch64/aarch64-acle-builtins.h (ENTRY): Likewise. |
| (DEF_SIMD_TYPE): Likewise. |
| |
| 2026-08-04 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126369 |
| * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): Move |
| DR_SCALAR_KNOWN_BOUNDS safe speculation check. |
| |
| 2026-08-04 Aleksa Paunovic <aleksa.paunovic@htecgroup.com> |
| |
| * config/riscv/riscv.cc (riscv_subword_address): Add emit_move_insn for big-endian. |
| |
| 2026-08-04 Shreya Munnangi <smunnang@qti.qualcomm.com> |
| |
| PR target/108031 |
| * config/riscv/predicates.md (riscv_atomic_memory_operand): New |
| predicate. |
| * config/riscv/sync.md (<atomic_optab><mode> pattern and expander): |
| Use riscv_atomic_memory_operand. |
| (amo_atomic_<atomic_optab><mode>): Likewise. |
| (lrsc_atomic_<atomic_optab><mode>): Likewise. |
| (atomic_fetch_<atomic_optab><mode): Likewise. |
| (amo_atomic_fetch_<atomic_optab><mode>): Likewise. |
| (lrsc_atomic_fetch_<atomic_optab><mode>): Likewise. |
| (subword_atomic_fetch_strong_<atomic_optab>): Likewise. |
| (atomic_fetch_nand<mode>): Likewise. |
| (subword_atomic_fetch_strong_nand): Likewise. |
| (zabha_atomic_fetch_<atomic_optab><mode>): Likewise. |
| (lrsc_atomic_fetch_<atomic_optab><mode>): Likewise. |
| (atomic_exchange<mode>): Likewise. |
| (amo_atomic_exchange<mode>): Likewise. |
| (amo_atomic_exchange<mode>_extended): Likewise. |
| (lrsc_atomic_exchange<mode>): Likewise. |
| (subword_atomic_exchange_strong): Likewise. |
| (zacas_atomic_cas_value_strong<mode>): Likewise. |
| (zalrsc_atomic_cas_value_strong<mode>): Likewise. |
| (subword_atomic_cas_strong): Likewise. |
| (atomic_test_and_set): Likewise. |
| |
| 2026-08-04 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/124043 |
| * config/arm/vfp.md (thumb2_movsi_vfp): Don't hide the t->r |
| alternative from register preferencing. |
| |
| 2026-08-04 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/neon.md (neon_vdup_lane<VDQW:mode>_internal): |
| Handle core registers as the input vector operand by splitting. |
| (neon_vdup_lane<VHFBF:mode>_internal): Likewise. |
| (neon_vdupq_lane<VQ2BF:mode>_internal): New pattern. |
| |
| 2026-08-04 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (float_widen_lhs_range): Convert to |
| sub-ranges. |
| (range_op_float_tests): New test. |
| |
| 2026-08-04 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * range-op-float.cc (float_widen_bound): New, factored out of... |
| (float_widen_lhs_range): ...here. |
| |
| 2026-08-04 Egas Ribeiro <egas.g.ribeiro@gmail.com> |
| |
| PR analyzer/119697 |
| * langhooks.h (struct lang_hooks): Add exception_matches_type_p. |
| * langhooks-def.h (LANG_HOOKS_EH_MAY_CATCH_P): Define as |
| hook_bool_tree_tree_false. |
| (LANG_HOOKS_INITIALIZER): Add it. |
| |
| 2026-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126601 |
| * tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Use safe_push |
| on mul_stmts rather than quick_push. |
| |
| 2026-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126564 |
| * tree-ssa-phiopt.cc (spaceship_replacement): Fix up condition |
| when to punt because of redundant cmp1 with cmp2, xor in |
| lhs1 == lhs2 with difference of cmp2 from cmp1 (ignoring |
| LT_EXPR vs. LE_EXPR and GT_EXPR vs. GE_EXPR differences) and |
| 1 if cond2_phi_edge is EDGE_FALSE_VALUE. |
| |
| 2026-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126549 |
| * range-op-float.cc (operator_cast::fold_range): Don't call |
| frange_drop_infs. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/116815 |
| * config/aarch64/aarch64.md |
| (*aarch64_plus_within_<optab><mode>3_<ovf_commutate>): Add a |
| clobber of CC_REGNUM. |
| (*aarch64_minus_within_<optab><mode>3): Likewise. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * sched-int.h (struct deps_desc): Add pending_barriers. Update the |
| reg_last_dirty description. |
| (deps_reg_last): Declare. |
| * sched-deps.cc: Include selftest-rtl.h. |
| (deps_reg_last): New. |
| (sched_analyze_insn): Materialize pending barriers when required. |
| Use the lazy barrier form before reload outside selective scheduling. |
| Reconcile reg_last_dirty entries at barriers. |
| (init_deps): Initialize pending_barriers. |
| (free_deps): Release pending_barriers. |
| (selftest::observed_barrier_deps): New. |
| (selftest::observe_barrier_dependence): New. |
| (selftest::assert_insn_list): New. |
| (selftest::test_full_lazy_barrier): New. |
| (selftest::test_sparse_lazy_barrier): New. |
| (selftest::test_lazy_barrier_join): New. |
| (selftest::test_lazy_barriers): New. |
| (selftest::sched_deps_cc_tests): Run the lazy-barrier tests. |
| * sched-rgn.cc (deps_join): Combine pending and materialized barrier |
| state. |
| * sel-sched-ir.cc (has_dependence_p): Assert that selective |
| scheduling has no pending barriers. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * sched-deps.cc (reg_last_pool, reg_last_pool_max_reg): New. |
| (alloc_reg_last, release_reg_last): New. |
| (init_deps, init_deps_reg_last): Use alloc_reg_last. |
| (free_deps): Reset the list length fields and release reg_last to the |
| pool. |
| (sched_deps_finish): Release the pooled arrays. |
| (selftest::test_reg_last_pool): New. |
| (selftest::sched_deps_cc_tests): Run it. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * sched-int.h (struct deps_desc): Add reg_last_dirty. |
| * sched-deps.cc: Include selftest.h. |
| (sched_analyze_insn): Record debug-insn uses and control uses in |
| reg_last_dirty. |
| (init_deps): Initialize reg_last_dirty. |
| (free_deps): Merge reg_last_dirty into reg_last_in_use for teardown, |
| then clear it. |
| (selftest::test_dirty_reg_last_release): New. |
| (selftest::sched_deps_cc_tests): New. Provide an empty definition |
| when INSN_SCHEDULING is not defined. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| sched_deps_cc_tests. |
| * selftest.h (selftest::sched_deps_cc_tests): Declare. |
| |
| 2026-08-04 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * sched-deps.cc (sched_deps_finish): Reset cache_size after clearing |
| and freeing the dependency caches. |
| |
| 2026-08-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126320 |
| PR target/126450 |
| PR target/126529 |
| * config/i386/i386.cc (ix86_spill_register_argument_p): Removed. |
| (ix86_argument_passed_on_stack_p): Remove the second argument. |
| Return true if the argument's DECL_INCOMING_RTL is a memory |
| operand. |
| (ix86_update_stack_alignment): Updated. |
| |
| 2026-08-04 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-sr.cc (riscv_sr_match_epilogue): Accept |
| SP-only stack ties. |
| * config/riscv/riscv.cc (riscv_emit_stack_tie): Use parameterized |
| generators and emit SP-only ties. |
| (riscv_expand_epilogue): Use SP ties without a frame pointer. |
| * config/riscv/riscv.md (@stack_tie<mode>): Use a parameterized name. |
| (@stack_tie_sp<mode>): New pattern. |
| |
| 2026-08-04 Avinal Kumar <avinal.xlvii@gmail.com> |
| |
| PR tree-optimization/101650 |
| * match.pd: Simplify (A | C) == A to (A & C) != 0 when C is |
| power of 2. |
| |
| 2026-08-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/msp430/msp430.cc (msp430_insn_cost): Handle insns with |
| NOOP_MOVE_INSN_CODE. |
| |
| 2026-08-03 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/63387 |
| * match.pd: Combine four simplify into one for. |
| |
| 2026-08-03 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * hwint.h (sext_hwi): Combine duplicated C++ code. |
| |
| 2026-08-03 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (frange::set_nonzero): Implement. |
| (frange::nonzero_p): Implement. |
| (range_tests_excluding): Test set_nonzero and nonzero_p. |
| |
| 2026-08-03 Reshma Roy <Reshma.Roy@amd.com> |
| |
| PR tree-optimization/126466 |
| * match.pd: Fix incorrect POPCOUNT identification in the third |
| 32-bit Hacker's Delight matcher. |
| |
| 2026-08-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126484 |
| * config/mips/mips-ftypes.def (MIPS_SI_FTYPE_VOID, |
| MIPS_USI_FTYPE_VOID): Use DEF_MIPS_FTYPE with 0 as |
| first argument rather than 1 and leave out ", VOID" from |
| second argument. |
| * config/mips/mips.cc (MIPS_FTYPE_NAME0): Define. |
| (MIPS_FTYPE_ATYPES0): Define. |
| |
| 2026-08-03 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (class frange): Declare set_excluding. |
| * value-range.cc (frange::set_excluding): New. |
| (frange::set): Assert KIND is VR_RANGE or VR_ANTI_RANGE and that the |
| endpoints are not NAN. Turn a VR_ANTI_RANGE into the two sub-ranges |
| that exclude the point. |
| (frange_float_excluding, range_tests_excluding): New. |
| (range_tests_floats): Call range_tests_excluding. |
| * value-range-storage.cc (frange_storage::get_frange): Return early |
| for VR_VARYING, like irange_storage::get_irange. |
| |
| 2026-08-03 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (class frange): Raise MAX_PAIRS to 2. |
| * value-range.cc: Include value-range-storage.h. |
| (real_from_str, range_tests_sub_ranges, range_tests_sub_ranges_nan) |
| (range_tests_sub_ranges_zero, range_tests_sub_ranges_storage): New. |
| (range_tests_floats): Call them, and adjust the disjoint-union test. |
| |
| 2026-08-03 Souradipto Das <souradiptodas6@gmail.com> |
| |
| PR target/126411 |
| * config/riscv/riscv-v.cc (shuffle_slide_patterns): Check that |
| the sequence endpoints correspond to OP0's and OP1's expected |
| positions and also reject a second pivot when need_slideup_p is set. |
| |
| 2026-08-02 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/19832 |
| * match.pd: Combine two patterns into one for. |
| |
| 2026-08-02 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/117760 |
| PR tree-optimization/125442 |
| * match.pd: Combine four fors into one for. |
| |
| 2026-08-02 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * match.pd: Combine two patterns into for. |
| |
| 2026-08-02 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126569 |
| * tree-ssa-phiopt.cc (cond_store_replacement_limited): A |
| clobber is not a store. |
| |
| 2026-08-02 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126571 |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): Reject |
| when the pointer types are not compatible when creating a phi. |
| |
| 2026-08-01 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_vector_init_one_nonzero): |
| Improved implementations for V2DI, V2DF, V4SI, V4SF, V4DI and V4DF |
| modes. Return false for V2SI and V2SF modes if the one non-zero |
| element isn't the first/lowest. Improved implementations for V8HI, |
| V16QI, V2HI and V8QI modes. |
| (nonzero_int_const_count): New helper function to count the |
| number of non-zero integer constants in a given array. |
| (nonzero_float_const_count): Likewise for SFmode floats. |
| (nonzero_double_const_count): Likewise for DFmode doubles. |
| (ix86_expand_vector_init_insert): New function to initialize a |
| V4SI, V8HI or V16QI vector using a sequence of pinsr[bwd] insns. |
| (onevar_perm_p): New local helper function. |
| (twovar_perm_p): Likewise. |
| (ix86_expand_vector_init_v2di): New mode-specific function. |
| (ix86_expand_vector_init_v2df): Likewise. |
| (ix86_expand_vector_init_v4si): Likewise. |
| (ix86_expand_vector_init_v4sf): Likewise. |
| (ix86_expand_vector_init_v8hi): Likewise. |
| (ix86_expand_vector_init_v16qi): Likewise. |
| (ix86_expand_vector_init_v4di): Likewise. |
| (ix86_expand_vector_init_v4df): Likewise. |
| (ix86_expand_vector_init_v8si): Likewise. |
| (ix86_expand_vector_init_v8sf): Likewise. |
| (ix86_expand_vector_init_general): Call the above custom helper |
| functions for the relevant modes. |
| * config/i386/sse.md (*vec_interleave_lowv4si_sse): New pattern |
| for (V4SImode) unpcklps on TARGET_SSE but not TARGET_SSE2. |
| |
| 2026-08-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-polymorphic-call.cc (csftc_abort_walking_p): Remove useless |
| "? true : false". |
| * tree-ssa-loop-im.cc (ref_indep_loop_p): Likewise. |
| * match.pd (X ==/!= !X is false/true): Replace "? false : true" |
| with negation of the condition. |
| (((C << x) & D) != 0): Likewise. |
| (fold_sign_changed_comparison and fold_widened_comparison): Likewise. |
| Remove useless "? true : false". |
| (if the second operand is NaN, the result is constant): Replace |
| "? false : true" with negation of the condition. |
| (__builtin_ctz (x) >= C -> (x & ((1 << C) - 1)) == 0): Likewise. |
| Remove useless "? true : false". |
| (__builtin_ctz (x) == C -> (x & ((1 << (C + 1)) - 1)) == (1 << C)): |
| Replace "? false : true" with negation of the condition. |
| (__builtin_ffs (X) == 0 -> X == 0): Remove useless "? true : false". |
| (__builtin_ffs (X) > 6 -> X != 0 && (X & 63) == 0): Likewise. |
| Replace "? false : true" with negation of the condition. |
| * gimple-pretty-print.cc (dump_phi_nodes): Use !(flags & TDF_GIMPLE) |
| instead of (flags & TDF_GIMPLE) ? false : true. |
| |
| 2026-08-01 Pan Li <pan2.li@intel.com> |
| Claude Opus 5 (1M context) <noreply@anthropic.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-08-01 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126313 |
| * gimple-fold.cc (follow_outer_ssa_edges): Swap around returning |
| for undefined overflow and saving off the global range. |
| |
| 2026-07-31 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126458 |
| * match.pd (min/max detection): Fix precision of |
| the signed type min. |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126504 |
| * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)): |
| If cand isn't representable in TREE_TYPE (@1), simplify to |
| cmp == NE_EXPR. |
| (((1 << n) & M) != 0 -> n == log2 (M)): Don't simplify if |
| log2 doesn't fit into TREE_TYPE (@0). |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126503 |
| * gimple-lower-bitint.cc (bitint_large_huge::handle_plus_minus): If |
| IFN_ADDC/IFN_SUBC can't be used and rhs1_type is not the limb type |
| and is signed, perform both additions or both subtractions in |
| unsigned type for the rhs1_type and cast to rhs1_type at the end. |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/126497 |
| * gimplify.cc (recalculate_side_effects): Return for |
| tcc_declaration. |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126490 |
| * match.pd ((a & b) == (a ^ b) -> !(a | b)): If @0 has |
| integral one bit precision type, use (convert:type ...) around the |
| bit_not just in case the comparison has a different result type |
| from the type of its operands. Otherwise do that too but with |
| bit_not replaced with bit_xor with one of the appropriate type. |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126464 |
| * range-op-float.cc (float_widen_lhs_range): Remove also_inf |
| argument, replace its uses as if it was always true. |
| (operator_cast::op1_range): Don't pass third argument to |
| float_widen_lhs_range. |
| |
| 2026-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126476 |
| * match.pd (((C << A) & D) != 0 -> A == 0, |
| ((C << A) & D) == 0 -> A != 0): Fold to false/true if |
| c1 - c2 resp. c2 - c1 doesn't fit into TREE_TYPE (@0). |
| |
| 2026-07-30 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range-storage.h (class frange_storage): Replace the fixed |
| m_pairs[MAX_PAIRS] with a variable-length trailing array and an |
| m_max_ranges capacity; declare size and the constructor. |
| * value-range-storage.cc (frange_storage::size): New. |
| (frange_storage::alloc): Allocate size (r) bytes. |
| (frange_storage::frange_storage): New; record m_max_ranges. |
| (frange_storage::fits_p): Check m_max_ranges. |
| |
| 2026-07-30 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (frange::union_): Merge both operands' sub-ranges |
| via set_pairs instead of widening to the hull. |
| |
| 2026-07-30 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (frange_min, frange_max): New. |
| (frange::intersect_nans): Use set_nan. |
| (frange::intersect): Meet every sub-range against every other. |
| |
| 2026-07-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): |
| Dump SLP graph entries. |
| |
| 2026-07-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Insert |
| on entry when the vector def is a default def or a constant. |
| |
| 2026-07-30 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/122848 |
| * match.pd (zero_extend & sign_extend -> zero_extend): New pattern. |
| (zero_extend | sign_extend -> sign_extend): Likewise. |
| |
| 2026-07-30 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/109843 |
| * match.pd ((signbit (x) cmp 0) cmp (signbit (y) cmp 0) ? y : -y): |
| New simplification to copysign (y, +-x). |
| |
| 2026-07-30 Richard Biener <rguenther@suse.de> |
| |
| * config/rs6000/rs6000.cc (rs6000_cost_data::density_test): |
| Start BB walk after labels. |
| |
| 2026-07-30 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/autovec-opt.md: Match the new vwmacc-like pattern. |
| * config/riscv/genrvv-type-indexer.cc: Support |
| DOUBLE_TRUNC_SIGNED type for v[u]int types. |
| * config/riscv/riscv-vector-builtins-bases.cc (class vabd): New |
| class. |
| (class vabs): Ditto. |
| (class vabda): Ditto. |
| (BASE): Define. |
| * config/riscv/riscv-vector-builtins-bases.h: Ditto. |
| * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): |
| Ditto. |
| (vabs): Ditto. |
| (vabd): Ditto. |
| (vabdu): Ditto. |
| (vwabda): Ditto. |
| (vwabdau): Ditto. |
| * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_QU_HU_OPS): |
| Define. |
| (DEF_RVV_HU_SU_OPS): Ditto. |
| * config/riscv/riscv-vector-builtins.cc (qu_hu_ops): Ditto. |
| (hu_su_ops): Ditto. |
| (ss_args): Ditto. |
| (wwss_args): Ditto. |
| (qu_hu_vss_ops): Ditto |
| (qu_hu_vvv_ops): Ditto |
| (hu_su_wwss_ops): Ditto |
| (hu_su_wwvv_ops): Ditto |
| (u_s_ops): Ditto |
| (get_builtin_partition): Add Zvabd case. |
| * config/riscv/riscv-vector-builtins.h (enum required_ext): |
| Ditto. |
| (enum rvv_builtin_partition): Ditto. |
| (required_ext_to_isa_name): Ditto. |
| (required_extensions_specified): Ditto. |
| * config/riscv/riscv_vector.h (__riscv_intrinsic_zvabd): Define. |
| * config/riscv/vector.md: Rewrite pred_widen_abd_plus as |
| vwmacc-like form. |
| |
| 2026-07-30 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/autovec-opt.md (*vwabda<su><mode>): Limit mode to |
| VWEXTI_HS. |
| (*vwabda_right<su><mode>): Ditto. |
| * config/riscv/autovec.md (<su>abd<mode>3): Limit mode to VI_QH. |
| * config/riscv/vector-iterators.md: New iterators. VWEXTI |
| rewritten using VWEXTI_HS and VWEXTI_D. |
| * config/riscv/vector.md: Limit modes in Zvabd patterns except |
| vabs. |
| |
| 2026-07-30 Christopher Bazley <chris.bazley@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_detect_scalar_stmt_subtype): |
| Call the new vect_is_truncating_store function and return 0 if |
| vect_is_truncating_store returns true. |
| (aarch64_sve_adjust_stmt_cost): Call vect_is_truncating_store |
| and assign 0 to stmt_cost if vect_is_truncating_store returns |
| true. |
| * tree-vectorizer.h (vect_is_truncating_store): New function |
| analogous to vect_is_extending_load. |
| |
| 2026-07-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Also |
| skip labels. |
| * tree-vect-slp.cc (_bb_vec_info::_bb_vec_info): Likewise. |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): |
| Skip labels. |
| |
| 2026-07-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_add_slp_permutation): We no longer |
| need a copy when the extraction is readily available. |
| (vect_schedule_slp_node): Handle default defs or constants |
| in vector defs. |
| |
| 2026-07-30 Sebastian Galindo <sebastian.galindo143@gmail.com> |
| Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * builtin-types.def (BT_FN_VOID_INT_INT): New definition. |
| * omp-builtins.def (BUILT_IN_GOACC_INIT): New builtin for |
| init directive. |
| (BUILT_IN_GOACC_SHUTDOWN): New builtin for shutdown directive. |
| (BUILT_IN_GOACC_SET_DEVICE): New builtin for set directive. |
| |
| 2026-07-30 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/123311 |
| * match.pd (min(clz(x), clz(y)) -> clz(x | y)): New pattern. |
| (min(ctz(x), ctz(y)) -> ctz(x | y)): Likewise. |
| |
| 2026-07-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126464 |
| * range-op-float.cc (float_widen_lhs_range): Add also_inf argument |
| defaulted to false, if true, extend even lb of +inf and ub of -inf. |
| (operator_cast::op1_range): Adjust float_widen_lhs_range caller. |
| |
| 2026-07-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/126084 |
| * asan.cc (maybe_instrument_call): Don't instrument |
| BUILT_IN_ASAN_REPORT_{LOAD,STORE}{1,2,4,8,16,_N} builtins. |
| (initialize_sanitizer_builtins): Use |
| (*lang_hooks.types.type_for_mode) (ptr_mode, 0) instead of |
| pointer_sized_int_mode for PTRMODE arguments. |
| (asan_expand_poison_ifn): Likewise. |
| |
| 2026-07-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * match.pd (parity(bswap(x)) is parity(x)): Use BSWAP BITREVERSE |
| instead of BUILT_IN_BSWAP16 BUILT_IN_BSWAP32 BUILT_IN_BSWAP64 |
| BUILT_IN_BSWAP128. |
| |
| 2026-07-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126471 |
| * match.pd (parity(~X) is parity(X)): Only optimize this way |
| if element_precision is even, otherwise optimize into parity(X) ^ 1. |
| |
| 2026-07-30 Jin Ma <jinma@linux.alibaba.com> |
| |
| PR target/126449 |
| * config/riscv/riscv.cc (riscv_legitimize_call_address): Use |
| STATIC_CHAIN_REGNUM when a sibcall address is materialized in |
| post-reload thunk code. |
| |
| 2026-07-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (AArch64 Options): Spell CPU in uppercase |
| letters. |
| (RS/6000 and PowerPC Options): Ditto. |
| (S/390 and zSeries Options): Ditto. |
| (SPARC Options): Ditto. |
| |
| 2026-07-30 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR target/126438 |
| * config/rs6000/darwin.h (REGISTER_NAMES): Add dmf registers. |
| |
| 2026-07-30 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (class frange): Declare set_pairs. Document the |
| sub-range representation and that the no-argument bounds are the |
| convex hull. |
| * value-range.cc (frange_fusible_p): New. |
| (frange::set_pairs): New. |
| (frange::flush_denormals_to_zero): Reinstall the endpoints through |
| set_pairs. |
| (frange::normalize_kind): Note a range with a gap is never varying. |
| (frange::verify_range): Check the sub-range invariants. |
| |
| 2026-07-30 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126455 |
| * match.pd: Fix up patterns dealing with bitwise AND/OR/XOR |
| and comparisons for floating point types. |
| |
| 2026-07-30 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126470 |
| * match.pd (`(a != 0) ? (a / b) : 0`): Fix argument |
| to expr_no_side_effects_p. |
| |
| 2026-07-30 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126456 |
| * match.pd (`a CMP b ? MIN/MAX<a, c> : MIN/MAX<a, d>`): Fix |
| order of minmax_from_comparison arguments. |
| |
| 2026-07-30 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126446 |
| * gimple-isel.cc (gimple_expand_vec_set_extract_expr): Punt if |
| idx doesn't fit into poly_uint64 but is poly_int_tree_p. Use |
| known_ge rather than known_gt for out of bounds check. Formatting |
| fixes. |
| |
| 2026-07-29 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/126276 |
| * config/cris/cris.md (*btst<BWD><ZnNNZSET): Handle BWD modes, |
| not just SImode. |
| (*cbranch<mode>4_btstrq1_<CC>): Likewise. |
| (*cbranch<mode>4_btstqb0_<CC>): Likewise. |
| |
| 2026-07-29 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/126434 |
| * avoid-store-forwarding.cc (process_store_forwarding): Unshare the |
| load destination when building the re-extension move. |
| |
| 2026-07-29 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/126465 |
| * match.pd: Fix FMS patterns. |
| |
| 2026-07-29 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/126415 |
| PR tree-optimization/124545 |
| * match.pd ((T)A +- CST -> (T)(A +- CST')): Revert. |
| * tree-ssa-sccvn.cc (ssa_integral_conversion_op): New function. |
| (vn_nary_result_avail_or_insertable_p): New function, split out |
| from ... |
| (visit_nary_op): ... here. Handle ((T)p) +- X by looking up |
| (p +- X') and converting the result, for X an integer constant |
| that narrows and extends back unchanged or a conversion from |
| the same narrow type. |
| |
| 2026-07-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126457 |
| * tree-vect-loop.cc (vectorizable_reduction): Reject |
| operations where not all operands correspond to a SLP |
| child early. |
| |
| 2026-07-29 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_workshare) |
| [OMP_TARGET && OMP_CLAUSE_DEVICE_TYPE_NOHOST]: Use |
| 'build_string_literal'. Use 'build_int_cst'. |
| |
| 2026-07-29 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_output_dwarf_dtprel): |
| Remove 0x8000. |
| |
| 2026-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126446 |
| * config/i386/i386-expand.cc (ix86_expand_vector_set): If elt is |
| out of bounds, emit a no-op move. |
| |
| 2026-07-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126450 |
| * config/i386/i386.cc (ix86_spill_register_argument_p): Check |
| the argument-linked memory used to store local variable. |
| |
| 2026-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/126447 |
| * gimple-lower-bitint.cc (gimple_lower_bitint): For |
| ifn calls with large/huge _BitInt (ab) SSA_NAME lhs if they |
| have such (ab) argument too, force it into temporary SSA_NAME |
| for IFN_BSWAP, IFN_BITREVERSE, IFN_UBSAN_CHECK_MUL and, if |
| bitint_big_endian, also for IFN_UBSAN_CHECK_{ADD,SUB}. |
| |
| 2026-07-29 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/gcc-auto-profile: Probe for arm_spe with |
| "perf list pmu" instead of "perf list". |
| * configure.ac: Likewise. |
| * configure: Regenerate. |
| |
| 2026-07-29 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (s390_canonicalize_comparison): Verify op0 |
| for an UNSPEC_CC_TO_INT is a register. |
| |
| 2026-07-29 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (*addqi_1<nf_name>): Merge the two |
| preferred_for_speed attributes into one. |
| (*andqi_1<nf_name>): Likewise. |
| (*andqi_2_maybe_si): Likewise. |
| (*<code>qi_1<nf_name>): Likewise. |
| (*notxorqi_1): Likewise. |
| (*one_cmplqi2_1): Likewise. |
| (*ashlqi3_1<nf_name>): Likewise. |
| |
| 2026-07-28 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/126397 |
| * tree-ssa-ifcombine.cc (ifcombine_ifandif): Remove |
| true condition. |
| |
| 2026-07-28 Reshma Roy <Reshma.Roy@amd.com> |
| |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Additional |
| check to see if DRAP register is live in basic block with DF_LR_IN. |
| |
| 2026-07-28 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range-storage.cc (frange_storage::get_frange): Restore |
| every sub-range. |
| * value-range-pretty-print.cc (vrange_printer::visit): Print each |
| sub-range. |
| |
| 2026-07-28 John David Anglin <danglin@gcc.gnu.org> |
| |
| * configure.ac: Set gcc_cv_as_cfi_directive to no on |
| hppa*-*-hpux*. |
| * configure: Regenerate. |
| |
| 2026-07-28 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * gcc.cc (execute): Make "signal terminated program" message |
| clearer. |
| |
| 2026-07-28 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.h (struct frange_pair): New. |
| (class frange): Replace m_min and m_max with m_pairs[MAX_PAIRS] |
| and m_num_ranges. Add MAX_PAIRS, num_pairs, and the indexed |
| lower_bound and upper_bound. Have canonicalize_zeros take an |
| frange_pair. |
| (frange::lower_bound, frange::upper_bound): Adjust. |
| (frange::set_varying, frange::set_undefined, frange::set_nan) |
| (frange::known_isfinite, frange::known_isnormal) |
| (frange::known_isdenormal_or_zero, frange::maybe_isinf) |
| (frange::known_isinf, frange::signbit_p): Adjust. |
| * value-range.cc (frange::flush_denormals_to_zero): Adjust. |
| (frange::canonicalize_zeros): Take an frange_pair. |
| (frange::set, frange::normalize_kind, frange::union_nans) |
| (frange::union_, frange::intersect, frange::operator=) |
| (frange::operator==, frange::contains_p) |
| (frange::internal_singleton_p, frange::singleton_p) |
| (frange::verify_range, frange::zero_p): Adjust. |
| * value-range-storage.h (class frange_storage): Replace m_min |
| and m_max with m_pairs and m_num_ranges. |
| * value-range-storage.cc (frange_storage::set_frange): Adjust. |
| (frange_storage::get_frange): Adjust. |
| |
| 2026-07-28 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * match.pd: Combine patterns into five for. |
| |
| 2026-07-28 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h |
| (TYPES_cvtzn): New function types. |
| (TYPES_cvttb): Likewise. |
| (cvtzn): Likewise. |
| (cvttb): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc |
| (class svcvtt_impl): New function impl. |
| (class svcvtb_impl): Likewise. |
| (FUNCTION): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def |
| (svcvtn): New function. |
| (svcvtt): Likewise. |
| (svcvtb): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.h: Likewise. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve2_scvtfb<mode>): New pattern. |
| (@aarch64_sve2_scvtflt<mode>): Likewise. |
| (@aarch64_sve2_ucvtfb<mode>): Likewise. |
| (@aarch64_sve2_ucvtflt<mode>): Likewise. |
| (@aarch64_sve2_fcvtzsn<mode>): Likewise. |
| (@aarch64_sve2_fcvtzun<mode>): Likewise. |
| * config/aarch64/iterators.md |
| (b): Ventype changes. |
| (VNx16HF): Likewise. |
| (VNx16QI): Likewise. |
| |
| 2026-07-28 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-c.cc |
| (aarch64_update_cpp_builtins): New target flag. |
| * config/aarch64/aarch64-simd-builtins.def: New functions. |
| * config/aarch64/aarch64-simd.md |
| (sdot_prod<VDQSF:vsi2qi><vczle><vczbe>): New pattern. |
| (sdot_lane<VF:isquadop><VDQSF:vsi2qi><vczle><vczbe>): Likewise. |
| * config/aarch64/aarch64.h |
| (TARGET_F16F32DOT): New target flag. |
| * config/aarch64/arm_neon.h |
| (target): Add f16f32dot section. |
| (__attribute__): New builtin function calls. |
| (vdot_f32_f16): Likewise. |
| (vdotq_f32_f16): Likewise. |
| (vdot_lane_f32_f16): Likewise. |
| (vdot_laneq_f32_f16): Likewise. |
| (vdotq_lane_f32_f16): Likewise. |
| (vdotq_laneq_f32_f16): Likewise. |
| * config/aarch64/iterators.md |
| (q): New options for isquadop. |
| * doc/invoke.texi: Add f16f32dot. |
| |
| 2026-07-28 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h |
| (TYPES_s_narrow_su): New type array. |
| (s_narrow_su): Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (class svdot_impl): Update impl. |
| (FUNCTION): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def |
| (REQUIRED_EXTENSIONS): New function. |
| (svdot): Likewise. |
| (svdot_lane): Likewise. |
| * config/aarch64/aarch64-sve2.md |
| (<sur>dot_prodvnx4sivnx8hi): Renamed. |
| (@<sur>dot_prod<VNx4SI_ONLY:mode><VNx8HI_ONLY:mode>): New Name. |
| (@<sur>dot_prod<VNx8HI_ONLY:mode><VNx16QI_ONLY:mode>): New pattern. |
| (@aarch64_<sur>dot_prod_lane<VNx8HI_ONLY:mode><VNx16QI_ONLY:mode>): Likewise. |
| * config/aarch64/aarch64.h |
| (TARGET_SVE2p3): New Target Flag. |
| (TARGET_SME2p3): Likewise. |
| (TARGET_STREAMING_SME2p3): Likewise. |
| (TARGET_SVE2p3_OR_SME2p3): Likewise. |
| * doc/invoke.texi: Add sve2p3/sme2p3. |
| |
| 2026-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126404 |
| * tree-vect-patterns.cc (vect_recog_popcount_clz_ctz_ffs_pattern): |
| Avoid recursing to vect_recog_ctz_ffs_pattern with a reduction. |
| |
| 2026-07-28 H.J. Lu <hjl.tools@gmail.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/126410 |
| * tree-vect-stmts.cc (vectorizable_store): Only commit to |
| recorded base alignment when transforming. |
| (vectorizable_load): Likewise. |
| |
| 2026-07-28 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/126429 |
| * config/i386/sse.md (avx512fmaskhalfmode): Removed. |
| (avx512f_dpbf16ps_<mode>_maskz): Use avx512fmaskmode instead of |
| avx512fmaskhalfmode. |
| (avx512f_dpbf16ps_<mode>_mask): Ditto. |
| (avx512f_dpbf16ps_<mode><maskz_half_name>): Rename to ... |
| (avx512f_dpbf16ps_<mode><sd_maskz_name>): ... this. Use |
| corresponding sd_mask_op4. |
| * config/i386/subst.md (maskz_half): Remove not used pattern. |
| |
| 2026-07-28 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/126405 |
| * cfgexpand.cc (verify_partition_mem_exprs): New function. |
| (pass_expand::execute): Call it. |
| |
| 2026-07-28 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/126405 |
| * tree-outof-ssa.cc (split_overlapping_partition_decls): Also split |
| partitions of PARM_DECLs and RESULT_DECLs. |
| |
| 2026-07-28 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/126405 |
| * cfgexpand.cc (leader_merge): Rename to... |
| (expand_leader_merge): ...this. Make external. |
| * cfgexpand.h (expand_leader_merge): Declare. |
| * tree-outof-ssa.cc: Include cfgexpand.h. |
| (split_overlapping_partition_decls): Determine the variable of a |
| partition from all of its names. |
| |
| 2026-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/126433 |
| * config/i386/i386.md (*bswaphi2_movbe) Use enabled attribute. |
| Remove preferred_for_speed and preferred_for_size attributes. |
| (*bswaphi2): Ditto. |
| (*bswaphisi2_lowpart): Ditto. |
| |
| 2026-07-28 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree.cc (ssa_uniform_vector_p): Look through a |
| VEC_DUPLICATE_EXPR SSA definition. |
| |
| 2026-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126417 |
| * tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Check |
| the total number of lanes instead of the vector type against |
| the two-lane special case that doesn't need fold-left reduction |
| handling. |
| |
| 2026-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126404 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Fixup |
| conversion detection. |
| |
| 2026-07-27 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * match.pd: Combine two for into one for. |
| |
| 2026-07-27 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_scan_omp_clauses): Handle also TREE_LIST |
| for num_teams, num_threads, thread_num clauses. Add message clause |
| to switch statement. |
| * omp-expand.cc (expand_parallel_call, expand_teams_call, |
| get_target_arguments): Handle, mostly with 'sorry, unimplemented', |
| the 'dims' and 'strict' modifiers and the 'message' clause. |
| * omp-low.cc (scan_sharing_clauses): Add message clause to switch. |
| (lower_omp_teams): Handle TREE_LIST for num_threads + thread_num. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_MESSAGE. |
| * tree-pretty-print.cc (dump_omp_clause): Handle 'message' clause, |
| update num_teams, num_threads, thread_num clause printing. |
| * tree.cc (omp_clause_num_ops, omp_clause_code_name): Update for |
| message clause. |
| * tree.h (OMP_CLAUSE_NUM_THREADS_STRICT, |
| OMP_CLAUSE_THREAD_LIMIT_STRICT, OMP_CLAUSE_NUM_TEAMS_DIMS, |
| OMP_CLAUSE_NUM_THREADS_DIMS, OMP_CLAUSE_THREAD_LIMIT_DIMS, |
| OMP_CLAUSE_MESSAGE_EXPR, OMP_CLAUSE_MESSAGE_LEN, |
| OMP_CLAUSE_MESSAGE_SEVERITY_WARN): New. |
| |
| 2026-07-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/sourcebuild.texi (arm_neon_fp16_hw, arm_fp16_alternative_hw): |
| Use @code{...} instead of @code(...). |
| |
| 2026-07-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| * doc/sourcebuild.texi (arm_fp16_alternative_hw): Document. |
| (arm_neon_fp16_hw): Add reference to arm_neon_fp16_ok. |
| |
| 2026-07-27 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.cc (ix86_vector_costs): Add |
| better_fold_left_reduc_than_p and m_num_fold_left_reduc_lanes. |
| (ix86_vector_costs::ix86_vector_costs): Initialize it. |
| (ix86_vector_costs::finish_cost): Count and dump fold-left |
| reduction lanes. |
| (ix86_vector_costs::better_fold_left_reduc_than_p): New function. |
| (ix86_vector_costs::better_main_loop_than_p): Use it. |
| (ix86_vector_costs::better_epilogue_loop_than_p): Likewise. |
| |
| 2026-07-26 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-v.cc (riscv_v_widen_constraint_ok): Return |
| false when wide_mode and mode are same. |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126138 |
| * tree-ssa-phiopt.cc (one_feeding_comparison_into_p): New function. |
| (comparison_combine): New function. |
| (pass_phiopt::execute): Call comparison_combine. |
| |
| 2026-07-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126138 |
| * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Don't reject GIMPLE_COND |
| that can trap. |
| (ifcombine_ifandif): Handle trapping inner conditional specially. |
| |
| 2026-07-25 Andrea Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/126138 |
| * fold-const.cc (combine_comparisons): Allow eq to combine |
| with || and ne combine with && if the original rcode was trapping |
| and the new code is trapping. |
| |
| 2026-07-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * sym-exec/sym-exec-expression.cc (symbolic_bit::print): Use |
| HOST_SIZE_T_PRINT_UNSIGNED instead of "%zu" and add cast to |
| fmt_size_t. |
| * genoutput.cc (main): Likewise. |
| |
| 2026-07-25 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/126184 |
| * ifcvt.cc (init_noce_multiple_sets_info): Record only the most |
| recent prior definition of each pseudo register. |
| |
| 2026-07-25 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR rtl-optimization/126184 |
| * ifcvt.cc (init_noce_multiple_sets_info): Assert that destinations |
| are pseudos. |
| (bb_ok_for_noce_convert_multiple_sets): Reject hard-register |
| destinations. |
| |
| 2026-07-25 Ashley Chekhova <giraffe.commits@aol.com> |
| |
| PR tree-optimization/92408 |
| * tree-ssa-forwprop.cc (optimize_strlen_comp): Rewrite |
| strlen(s) == 0 as *s == 0 and strlen(s) != 0 as *s != 0. |
| (simplify_builtin_call): Added call to optimize_strlen_comp. |
| |
| 2026-07-25 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/126334 |
| * config/riscv/riscv-v.cc (get_gather_scatter_code): Use ordered |
| indexed stores. |
| |
| 2026-07-25 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/125507 |
| * cfgloop.h (class loop): Remove ENUM_BITFIELD. |
| * cgraph.h (struct toplevel_node): Ditto. |
| (struct symtab_node): Ditto. |
| (struct cgraph_node): Ditto. |
| * combine.cc (struct reg_stat_type): Ditto. |
| * config/i386/i386.h (struct machine_function): Ditto. |
| * cse.cc (struct qty_table_elem): Ditto. |
| (struct table_elt): Ditto. |
| (struct set): Ditto. |
| * df.h (struct df_mw_hardreg): Ditto. |
| (struct df_base_ref): Ditto. |
| * domwalk.h (class dom_walker): Ditto. |
| * dwarf2out.h (struct dw_val_node): Ditto. |
| * gimple.h (struct gimple): Ditto. |
| * ipa-predicate.h (struct expr_eval_op): Ditto. |
| (struct condition): Ditto. |
| * ipa-ref.h (struct ipa_ref): Ditto. |
| * ira-int.h (struct ira_dependent_filter): Ditto. |
| (struct ira_allocno): Ditto. |
| * lra-int.h (struct lra_operand_data): Ditto. |
| (struct lra_insn_reg): Ditto. |
| * optabs.h (class expand_operand): Ditto. |
| * recog.h (struct operand_alternative): Ditto. |
| (struct insn_operand_data): Ditto. |
| * ree.cc (struct ext_modified): Ditto. |
| * regrename.h (struct du_chain): Ditto. |
| * rtl.h (struct rtx_def): Ditto. |
| * sched-int.h (struct _dep): Ditto. |
| * tree-into-ssa.cc (struct common_info): Ditto. |
| * tree-ssa-loop-ivopts.cc (struct iv_cand): Ditto. |
| * tree-ssa-sccvn.h (struct vn_nary_op_s): Ditto. |
| (struct vn_reference_op_struct): Ditto. |
| * value-range-storage.h (class vrange_storage): Ditto. |
| * value-range.h (class vrange): Ditto. |
| * var-tracking.cc (struct variable): Ditto. |
| * vmsdbg.h (struct _DST_HEADER): Ditto. |
| |
| 2026-07-24 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * print-rtl.cc (print_exp): Avoid -Wempty-body warning. |
| |
| 2026-07-24 H.J. Lu <hjl.tools@gmail.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/126320 |
| * config/i386/i386.cc (ix86_spill_register_argument_p): New |
| function. |
| (ix86_argument_passed_on_stack_p): Add a pattern argument. Call |
| ix86_spill_register_argument_p to check spill of register argument |
| by callee. |
| (ix86_update_stack_alignment): Pass pat to |
| ix86_argument_passed_on_stack_p. |
| |
| 2026-07-24 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR middle-end/126363 |
| * builtins.cc (fold_builtin_atomic_always_lock_free): Replace |
| INTEGER_CST + expand_normal with tree_to_uwhi. |
| |
| 2026-07-24 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/mkoffload.cc (main): Pass -L<dir> on to the |
| device compiler. |
| |
| 2026-07-24 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * config/aarch64/tuning_models/neoversev2.h: Update the costs |
| of SVE structure loads and stores. |
| |
| 2026-07-24 Richard Biener <rguenther@suse.de> |
| |
| PR target/126328 |
| PR target/126383 |
| * config/i386/i386.md (cost_special): New attribute. |
| * config/i386/sse.md (avx_h<insn>v4df3): Add cost_special |
| attribute with value haddsub. |
| (*sse3_haddv2df3): Likewise. |
| (sse3_hsubv2df3): Likewise. |
| (*sse3_haddv2df3_low): Likewise. |
| (*sse3_hsubv2df3_low): Likewise. |
| (avx_h<insn>v8sf3): Likewise. |
| (sse3_h<insn>v4sf3): Likewise. |
| * config/i386/i386.cc (ix86_insn_cost): Cost insns with |
| the cost_special attribute value of haddsub like an add. |
| |
| 2026-07-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Remove failure |
| on unvectorizable shifts. |
| |
| 2026-07-24 Richard Biener <rguenther@suse.de> |
| |
| PR target/126328 |
| * combine.cc (combine_validate_cost): New arguments for |
| the insn codes. Set INSN_CODE to recognized values |
| before calling insn_cost. |
| (try_combine): Adjust. |
| |
| 2026-07-24 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.cc (ix86_expand_vec_set_builtin): Don't |
| force op1 to a register when it is CONST0_RTX (mode1). |
| (ix86_expand_vector_set_var): For now, force VAL to a register. |
| (ix86_expand_vector_set): If val is CONST0_RTX, expand using |
| the new sse4_1_insertps_v4s[if]_zero patterns on TARGET_SSE4_1. |
| Otherwise, force val to a register (restoring previous behaviour). |
| * config/i386/sse.md (sse4_1_insertps_<mode>_zero): New insn |
| using vec_merge to select which elements to clear/preserve. |
| (vec_set<mode>): Tweak operand 1 to allow both REGs and CONST0_RTX. |
| |
| 2026-07-24 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * ifcvt.cc (noce_emit_store_flag): Document that a NULL_RTX |
| return signals an unreversible condition. |
| (noce_try_store_flag): Drop redundant noce_reversed_cond_code |
| pre-check. |
| (noce_try_shifted_store_flag): Likewise. |
| (noce_try_store_flag_constants): Drop redundant can_reverse |
| guards on the reversed 2^n and -1 cases. |
| (noce_try_store_flag_mask): Set reversep unconditionally; the |
| store-flag emission now handles an unreversible condition. |
| |
| 2026-07-23 John David Anglin <danglin@gcc.gnu.org> |
| |
| * crc-verification.cc (sb_match): Use HOST_SIZE_T_PRINT_UNSIGNED |
| instead of "%zu". |
| (lfsr_and_crc_bits_match): Likewise. |
| |
| 2026-07-23 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/mma.md (UNSPEC_DMF_DMXVF16GERX2): New UNSPEC entry. |
| (UNSPEC_DMF_DMXVF16GERX2PP): Likewise. |
| (UNSPEC_DMF_DMXVF16GERX2PN): Likewise. |
| (UNSPEC_DMF_DMXVF16GERX2NP): Likewise. |
| (UNSPEC_DMF_DMXVF16GERX2NN): Likewise. |
| (UNSPEC_DMF_PMDMXVF16GERX2): Likewise. |
| (UNSPEC_DMF_PMDMXVF16GERX2PP): Likewise. |
| (UNSPEC_DMF_PMDMXVF16GERX2PN): Likewise. |
| (UNSPEC_DMF_PMDMXVF16GERX2NP): Likewise. |
| (UNSPEC_DMF_PMDMXVF16GERX2NN): Likewise. |
| (DMF_PV): Add UNSPEC_DMF_DMXVF16GERX2. |
| (DMF_DPV): Add f16 variants. |
| (DMF_PVI8I4I2): Add UNSPEC_DMF_PMDMXVF16GERX2. |
| (DMF_DPVI8I4I2): Add f16 prefixed variants. |
| (pv): Add dmxvf16gerx2 attribute. |
| (dpv): Add f16 attributes. |
| (pvi8i4i2): Add pmdmxvf16gerx2 attribute. |
| (dpvi8i4i2): Add f16 prefixed attributes. |
| * config/rs6000/rs6000-builtins.def (__builtin_mma_dmxvf16gerx2): New |
| builtin. |
| (__builtin_mma_dmxvf16gerx2pp): Likewise. |
| (__builtin_mma_dmxvf16gerx2pn): Likewise. |
| (__builtin_mma_dmxvf16gerx2np): Likewise. |
| (__builtin_mma_dmxvf16gerx2nn): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2pp): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2pn): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2np): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2nn): Likewise. |
| (__builtin_mma_dmxvf16gerx2_internal): New internal builtin. |
| (__builtin_mma_dmxvf16gerx2pp_internal): Likewise. |
| (__builtin_mma_dmxvf16gerx2pn_internal): Likewise. |
| (__builtin_mma_dmxvf16gerx2np_internal): Likewise. |
| (__builtin_mma_dmxvf16gerx2nn_internal): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2_internal): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2pp_internal): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2pn_internal): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2np_internal): Likewise. |
| (__builtin_mma_pmdmxvf16gerx2nn_internal): Likewise. |
| * doc/extend.texi (PowerPC Matrix-Multiply Assist Built-in Functions): |
| Document new MMA+ builtins for f16 operations. |
| |
| 2026-07-23 Odysseas Georgoudis <odygrd@hotmail.com> |
| |
| PR middle-end/122715 |
| * match.pd: Fold IFN_AVG_FLOOR and IFN_AVG_CEIL with equal |
| operands. |
| |
| 2026-07-23 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR rtl-optimization/126347 |
| * ifcvt.cc (noce_emit_store_flag): Return NULL_RTX when the |
| comparison code is UNKNOWN. |
| |
| 2026-07-23 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/mma.md (UNSPEC_DMF_DMXVI8GERX4SPP): New UNSPEC entry. |
| (UNSPEC_DMF_PMDMXVI8GERX4SPP): Likewise. |
| (UNSPEC_DMF_DMXVBF16GERX2): Likewise. |
| (UNSPEC_DMF_DMXVBF16GERX2PP): Likewise. |
| (UNSPEC_DMF_DMXVBF16GERX2PN): Likewise. |
| (UNSPEC_DMF_DMXVBF16GERX2NP): Likewise. |
| (UNSPEC_DMF_DMXVBF16GERX2NN): Likewise. |
| (UNSPEC_DMF_PMDMXVBF16GERX2): Likewise. |
| (UNSPEC_DMF_PMDMXVBF16GERX2PP): Likewise. |
| (UNSPEC_DMF_PMDMXVBF16GERX2PN): Likewise. |
| (UNSPEC_DMF_PMDMXVBF16GERX2NP): Likewise. |
| (UNSPEC_DMF_PMDMXVBF16GERX2NN): Likewise. |
| (DMF_PV): Add UNSPEC_DMF_DMXVBF16GERX2. |
| (DMF_DPV): Add bf16 and int8 signed accumulate variants. |
| (DMF_DPVI8I4I4): Add UNSPEC_DMF_PMDMXVI8GERX4SPP. |
| (DMF_PVI8I4I2): New int iterator. |
| (DMF_DPVI8I4I2): Likewise. |
| (pv): Add dmxvbf16gerx2 attribute. |
| (apv): Removed dmxvi8gerx4pp attribute. |
| (dpv): New attribute. |
| (dpvi8i4i4): Add pmdmxvi8gerx4spp attribute. |
| (pvi8i4i2): New attribute. |
| (dpvi8i4i2): Likewise. |
| (dmf_<dpv>): Rename from dmf_<apv> and update to use dpv attribute. |
| (dmf_<pvi8i4i2>): New insn pattern. |
| (dmf_<dpvi8i4i2>): Likewise. |
| * config/rs6000/rs6000-builtins.def (__builtin_mma_dmxvi8gerx4spp): New |
| builtin. |
| (__builtin_mma_pmdmxvi8gerx4spp): Likewise. |
| (__builtin_mma_dmxvbf16gerx2): Likewise. |
| (__builtin_mma_dmxvbf16gerx2pp): Likewise. |
| (__builtin_mma_dmxvbf16gerx2pn): Likewise. |
| (__builtin_mma_dmxvbf16gerx2np): Likewise. |
| (__builtin_mma_dmxvbf16gerx2nn): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2pp): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2pn): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2np): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2nn): Likewise. |
| (__builtin_mma_dmxvi8gerx4spp_internal): New internal builtin. |
| (__builtin_mma_pmdmxvi8gerx4spp_internal): Likewise. |
| (__builtin_mma_dmxvbf16gerx2_internal): Likewise. |
| (__builtin_mma_dmxvbf16gerx2pp_internal): Likewise. |
| (__builtin_mma_dmxvbf16gerx2pn_internal): Likewise. |
| (__builtin_mma_dmxvbf16gerx2np_internal): Likewise. |
| (__builtin_mma_dmxvbf16gerx2nn_internal): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2_internal): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2pp_internal): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2pn_internal): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2np_internal): Likewise. |
| (__builtin_mma_pmdmxvbf16gerx2nn_internal): Likewise. |
| * doc/extend.texi (PowerPC Matrix-Multiply Assist Built-in Functions): |
| Document new MMA+ builtins for int8 and bf16 operations. |
| |
| 2026-07-23 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def (__builtin_dmr_extract512): New |
| built-in. |
| (__builtin_disassemble_dmr): Likewise. |
| (__builtin_dmr_extract512_internal): New internal built-in. |
| * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): |
| Exempt RS6000_BIF_DISASSEMBLE_DMR from the early-return guard. |
| Generate appropriate gimple code for the extract builtins. |
| |
| 2026-07-23 Tobias Burnus <tburnus@baylibre.com> |
| |
| * config/gcn/gcn-devices.def (gfx9-4-generic): Set sram-ecc |
| default to HSACO_ATTR_ANY. |
| |
| 2026-07-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure.ac: Fix a typo, respones -> response. |
| * configure: Regenerate. |
| |
| 2026-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): Clarify comment. |
| * config.in: Regenerate. |
| * doc/sourcebuild.texi (Effective-Target Keywords) |
| (o_flag_in_section): Rename to shf_link_order. Update description. |
| |
| 2026-07-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126028 |
| * tree-vect-slp.cc (vect_slp_check_for_roots): Move |
| fold-left reduction check ... |
| (vectorizable_bb_reduc_epilogue): ... here and allow |
| two reduction lanes to be unaffected. Handle the two |
| vector lane without target support for the reduction. |
| (vectorize_slp_instance_root_stmt): Implement manual two-lane |
| reduction. |
| |
| 2026-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (HAVE_GAS_SHF_GNU_RETAIN): Clarify comment. |
| * config.in: Regenerate. |
| * doc/sourcebuild.texi (Effective-Target Keywords) |
| (R_flag_in_section): Remove. |
| (Effective-Target Keywords, gnu_retain): New keyword. |
| (Effective-Target Keywords, shf_gnu_retain): Likewise. |
| (Effective-Target Keywords, sht_init_array): Likewise. |
| |
| 2026-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other |
| attributes): Document solaris_ld. |
| |
| 2026-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other |
| attributes): Document solaris_as. |
| |
| 2026-07-23 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/avx10_2satcvtintrin.h |
| (_mm_cvtts_sd_i32): Renamed from _mm_cvtts_sd_epi32. |
| (_mm_cvtts_sd_si32): New alias of _mm_cvtts_sd_i32. |
| (_mm_cvtts_sd_u32): Renamed from _mm_cvtts_sd_epu32. |
| (_mm_cvtts_ss_i32): Renamed from _mm_cvtts_ss_epi32. |
| (_mm_cvtts_ss_si32): New alias of _mm_cvtts_ss_i32. |
| (_mm_cvtts_ss_u32): Renamed from _mm_cvtts_ss_epu32. |
| (_mm_cvtts_roundsd_i32): Renamed from _mm_cvtts_roundsd_epi32. |
| (_mm_cvtts_roundsd_si32): New alias of _mm_cvtts_roundsd_i32. |
| (_mm_cvtts_roundsd_u32): Renamed from _mm_cvtts_roundsd_epu32. |
| (_mm_cvtts_roundss_i32): Renamed from _mm_cvtts_roundss_epi32. |
| (_mm_cvtts_roundss_si32): New alias of _mm_cvtts_roundss_i32. |
| (_mm_cvtts_roundss_u32): Renamed from _mm_cvtts_roundss_epu32. |
| (_mm_cvtts_sd_i64): Renamed from _mm_cvtts_sd_epi64. |
| (_mm_cvtts_sd_si64): New alias of _mm_cvtts_sd_i64. |
| (_mm_cvtts_sd_u64): Renamed from _mm_cvtts_sd_epu64. |
| (_mm_cvtts_ss_i64): Renamed from _mm_cvtts_ss_epi64. |
| (_mm_cvtts_ss_si64): New alias of _mm_cvtts_ss_i64. |
| (_mm_cvtts_ss_u64): Renamed from _mm_cvtts_ss_epu64. |
| (_mm_cvtts_roundsd_i64): Renamed from _mm_cvtts_roundsd_epi64. |
| (_mm_cvtts_roundsd_si64): New alias of _mm_cvtts_roundsd_i64. |
| (_mm_cvtts_roundsd_u64): Renamed from _mm_cvtts_roundsd_epu64. |
| (_mm_cvtts_roundss_i64): Renamed from _mm_cvtts_roundss_epi64. |
| (_mm_cvtts_roundss_si64): New alias of _mm_cvtts_roundss_i64. |
| (_mm_cvtts_roundss_u64): Renamed from _mm_cvtts_roundss_epu64. |
| |
| 2026-07-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/126160 |
| * config/i386/sse.md (lrint<ssePSmode2lower><mode>2): New expander. |
| (lrintv2sfv2di2): Likewise. |
| (ssedfsimode): New mode attribute. |
| (ssedfsimodelower): Likewise. |
| (lrint<mode><ssedfsimodelower>2): New expander. |
| |
| 2026-07-23 Avinash Jayakar <avinashd@linux.ibm.com> |
| Vijay Shankar <vijay@linux.ibm.com> |
| |
| * config/rs6000/mma.md (mma_xxsetaccz): Use wD constraint and |
| accumulator operand. |
| (mma_<vv>): Likewise. |
| (mma_<avv>): Likewise. |
| (mma_<pv>): Likewise. |
| (mma_<apv>): Likewise. |
| (mma_<vvi4i4i8>): Likewise. |
| (mma_<avvi4i4i8>): Likewise. |
| (mma_<vvi4i4i2>): Likewise. |
| (mma_<avvi4i4i2>): Likewise. |
| (mma_<vvi4i4>): Likewise. |
| (mma_<avvi4i4>): Likewise. |
| (mma_<pvi4i2>): Likewise. |
| (mma_<apvi4i2>): Likewise. |
| (mma_<vvi4i4i4>): Likewise. |
| (mma_<avvi4i4i4>): Likewise. |
| * config/rs6000/rs6000.cc (print_operand): Print DMR register |
| numbers if dense math option enabled. |
| |
| 2026-07-23 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (frange_cmp): New. |
| (frange::combine_zeros): Remove. |
| (frange::union_): Use frange_cmp to merge endpoints. |
| (frange::intersect): Likewise. |
| (frange::contains_p): Use frange_cmp. |
| (frange::verify_range): Use frange_cmp. |
| * value-range.h (class frange): Remove combine_zeros. |
| |
| 2026-07-23 Peter Bergner <bergner@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/mma.md (MAX_MMA_OPERANDS): Increase from 7 to 9. |
| (UNSPEC_DMF_DMXOR): New unspec. |
| (UNSPEC_DMF_DMXVI8GERX4): Likewise. |
| (UNSPEC_DMF_DMXVI8GERX4PP): Likewise. |
| (UNSPEC_DMF_PMDMXVI8GERX4): Likewise. |
| (UNSPEC_DMF_PMDMXVI8GERX4PP): Likewise. |
| (UNSPEC_DMF_DMSETDMRZ): Likewise. |
| (DMF_PV): New iterator. |
| (DMF_DPV): Likewise. |
| (DMF_PVI8I4I4): Likewise. |
| (DMF_DPVI8I4I4): Likewise. |
| (pv): Add DMF mappings. |
| (apv): Likewise. |
| (pvi8i4i4): New attribute. |
| (dpvi8i4i4): Likewise. |
| (dmf_build_dmr): New define_expand. |
| (dmf_dmsetdmrz): New insn. |
| (dmf_dmxor): Likewise. |
| (dmf_<pv>): New insn pattern. |
| (dmf_<apv>): Likewise. |
| (dmf_<pvi8i4i4>): Likewise. |
| (dmf_<dpvi8i4i4>): Likewise. |
| * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Add |
| DMF builtin support. Handle DMR pass-by-reference semantics. |
| Support up to nine builtin operands. |
| (mma_expand_builtin): Likewise. |
| (rs6000_expand_builtin): Handle DMF builtins. |
| * config/rs6000/rs6000-builtins.def: Add DMF and MMA+ builtin |
| definitions. |
| * doc/extend.texi |
| (PowerPC Matrix-Multiply Assist Built-in Functions): Document |
| MMA+ builtins. |
| (PowerPC Dense Math Facility Built-in Functions): Document DMF builtins. |
| |
| 2026-07-23 Manjunath Matti <mmatti@linux.ibm.com> |
| |
| * config/rs6000/rs6000.h (RS6000_BTI_dmr1024): New enumerator. |
| (RS6000_BTI_ptr_dmr1024): New enumerator. |
| (dmr1024_type_node): New macro. |
| (ptr_dmr1024_type_node): New macro. |
| * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Handle |
| dmr1024_type_node. |
| (rs6000_init_builtins): Register the __dmr1024 opaque type and |
| its pointer-to-const variant, with 512-bit alignment. |
| * config/rs6000/rs6000.cc (rs6000_mangle_type): Handle |
| dmr1024_type_node. |
| (rs6000_invalid_conversion): Reject conversions to/from TDOmode. |
| (rs6000_opaque_type_invalid_use_p): Gate __vector_quad and |
| __vector_pair on TARGET_MMA and __dmr1024 on TARGET_DMF |
| independently, and require -mdense-math for __dmr1024. |
| |
| 2026-07-23 Filip Kastl <fkastl@suse.cz> |
| |
| * lto-streamer.h: Remove the field 'stream_linemap_order' from |
| the class 'lto_location_cache'. |
| |
| 2026-07-23 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (factor_out_all): Call |
| cond_store_replacement_limited too. |
| |
| 2026-07-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-eh.cc (lhs_could_trap_p): New function. |
| * tree-eh.h (lhs_could_trap_p): New decl. |
| * tree-ssa-phiopt.cc (copy_mem_with_alias_set_zero): New function. |
| (cond_store_replacement_limited): New function. |
| (pass_cselim::execute): Call cond_store_replacement_limited before |
| |
| 2026-07-22 Aldy Hernandez <aldy@quesejoda.com> |
| |
| * value-range.cc (frange::flush_denormals_to_zero): Collapse a |
| denormal endpoint to the zero of the same sign and defer the sign |
| to canonicalize_zeros. |
| (frange::canonicalize_zeros): New. |
| (frange::set): Use it. |
| (range_tests_flush_denormals): New. |
| (range_tests_floats): Call it. |
| * value-range.h (class frange): Declare canonicalize_zeros. |
| |
| 2026-07-22 Vijay Shankar <vijay@linux.ibm.com> |
| |
| * config/rs6000/mma.md (*movxo): renamed to movxo_nodmf |
| (*movxo_nodmf): updated contraint to use wD and add !TARGET_DMF |
| (*movxo_dmf): New pattern to handle dmf insert/extract from vsx |
| |
| 2026-07-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_schedule_slp_node): Simplify scheduling. |
| |
| 2026-07-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_schedule_slp_node): Correct in-region |
| stmt check. |
| |
| 2026-07-22 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/mma.md (UNSPEC_DMR_RELOAD_FROM_MEMORY): New unspec. |
| (UNSPEC_DMR_RELOAD_TO_MEMORY): Likewise. |
| (reload_tdo_load): New define_insn_and_split. |
| (reload_tdo_store): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_init_hard_regno_mode_ok): Set |
| reload_load and reload_store for TDOmode when TARGET_DMF. |
| |
| 2026-07-22 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/invoke.texi (-fopenmp-ompt): Add 'scope' construct. |
| (-fopenmp-ompt-detailed): Fix typo. |
| |
| 2026-07-22 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| * config/rs6000/mma.md (UNSPEC_DMF_EXTRACT512): New unspec. |
| (dm_extract512): New insn. |
| (movtdo): New expander. |
| (*movtdo): New insn_and_split to support TDOmode moves between |
| memory, VSX registers, and Dense Math Registers. |
| * config/rs6000/rs6000.cc (rs6000_emit_move): Diagnose constant |
| assignments to TDOmode objects. |
| (rs6000_split_multireg_move): Handle TDOmode when splitting |
| multi-register moves. |
| |
| 2026-07-22 Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/mma.md (UNSPEC_DMF_INSERT512): New unspec. |
| (UNSPEC_DMF_INSERT1024): Likewise. |
| (movoo): Enable for TARGET_DMF. |
| (*movoo): Likewise. |
| (vsx_assemble_pair): Likewise. |
| (*vsx_assemble_pair): Likewise. |
| (vsx_disassemble_pair): Likewise. |
| (*vsx_disassemble_pair): Likewise. |
| (dm_insert512): New insn. |
| (dm_insert1024): Likewise. |
| (mma_assemble_acc): Use accumulator_operand. |
| Build accumulators via DMR insert operations when TARGET_DMF. |
| (*mma_assemble_acc): Use accumulator_operand. |
| (mma_<acc>): New define_expand treating xxmtacc/xxmfacc as no-ops |
| for TARGET_DMF. |
| (*mma_<acc>): Restrict to !TARGET_DMF and use accumulator_operand. |
| (mma_disassemble_acc): Use accumulator_operand. |
| * config/rs6000/predicates.md (dmr_register_operand): New predicate. |
| (gpc_reg_operand): Accept DMR registers. |
| * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Do |
| not emit xxmfacc for DISASSEMBLE_ACC when TARGET_DMF. |
| * config/rs6000/rs6000.cc (rs6000_hard_regno_mode_ok_uncached): Allow |
| OOmode in VSX register pairs for TARGET_DMF. |
| (rs6000_split_multireg_move): Avoid emitting xxmtacc/xxmfacc when |
| TARGET_DMF. |
| * config/rs6000/rs6000.md (type): Add dmf type. |
| (isa): Add mma and dmf ISA attributes. |
| (enabled): Add mma and dmf enable conditions. |
| |
| 2026-07-22 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_expand_vec_compare_gen_cc): |
| New function. |
| * config/s390/s390.cc (s390_expand_vec_compare_cc): Extract |
| part of this function into a ... |
| (s390_expand_vec_compare_gen_cc): ... new function. |
| * config/s390/vector.md (vec_cbranch_any<mode>): Implement. |
| (vec_cbranch_all<mode>): Implement. |
| |
| 2026-07-22 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| * config/rs6000/constraints.md |
| (rs6000_constraints[RS6000_CONSTRAINT_wD]): New wD constraint. |
| * config/rs6000/predicates.md (accumulator_operand): New predicate. |
| * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Support wD |
| register class. |
| (rs6000_init_hard_regno_mode_ok): Map wD to FLOAT_REGS. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wD constraint. |
| * doc/md.texi: Document the new constraint. |
| |
| 2026-07-22 Surya Kumari jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000.cc (enum rs6000_reg_type): Add DMR_REG_TYPE. |
| (enum rs6000_reload_reg_type): Add RELOAD_REG_DMR. |
| (LAST_RELOAD_REG_CLASS): Update to RELOAD_REG_DMR. |
| (reload_reg_map): Add DMR entry. |
| (rs6000_reg_names): Add DMR register names. |
| (alt_reg_names): Add alternate DMR register names. |
| (rs6000_hard_regno_nregs_internal): Handle DMR registers. |
| (rs6000_hard_regno_mode_ok_uncached): Add TDOmode and XOmode support for |
| DMR registers. |
| (rs6000_debug_reg_global): Add TDOmode to debug modes and print DMR |
| register range. |
| (rs6000_setup_reg_addr_masks): Handle RELOAD_REG_DMR. |
| Allow offset loads for TDOmode values. |
| (rs6000_init_hard_regno_mode_ok): Add DMR_REGS to reg_class_to_reg_type |
| mapping. |
| Update precalculation of CLASS_MAX_NREGS. |
| (rs6000_secondary_reload_memory): Handle DMR_REGS class. |
| (rs6000_secondary_reload_simple_move): Add DMR to VSX moves. |
| (rs6000_preferred_reload_class): Handle DMR_REGS. |
| (rs6000_modes_tieable_p): Exclude TDOmode from register tying. |
| (reg_offset_addressing_ok_p): Allow XOmode with TARGET_DMF. |
| Add TDOmode support with TARGET_DMF. |
| (rs6000_secondary_reload_class): Handle DMR_REGS reload routing. |
| (rs6000_dmr_register_move_cost): New helper. |
| (rs6000_register_move_cost): Handle DMR_REGS as source or destination. |
| (rs6000_memory_move_cost): Add DMR_REGS case routing cost through VSX. |
| (rs6000_compute_pressure_classes): Add DMR_REGS when TARGET_DMF. |
| (rs6000_debugger_regno): Add DMR register numbering. |
| * config/rs6000/rs6000.h (UNITS_PER_DMR_WORD): Define as 128. |
| (FIRST_PSEUDO_REGISTER): Increase from 111 to 119. |
| (FIXED_REGISTERS): Add 8 DMR registers as non-fixed. |
| (CALL_USED_REGISTERS): Mark all DMR registers as call-used. |
| (REG_ALLOC_ORDER): Add DMR registers to allocation order. |
| (DMR_REGNO_P): New macro. |
| (VECTOR_ALIGNMENT_P): Add TDOmode. |
| (enum reg_class): Add DMR_REGS entry. |
| (REG_CLASS_CONTENTS): Add DMR_REGS bitmask. |
| (REGISTER_NAMES): Add dmr0-dmr7 register names. |
| (ADDITIONAL_REGISTER_NAMES): Add dmr0-dmr7 mappings. |
| * config/rs6000/rs6000.md (FIRST_DMR_REGNO): Define as 111. |
| (LAST_DMR_REGNO): Define as 118. |
| |
| 2026-07-21 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR tree-optimization/124663 |
| * match.pd: Fold constant conditional selects. |
| |
| 2026-07-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_fold_while_ult_to_ptrue): New. |
| (aarch64_instruction_selection): Use it. |
| |
| 2026-07-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.cc |
| (gimple_folder::fold_to_vl_pred): Refactor folding logic into |
| aarch64_fold_sve_ptrue_vl. |
| * config/aarch64/aarch64-protos.h (aarch64_fold_sve_ptrue_vl): New. |
| * config/aarch64/aarch64.cc (aarch64_instruction_selection): Move down. |
| (aarch64_fold_sve_ptrue_vl): New. |
| |
| 2026-07-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * gimple-isel.cc (pass_gimple_isel::execute): Enable and disable ranger |
| on fun. |
| |
| 2026-07-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_legitimize_address): |
| Completely rewrite it into an equivalent but more easily under- |
| standable description. |
| |
| 2026-07-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (LOCAL_REGNO): |
| New macro definition. |
| |
| 2026-07-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-slp-patterns.cc (compatible_complex_nodes_p): Support |
| mismatched group sizes and use group size to iterate. |
| * tree-vect-slp.cc (vect_build_slp_instance, |
| vect_analyze_slp_reduc_chain, vect_analyze_slp_reduction, |
| vect_analyze_slp_reduction_group, vect_analyze_slp_instance, |
| vect_analyze_slp): Compare against lanes instead of .length (). |
| (vect_optimize_slp_pass::get_result_with_layout): replace .length () |
| with .exist (). |
| (vect_transform_slp_perm_load_1): Use lanes instead of .length (). |
| (vect_remove_slp_scalar_calls): Replace iterators. |
| * tree-vect-stmts.cc (vectorizable_shift): Use group size over ops |
| length. |
| |
| 2026-07-21 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/rs6000.cc (print_operand): Add the `%W` |
| print modifier to print the VSX register number plus two. |
| |
| 2026-07-21 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-21 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR middle-end/126341 |
| * tree-outof-ssa.cc (split_overlapping_partition_decls): Preserve |
| DECL_IGNORED_P. Check that the replacement uses memory. |
| |
| 2026-07-21 Richard Biener <rguenther@suse.de> |
| |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Simplify scalar vec_select of vec_concat. |
| |
| 2026-07-21 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * doc/md.texi: Document that scatters are left-to-right. |
| |
| 2026-07-21 Roger Sayle <roger@nextmovesoftware.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (define_split): Split *vec_extractv2di_0_sse |
| before reload on !TARGET_64BIT with TARGET_SSE2. |
| (define_split): Likewise split *vec_concatv2di_0 before reload |
| on !TARGET_64BIT with TARGET_SSE2. |
| |
| 2026-07-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125297 |
| * config/i386/i386.cc (init_cumulative_args): Don't set |
| cum->preserve_none_abi to true for MS ABI functions. |
| * doc/extend.texi: Update x86-64 preserve_none attribute |
| documentation. |
| |
| 2026-07-20 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/64992 |
| * match.pd: Combine two patterns into for neeq (ne eq) and fix typo. |
| |
| 2026-07-20 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.cc (bpf_insn_cost): Return pattern_cost () by default. |
| |
| 2026-07-20 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.cc (bpf_rtx_costs): set CONST_INT 0 insns. |
| * config/bpf/bpf.h (BPF_IMM32_P): New helper macro. |
| * config/bpf/predicates.md (imm32_operand): Use new macro. |
| |
| 2026-07-20 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.cc (bpf_rtx_costs): Assign MPY/DIV/MOD cost 1. |
| |
| 2026-07-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * gen-pass-instances.awk: Use [ \t] instead of [[:blank:]] |
| for compatibility with mawk <= 1.3.3. |
| |
| 2026-07-20 Alex Coplan <alex.coplan@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_handle_attr_isa_flags): |
| Warn if +tme is enabled by the target attribute/pragma, relying |
| on the feature flags from aarch64_parse_extension. |
| (aarch64_process_target_attr): Drop +tme warning based on custom |
| string parsing. |
| |
| 2026-07-20 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * builtin-types.def (BT_FN_VOID_ULONGLONG_ULONGLONG): New. |
| (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): |
| Remove. |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH, |
| BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH): Update |
| signature. |
| * omp-expand.cc (expand_omp_for_static_nochunk): Pass chunk start |
| and iteration count instead of loop bounds. |
| (expand_omp_for_static_chunk): Likewise. |
| |
| 2026-07-20 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START_WITH_END): New |
| builtin. |
| (BUILT_IN_GOMP_SCOPE_END): Likewise. |
| * omp-low.cc (lower_omp_scope): Emit calls to |
| GOMP_scope_start_with_end and GOMP_scope_end when -fopenmp-ompt. |
| |
| 2026-07-20 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR testsuite/126261 |
| * doc/sourcebuild.texi (can_deref_null): Document. |
| |
| 2026-07-20 Shreya Munnangi <smunnang@qti.qualcomm.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124741 |
| * config/riscv/constraints.md (B1, B2, B3, B4): New constraints for |
| atomic loads with and without ZALASR & MEMMODEL_ACQUIRE. |
| * config/riscv/iterators.md (cond_extend): New iterator to for use |
| in extending atomic loads. |
| * config/riscv/sync-rvwmo.md (atomic_load_rvwmo<mode>): Adjust |
| contraints to enable folding small offsets into memory load. |
| (atomic_store_rvwmo): Likewise. |
| (extending atomic_load_rvwmo): New pattern. |
| * config/riscv/sync-ztso.md (atomic_load_ztso<mode>): Adjust |
| constraints to enable folding small offsets into memory load. |
| (atomic_store_ztso): Likewise. |
| (extending atomic_load_ztso): New pattern. |
| |
| 2026-07-20 Juergen Christ <jchrist@linux.ibm.com> |
| |
| * config/s390/vector.md (VEC_SET_SINGLEFLOAT): Remove V1TF. |
| |
| 2026-07-20 Richard Biener <rguenther@suse.de> |
| |
| PR target/126271 |
| * config/i386/i386-expand.cc (ix86_expand_reduc): Honor |
| TARGET_V2DF_REDUCTION_PREFER_HADDPD and expand via |
| gen_sse3_haddv2df3. |
| |
| 2026-07-20 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-20 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/126291 |
| * match.pd ((trunc)copysign ((extend)x, (extend)y) -> copysign |
| (x, y), (trunc)copysign ((extend)x, CST) -> copysign (x, CST)): |
| Use element_precision. |
| |
| 2026-07-19 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/126291 |
| * match.pd ((trunc)abs (extend x) -> abs (x)): Use |
| element_precision. Require target ABS support for the |
| vector case. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (svrsw60t59b): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (ssqosid): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (ssctr): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (smctr): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (smcdeleg): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (ssccfg): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (ziccamoc): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jiawei <jiawei@iscas.ac.cn> |
| |
| * config/riscv/riscv-ext.def (ziccid): Add new extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * doc/riscv-ext.texi: Ditto. |
| |
| 2026-07-19 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/125731 |
| * ifcvt.cc (noce_cond_zero_binary_op_supported): Move earlier. |
| (noce_try_shifted_store_flag): New function. |
| (noce_process_if_block): Use it. |
| |
| 2026-07-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126222 |
| * value-range-storage.cc (prange_storage::equal_p): Comment change. |
| * value-range.h (prange::pt_equal_p): Use vrp_operand_equal_p. |
| |
| 2026-07-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126212 |
| * value-relation.cc (dom_oracle::set_one_relation): Start with |
| first dominator in the dominator search. |
| (dom_oracle::recomputed_relation): New. |
| (dom_oracle::find_relation_dom): query recomputed_relation. |
| * value-relation.h (dom_oracle::recomputed_relation): New prototype. |
| |
| 2026-07-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126212 |
| * range-op.cc (operator_logical_and::op1_range): Add case for |
| [0, 0] = op1 & [1, 1] |
| (operator_logical_or::op1_range): Add case for [1, 1] = op1 | [0, 0] |
| |
| 2026-07-18 Luke Zhuang <luke.zhuang@linux.alibaba.com> |
| Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.md (@tlsdesc<mode>): Use individual |
| RVVM1QI clobbers instead of four RVVM8QI. |
| |
| 2026-07-18 wangjue <juewang@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_override_options_after_change): New |
| function. |
| (riscv_option_override): Call it. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. |
| |
| 2026-07-18 Dusan Stojkovic <Dusan.Stojkovic@rt-rk.com> |
| |
| PR target/123883 |
| * match.pd ((1<<N) & (1<<N) with different types): New |
| pattern. |
| |
| 2026-07-18 Matt Turner <mattst88@gmail.com> |
| |
| PR target/117184 |
| * lra-eliminations.cc (setup_can_eliminate): Mark the hard frame |
| pointer live when setting frame_pointer_needed. |
| |
| 2026-07-18 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/126200 |
| * config/loongarch/predicates.md |
| (par_const_vector_shf_set_operand): Define as special predicate. |
| * config/loongarch/lsx.md (lsx_vshuf4i_<lsxfmt_f>): Pass VIMODE |
| to the predicate of selector. |
| |
| 2026-07-18 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/sourcebuild.texi: Document aarch64_mbig_endian. |
| |
| 2026-07-17 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/126087 |
| * match.pd: Move tree_expr_nonnegative_p (@1) to tree_expr_nonnegative_p@1. |
| |
| 2026-07-17 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/invoke.texi (-fopenmp-ompt, -fopenmp-ompt-detailed): Improve |
| wording. |
| |
| 2026-07-17 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_override_options): Warn if |
| +tme is used as an architecture feature |
| (aarch64_process_target_attr): Similarly, but only if TME |
| was previously disabled. |
| * doc/invoke.texi (aarch64): Remove mentions of +tme. |
| |
| 2026-07-17 Matt Turner <mattst88@gmail.com> |
| |
| * config/alpha/alpha.cc (alpha_cannot_copy_insn_p): Do not return |
| false before reload_completed. Update comment. |
| |
| 2026-07-17 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_CORE): Remove zama16b from |
| xt-c9501fdvt. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR middle-end/80922 |
| PR middle-end/106823 |
| PR lto/107936 |
| * lto-streamer-in.cc (lto_create_loc_map): Process diagnostic |
| pragmas from the linemap sections. |
| * lto-streamer-out.cc (location_output::produce_linemap_section): |
| Stream diagnostic pragmas into the linemap section. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR lto/65536 |
| * doc/lto.texi: Document the new LTO_section_linemap and the new |
| option -fltrans-linemap-file. |
| * lto-opts.cc (lto_write_options): Handle the new option. |
| * opts.cc (gen_command_line_string): Likewise. |
| * lto-section-in.cc (lto_section_name[]): Add new name for |
| LTO_section_linemap. |
| * lto-streamer-in.cc (get_location_from_idx): New function. |
| (lto_location_cache::cmp_loc): Remove. |
| (bp_unpack_delta): New function. |
| (create_loc_map): New function. |
| (get_loc_map): New function. |
| (lto_location_cache::override_loc_map): New function. |
| (lto_location_cache::apply_location_cache): Pervasive changes to |
| implement new location streaming format. |
| (lto_location_cache::input_location_and_block): Likewise. |
| (lto_location_cache::input_location): Rename argument LOC -> DEST |
| for clarity. |
| (lto_read_body_or_constructor): Handle LINEMAP_ID in the decl state. |
| (lto_data_in_create): Add NEED_LOCATION_CACHE argument. Rename local |
| variable DATA_IN to D to avoid clash with the type name. |
| * lto-streamer-out.cc (clear_line_info): Update for change to class |
| output_block. |
| (compute_map_hash): New function. |
| (class location_output): New class. |
| (location_output::record_location): New function. |
| (bp_pack_delta): New function. |
| (location_output::produce_linemap_section): New function. |
| (lto_output_location_1): Pervasive changes to implement new location |
| streaming format. |
| (copy_function_or_variable): Set the LINEMAP_ID in the decl state. |
| (copy_linemap_section): New function. |
| (copy_linemap_sections): New function. |
| (lto_copy_linemaps): New function. |
| (lto_register_linemap_for_output): New function. |
| (lto_output_decl_state_refs): Output the LINEMAP_ID for function |
| decls. |
| (lto_out_decl_state_written_size): Adapt for new LINEMAP_ID output. |
| (produce_asm_for_decls): Output the linemap section when needed. |
| * lto-streamer.cc (lto_get_section_name): Handle linemap sections, |
| which need an order suffix. |
| * lto-streamer.h (enum lto_section_type): Fix typo in the |
| comment. Add LTO_section_linemap. |
| (struct lto_loc_map): New struct. |
| (class lto_location_cache): Pervasive changes to implement new |
| location streaming format. |
| (struct lto_in_decl_state): Add LINEMAP_ID member. |
| (struct lto_out_decl_state): Likewise. |
| (struct lto_file_decl_data): Add LOC_MAP_DECL_DATA, LOC_MAPS, |
| and NUM_LINEMAP_SECTIONS members. |
| (lto_linemap_output_id): New function. |
| (struct output_block): Adjust members for new streaming format. |
| (data_in::data_in): New function. |
| (lto_data_in_create): Adjust prototype for new NEED_LOCATION_CACHE |
| argument. |
| (lto_register_linemap_for_output): Declare. |
| (lto_copy_linemaps): Declare. |
| * lto-wrapper.cc (run_gcc): Pass new argument -fltrans-linemap-file. |
| * timevar.def (TV_IPA_LTO_LINEMAP_IN): New timevar. |
| (TV_IPA_LTO_LINEMAP_OUT): New timevar. |
| (TV_IPA_LTO_LINEMAP_COPY): New timevar. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * doc/sourcebuild.texi: Document ar-link and incr-link options to |
| dg-lto-do directive. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * doc/sourcebuild.texi: Document dg-lto-additional-options |
| directive. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * diagnostic.h (diagnostic_classify_diagnostic): Adapt for removal |
| of return value in option_classifier::classify_diagnostic. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/kinds.h (enum kind): Add trailing element to indicate |
| the total number of kinds. |
| * diagnostics/option-classifier.cc |
| (option_classifier::classify_diagnostic): Remove the return value, |
| which was not correct and which was not used anyway. |
| * diagnostics/option-classifier.h (class option_classifier): Adjust |
| prototype for classify_diagnostic. Make the name of nested strruct |
| classification_change_t publicly accessible. |
| |
| 2026-07-17 Lewis Hyatt <lhyatt@gmail.com> |
| |
| * input.cc (test_accessing_ordinary_linemaps): Test new |
| line_map_add_raw_map() functionality. |
| |
| 2026-07-17 Neal Patalay <nealpatalay0@gmail.com> |
| |
| PR tree-optimization/126087 |
| * match.pd: Simplify MIN and BIT_IOR compared to 0 when |
| one operand is non-negative. |
| |
| 2026-07-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/126283 |
| * config/i386/i386.md (bswaphi2): Add flags reg clobber. |
| (*bswaphi2_movbe): Add flags reg clobber. Add ROLW alternative |
| and update instruction attributes. Add preferred_for_size and |
| preferred_for_speed attributes. |
| (*bswaphi2): Ditto. |
| (*bswaphisi2_lowpart): Ditto. |
| (XCHGB -> ROLW peephole2 patterns): Remove. |
| (ROLW reg,8 -> BSWAP splitter): Update for added flags reg clobber. |
| Always split. |
| * config/i386/i386-expand.cc (ix86_expand_gfni_bitreverse): |
| Update for bswaphi2 change. |
| |
| 2026-07-17 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM_WITH_END): |
| New builtin. |
| * omp-low.cc (lower_omp_master): Use it when -fopenmp-ompt. |
| |
| 2026-07-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * et-gather.awk, gen-et-static.awk: New scripts. |
| * Makefile.in (testsuitedir): New. |
| (native): Depend on testsuite/et-static.exp. |
| (clean): Remove etlist. |
| (distclean): Remove et-static.exp. |
| (install-testsuite): New target. |
| (install): Depend on it. |
| (site.exp): Depend on testsuite/et-static.exp. |
| (testsuite/et-static.exp): New target. |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| et-static.def. |
| (Effective-Target Keywords, Other attributes): Document |
| ld_at_file. |
| |
| 2026-07-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126275 |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Don't |
| use misaligned prologue if count <= epilogue size. |
| |
| 2026-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126028 |
| * tree-vect-slp.cc (vect_slp_check_for_roots): Do not |
| force the BB reduction root to have an even number of lanes. |
| (vect_build_slp_instance): For failed discovery of a BB |
| reduction attempt to re-try discovery on the matching or |
| non-matching part. |
| |
| 2026-07-16 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * builtin-types.def (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): New. |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH): Use |
| BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH): Likewise. |
| * omp-expand.cc (expand_omp_for_static_nochunk): Pass niter, start, |
| incr, chunk size, and istart to the dispatch call. |
| (expand_omp_for_static_chunk): Likewise. |
| |
| 2026-07-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125986 |
| * value-relation.cc (path_oracle::query): Query root oracle for |
| relations. |
| |
| 2026-07-16 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-protos.h |
| (riscv_legitimize_call_address): Add a sibcall parameter. |
| * config/riscv/riscv.cc |
| (riscv_legitimize_call_address): Use a pseudo for sibcalls. |
| * config/riscv/riscv.md (sibcall): Pass true for sibcalls. |
| (sibcall_value): Likewise. |
| (call): Pass false for ordinary calls. |
| (call_value): Likewise. |
| |
| 2026-07-16 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_regno_to_class): Map t1 to |
| JALR_REGS. |
| * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Document |
| the SIBCALL_REGS restriction. |
| (REG_CLASS_CONTENTS): Remove t1 from SIBCALL_REGS. |
| |
| 2026-07-16 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tree-profile.cc (emit_assign): Append to a gimple_seq instead |
| of inserting on an edge. Make the functions static. |
| (emit_bitwise_op): Likewise. |
| (instrument_decisions): Build up a local gimple_seq per edge and |
| insert it once instead of inserting each statement individually. |
| |
| 2026-07-16 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tree-profile.cc (emit_bitwise_op): Build/fold the operation with |
| gimple_build() instead of gimple_build_assign(), and return the |
| folded result as-is instead of always materializing a new SSA |
| name. |
| (instrument_decisions): Do not emit bitwise-or operations with a |
| zero constant operand. |
| |
| 2026-07-16 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-16 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Ignore |
| reg->reg copies too. |
| |
| 2026-07-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-switch-conversion.cc (gen_log2): Use gimple_seq |
| overload of gimple_build. |
| (gen_pow2p): Likewise. |
| |
| 2026-07-16 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Fix |
| the condition for anchestor + nohost handling. |
| |
| 2026-07-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expmed.cc (invert_mod2n): Fix typo in comment and add references. |
| |
| 2026-07-16 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR fortran/126279 |
| * omp-low.cc (lower_omp_target): Avoid creating a second static const |
| variable for the trait array used by uses_allocators. |
| |
| 2026-07-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options): Fix a typo. |
| |
| 2026-07-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): Remove. |
| (NETBSD_SUBTARGET_EXTRA_SPECS): Remove netbsd_link_ld_elf_so. |
| |
| 2026-07-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126262 |
| * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Treat |
| IFN_MUL_OVERFLOW and IFN_UBSAN_CHECK_MUL like IFN_BSWAP, regardless |
| of bitint_big_endian. |
| |
| 2026-07-16 Peter Bergner <bergner@linux.ibm.com> |
| Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Add |
| ENB_DM diagnostic. |
| (rs6000_builtin_is_supported): Handle ENB_DM. |
| * config/rs6000/rs6000-gen-builtins.cc: Update comments for new |
| Dense Math builtin attributes. |
| (bif_stanza): Add BSTZ_DM. |
| (stanza_map): Add "dm" stanza. |
| (enable_string): Add ENB_DM. |
| (basetype): Add BT_DMR. |
| (attrinfo): Add isdm, isdmint and isdmr fields. |
| (type_map): Add dmr1024 and ptr_dmr1024 type mappings. |
| (match_type): Recognize dmr1024 type. |
| (parse_bif_attrs): Parse dm, dmint and dmr attributes. |
| (complete_vector_type): Handle BT_DMR. |
| (write_decls): Emit ENB_DM and Dense Math builtin attribute bits |
| and predicates. |
| (write_bif_static_init): Initialize Dense Math builtin attributes |
| and associate dmint builtins with their internal variants. |
| |
| 2026-07-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126231 |
| * config/i386/i386.md (*fix_trunc<mode>si_sse_2_zext): New. |
| |
| 2026-07-15 wangjue <juewang@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_legitimize_address): Use |
| riscv_add_offset for scaled indexed addresses. |
| |
| 2026-07-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/126110 |
| * gimple-range-cache.cc (ranger_cache::mark_stale): Default defs |
| get a new timestamp to make them stale. |
| * gimple-range-infer.cc (infer_range_manager::add_range): When |
| an inferred range is added, mark the name as updated. |
| |
| 2026-07-15 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/riscv-target-attr.cc |
| (riscv_target_attr_parser::parse_arch): Check m_loc instead of *m_loc |
| before emitting the diagnostic. |
| |
| 2026-07-15 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/zicond.md: Emit any_ge instead of any_gt in the |
| GE/GEU if-then-else splitter. |
| |
| 2026-07-15 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| Revert: |
| 2026-06-29 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.h (ASM_SPEC): Add placeholders for -mmxu and |
| -mno-mxu. |
| * config/mips/mips.opt: New undocumented target option. |
| |
| 2026-07-15 Nathan Sidwell <nathan@acm.org> |
| |
| * gen-pass-instances.awk: Require only white-space before |
| macro invocations. |
| |
| 2026-07-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-low.cc (lower_private_allocate): When called on 'target' |
| and the allocator is a variable, obtain the device variable. |
| (lower_omp_target): Move processing of OMP_CLAUSE_USES_ALLOCATORS |
| on the device/receiver side in before the loop over clauses to |
| ensure the VALUE_EXPR points to uses_allocators's inited var. |
| |
| 2026-07-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_transform_stmt): Return void. |
| * tree-vect-stmts.cc (vect_transform_stmt): Likewise. |
| |
| 2026-07-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Enhance |
| dumping in the failure case. |
| |
| 2026-07-15 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR rtl-optimization/123236 |
| * simplify-rtx.cc (simplify_context::simplify_truncation): Handle |
| cases where a ZERO_EXTRACT or SIGN_EXTRACT has a different mode |
| to (but at least as wide as) its first operand. |
| |
| 2026-07-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126171 |
| * tree-scalar-evolution.cc (scev_dfs::add_to_evolution): |
| Remove code argument. Remove MINUS_EXPR handling here. |
| (scev_dfs::follow_ssa_edge_binary): Likewise. |
| (scev_dfs::follow_ssa_edge_expr): Handle MINUS_EXPR |
| separately here, promoting the whole operation to unsigned |
| instead of just the addend. |
| |
| 2026-07-15 Andrew Stubbs <ams@baylibre.com> |
| |
| * regrename.cc (scan_rtx_address): Recurse for segment UNSPECs. |
| |
| 2026-07-15 Luke Zhuang <luke.zhuang@linux.alibaba.com> |
| |
| * config/riscv/riscv.md (VXSAT_REGNUM): New constant. |
| (@tlsdesc<mode>): update clobbering. |
| |
| 2026-07-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126231 |
| * config/i386/i386.md (*fix_trunc<mode>si_sse_zext): New. |
| * config/i386/sse.md (*avx512fp16_vcvtsh2<sseintconvertsignprefix>si<round_zext_name>): |
| Likewise. |
| (*avx512fp16_vcvtsh2<sseintconvertsignprefix>si_2_zext): Likewise. |
| (*unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncsi2<round_saeonly_zext_name>): Likewise. |
| (*sse_cvtss2si<round_zext_name>): Likewise. |
| (*sse_cvtss2si_2_zext): Likewise. |
| (*unspec_sse_cvttss2si<round_saeonly_zext_name>): Likewise. |
| (*sse_cvttss2si<round_saeonly_zext_name>): Likewise. |
| (*avx512f_vcvtss2usi<round_zext_name>): Likewise. |
| (*unspec_avx512f_vcvttss2usi<round_saeonly_zext_name>): Likewise. |
| (*avx512f_vcvttss2usi<round_saeonly_zext_name>): Likewise. |
| (*avx512f_vcvtsd2usi<round_zext_name>): Likewise. |
| (*unspec_avx512f_vcvttsd2usi<round_saeonly_zext_name>): |
| Likewise. |
| (*avx512f_vcvttsd2usi<round_saeonly_zext_name>): Likewise. |
| (*sse2_cvtsd2si<round_zext_name>): Likewise. |
| (*sse2_cvtsd2si_2_zext): Likewise. |
| (*unspec_sse2_cvttsd2si<round_saeonly_zext_name>): Likewise. |
| (*sse2_cvttsd2si<round_saeonly_zext_name>): Likewise. |
| (*avx10_2_vcvttsd2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>): |
| Likewise. |
| (*avx10_2_vcvttss2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>): |
| Likewise. |
| * config/i386/subst.md (round_zext_name): Likewise. |
| (round_zext_constraint): Likewise. |
| (round_zext_constraint2): Likewise. |
| (round_zext_nimm_predicate): Likewise. |
| (round_zext_nimm_scalar_predicate): Likewise. |
| (round_zext_op2): Likewise. |
| (round_zext): Likewise. |
| (round_saeonly_zext_name): Likewise. |
| (round_saeonly_zext_constraint): Likewise. |
| (round_saeonly_zext_constraint2): Likewise. |
| (round_saeonly_zext_nimm_scalar_predicate): Likewise. |
| (round_saeonly_zext_op2): Likewise. |
| (round_saeonly_zext): Likewise. |
| |
| 2026-07-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/126257 |
| * match.pd (x+x -> x*2): Only optimize if 2 is representable in the |
| type. |
| |
| 2026-07-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/120635 |
| * doc/extend.texi: Document variant spelling of |
| standard attributes and that alternate namespace |
| spelling for clang namespace is _Clang rather |
| than __clang__. For no_specializations use |
| _Clang:: rather than __clang__::. |
| |
| 2026-07-15 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-expand.cc (expand_omp_target): For 'device_type(host)', |
| invoke with device(omp_initial_device)'. |
| * omp-low.cc (create_omp_child_function): Take host_only |
| argument to prevent generating offload code. |
| (scan_omp_parallel, scan_omp_task, scan_omp_target, scan_omp_teams, |
| lower_omp_target): Update call. |
| * omp-offload.cc (omp_discover_declare_target_tgt_fn_r, |
| omp_discover_declare_target_fn_r): Do not add implicit 'declare |
| target' to target regions with 'device_type(host)'. |
| |
| 2026-07-15 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR middle-end/126203 |
| PR middle-end/126221 |
| PR middle-end/126232 |
| * optabs.cc (emit_cmp_and_jump_insns): Take the masked_op mode |
| from TREE_TYPE (masked_op). |
| |
| 2026-07-14 Tobias Burnus <tburnus@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_workshare): Handle 'device_type(nohost)' |
| on 'target'. |
| * omp-low.cc (lower_omp_target): Remove sorry for this case. |
| |
| 2026-07-14 Karl Meakin <karl.meakin@arm.com> |
| |
| PR target/126064 |
| * config/aarch64/aarch64-neon-builtins-base.cc: Compare |
| `arg_type` and `TREE_TYPE (b)` using `types_compatible_p` rather |
| than comparing their pointer addresses. |
| |
| 2026-07-14 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| * doc/sourcebuild.texi (arm_v8_1m_mve_link): Document. |
| |
| 2026-07-14 Cem Akgok <cemakgok@gmail.com> |
| |
| PR tree-optimization/126225 |
| * tree-vect-loop.cc (vect_slp_induction_reuse_p): New function. |
| (vectorizable_induction): Validate SLP induction IV reuse. Reuse |
| generated IVs cyclically when filling the SLP group. |
| |
| 2026-07-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.cc (darwin_globalize_label): Handle Protocol |
| references. |
| (darwin_label_is_anonymous_local_objc_name): Likewise. |
| |
| 2026-07-14 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/102202 |
| * gimple-fold.cc (gimple_fold_builtin_memset): Hoist |
| tree_to_uhwi (len) before the INTEGER_CST guard. Fold |
| length-one memset calls through arbitrary pointer destinations. |
| Build a ref-all MEM_REF at offset zero and preserve the call |
| result when it is used. |
| |
| 2026-07-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/126084 |
| * gimple-lower-bitint.cc: Include "attribs.h" and "asan.h". |
| (gimple_lower_bitint): Use asan_expand_poison_ifn to lower |
| .ASAN_POISON calls with large/huge _BitInt lhs. |
| * asan.cc (report_error_func): Set *nargs and use _n builtin |
| even if size is not a power of two or larger than 16. |
| (asan_expand_poison_ifn): Handle nargs == 2. |
| |
| 2026-07-14 Jakub Jelinek <jakub@redhat.com> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| PR tree-optimization/120201 |
| * cfgexpand.cc (expand_used_vars): Set data.asan_alignb to |
| maximum of itself and crtl->stack_alignment_needed |
| / BITS_PER_UNIT. |
| |
| 2026-07-14 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/123625 |
| PR target/121957 |
| * tree-outof-ssa.cc (split_overlapping_partition_decls): New function. |
| Use use_register_for_decl to identify memory partitions. |
| (remove_ssa_form): Call split_overlapping_partition_decls. |
| |
| 2026-07-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126194 |
| * gimple-ssa-pta-constraints.cc (find_func_aliases_for_call): |
| Only ignore calls to delete if DECL_IS_REPLACEABLE_OPERATOR. |
| |
| 2026-07-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * asan.h (asan_var_and_redzone_size): Fix comment typo, |
| occupis -> occupies. |
| |
| 2026-07-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/126202 |
| * alias.cc (static_reg_base_value): Revert commit e754b70fe54. |
| (find_base_term): Likewise. |
| * alias.h (find_base_term): Likewise. |
| * function.cc (thread_prologue_and_epilogue_insns): Likewise. |
| * rtl.h (static_reg_base_value): Likewise. |
| * config/i386/i386.cc (stack_access_data): Likewise. |
| (ix86_find_all_reg_uses_1): Likewise. |
| (ix86_find_all_reg_uses): Likewise. |
| (ix86_access_stack_p): Likewise. |
| (ix86_need_alignment_p_2): Likewise. |
| (ix86_need_alignment_p_1): Likewise. |
| (ix86_need_alignment_p): Likewise. |
| (ix86_update_stack_alignment): Likewise. |
| (ix86_find_max_used_stack_alignment): Likewise. |
| (ix86_update_stack_alignment_2): Removed. |
| (ix86_update_stack_alignment_1): Likewise. |
| |
| 2026-07-14 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/vector.md: Leverage Wvr constraint. |
| |
| 2026-07-13 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR driver/124058 |
| * gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): |
| Remove leftover reference to OPT_Wuse_after_free. |
| |
| 2026-07-13 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR driver/124058 |
| * common.opt (Wuse-after-free): Make an alias for |
| -Wuse-after-free=1. |
| * doc/invoke.texi: Document alias. |
| * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): |
| Use OPT_Wuse_after_free_. |
| |
| 2026-07-13 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/120165 |
| * lra-constraints.cc (virtual_reg_p, contains_virtual_reg_p): New. |
| (reg_has_incdec_p): Ditto. |
| (lra_constraints): Use reg_has_incdec_p and contains_virtual_reg_p |
| to switch off the equiv. |
| |
| 2026-07-13 Nathan Sidwell <nathan@acm.org> |
| |
| * print-rtl.cc (rtx_writer::print_rtx_operand_code_i): Don't |
| fallback to UNSPEC enums if there are any UNSPECV enums. |
| (print_exp): Print unspec/unspecv name, when available. |
| |
| 2026-07-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/120635 |
| * doc/extend.texi (no_specializations): Document new |
| attribute. |
| * doc/invoke.texi (-Wno-invalid-specialization): Document new |
| warning. |
| |
| 2026-07-13 Odysseas Georgoudis <odygrd@hotmail.com> |
| |
| PR tree-optimization/113894 |
| * match.pd: Add simplifications for branchless conditional negate |
| and sign-test absolute value idioms. |
| |
| 2026-07-13 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| PR target/78799 |
| * config/i386/i386.cc (function_value_ms_64): Do not treat |
| integral 16-byte values as SSE returns. |
| (ix86_return_in_memory): Likewise avoid treating integral 16-byte |
| values as XMM returns. |
| |
| 2026-07-13 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.cc (rs6000_return_in_memory): Handle |
| TDOmode and emit "Dense Math" diagnostics. |
| (rs6000_function_arg): Reject TDOmode function parameters and |
| emit "Dense Math" diagnostics. |
| * config/rs6000/rs6000-modes.def: Add TDOmode. |
| |
| 2026-07-13 Dylan Rees <dylan.rees@arm.com> |
| |
| * cse.cc (struct cse_vec_duplicate_match): New struct. |
| (struct cse_basic_block_data): New member added. |
| (cse_prescan_cache_vec_dup): New function to cache any vector |
| duplications and check for potential matches. |
| (cse_prescan_path): Extended pre_scan loop to cache vector |
| duplication matches + New loop added to assign a list of |
| matches to a block of data inside new struct member. |
| (cse_main): New loop to emit wider vector duplication earlier |
| and update narrower vector duplicate to SUBREG insn. |
| |
| 2026-07-13 Dylan Rees <dylan.rees@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (aarch64_fold_lo_call_to_hi): |
| New branch to check for uniform vectors, extend and then add |
| them to the new highpart builtin call. |
| |
| 2026-07-13 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/125121 |
| * cgraph.cc (cgraph_edge::make_callback): Add missing call to |
| duplication hooks. |
| * ipa-prop.cc (init_callback_edge_summary): Remove function. |
| (ipa_compute_jump_functions_for_edge): Remove call to |
| init_callback_edge_summary, fix comment. |
| (ipa_edge_args_sum_t::duplicate): Fix the initialization of jump |
| functions vector for callback edges. |
| |
| 2026-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/t-sol2 (install-clearcap-map): Install as clearcap.map. |
| |
| 2026-07-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Common Attributes): Delete instances of |
| extra "the". |
| * doc/invoke.texi (Visium Options): Likewise. |
| * doc/tree-ssa.texi (SSA Operands): Likewise. |
| |
| 2026-07-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Options Summary) [C Language Options]: |
| Group --ansi with -ansi since they are documented together. |
| Correctly alphabetize -ffso-struct. |
| (C Dialect Options): Likeise correctly alphabetize -ffso-struct. |
| |
| 2026-07-13 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Option Summary): Add -fdeps-file, -fdeps-format, |
| and -fdeps-target. |
| (C Dialect Options): Properly alphabetize entries for the above |
| options, group them together, move the introductory paragraph |
| into the discussion of this group of items, and make the docs |
| more descriptive. |
| |
| 2026-07-12 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.md (*<any_extract:optab><GPR:mode>3): |
| Remove (clobber (match_scratch)) and use operand 0 as the |
| intermediate destination for the shift-left half of the split. |
| |
| 2026-07-12 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/104280 |
| * match.pd: Remove redundant build_one_cst (type) [PR104280] |
| |
| 2026-07-12 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/114009 |
| * match.pd: Remove redundant build_zero_cst (type) [PR114009] |
| |
| 2026-07-12 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| * match.pd: Remove one build_minus_one_cst (type) in r15-6257. |
| |
| 2026-07-12 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Add OPTION_MASK_DMF. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_option_override_internal): Enable |
| OPTION_MASK_DMF by default when TARGET_FUTURE is set and the |
| flag was not explicitly given; emit an error and clear the flag |
| when -mdense-math is requested on a non-future target. |
| (rs6000_opt_masks): Add "dense-math" entry for OPTION_MASK_DMF. |
| * config/rs6000/rs6000.opt (mdense-math): New option backed by Mask(DMF). |
| * config/rs6000/rs6000.opt.urls: Regenerated. |
| * doc/invoke.texi: Add -mdense-math. |
| |
| 2026-07-12 MITSUNARI Shigeo <herumi@nifty.com> |
| |
| * config/i386/i386.md (*bmi2_umul<mode>3_highpart): New pattern. |
| |
| 2026-07-12 MITSUNARI Shigeo <herumi@nifty.com> |
| |
| * expmed.cc (expand_wide_mulh_udiv): New function. |
| (expand_divmod): Use it for unsigned constant division needing a |
| wide multiplier on 64-bit targets, when no more expensive than the |
| sub/shift/add sequence. |
| |
| 2026-07-11 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| Revert: |
| 2026-07-11 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Add OPTION_MASK_DMF. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_option_override_internal): Enable |
| OPTION_MASK_DMF by default when TARGET_FUTURE is set and the |
| flag was not explicitly given; emit an error and clear the flag |
| when -mdense-math is requested on a non-future target. |
| (rs6000_opt_masks): Add "dense-math" entry for OPTION_MASK_DMF. |
| * config/rs6000/rs6000.opt (mdense-math): New option backed by Mask(DMF). |
| * doc/invoke.texi: Add -mdense-math. |
| |
| 2026-07-11 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Add OPTION_MASK_DMF. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_option_override_internal): Enable |
| OPTION_MASK_DMF by default when TARGET_FUTURE is set and the |
| flag was not explicitly given; emit an error and clear the flag |
| when -mdense-math is requested on a non-future target. |
| (rs6000_opt_masks): Add "dense-math" entry for OPTION_MASK_DMF. |
| * config/rs6000/rs6000.opt (mdense-math): New option backed by Mask(DMF). |
| * doc/invoke.texi: Add -mdense-math. |
| |
| 2026-07-10 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/57371 |
| * fold-const.cc (fold_cmp_float_cst_p): New helper function. |
| * fold-const.h (fold_cmp_float_cst_p): Prototype here. |
| * match.pd ((FTYPE) N CMP CST): Use the new helper |
| fold_cmp_float_cst_p to check that transformation to an integer |
| comparison is safe. |
| |
| 2026-07-10 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/48609 |
| * expr.cc (emit_group_load_1): When passing a complex value in an |
| integer mode of the same size, explicitly construct (hi<<N)+lo to |
| avoid spilling to memory before reload. |
| |
| 2026-07-10 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR target/99668 |
| * expr.cc (try_expand_complex_as_vector): Try to use vec_init_optab |
| to convert a complex number to a two-component vector with the same |
| inner type. |
| (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Check whether the |
| above function can be used to implement this VIEW_CONVERT_EXPR. |
| |
| 2026-07-10 Jim Lin <jim@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc |
| (riscv_multi_lib_info_t::parse): Remove early-out for multilibs |
| matching only the default march/mabi. |
| |
| 2026-07-10 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * match.pd: Simplify vector permute and insert patterns. |
| |
| 2026-07-10 Kael Andrew Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125738 |
| PR tree-optimization/64130 |
| * match.pd: Use tree_expr_nonnegative_p for (X / Y) (==,!=) 0 -> X (<,>=) Y. |
| |
| 2026-07-10 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * sel-sched-ir.cc (struct succs_info): Removed |
| unused variable current_succs. |
| |
| 2026-07-10 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/124808 |
| * match.pd(`(A >> CST1) CMP CST2`): New pattern. |
| |
| 2026-07-10 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * system.h [INCLUDE_ITERATOR]: '#include <iterator>'. |
| |
| 2026-07-10 Mark Wielaard <mark@klomp.org> |
| |
| * config/i386/i386.opt.urls: Regenerate. |
| |
| 2026-07-10 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/117922 |
| * fold-mem-offsets.cc (INCLUDE_ALGORITHM): Added definition. |
| (INCLUDE_FUNCTIONAL): Likewise. |
| (class pass_fold_mem_offsets): Moved to bottom of file. |
| (class change_info): New. |
| (def_shadowed_by_cond_exec_p): New. |
| (get_single_def_in_bb): Converted to RTL-SSA. |
| (get_fold_mem_offset_root): Converted to RTL-SSA. |
| (get_uses): Removed. |
| (fold_offsets): Converted to RTL-SSA. |
| (fold_offsets_value): New. |
| (fold_offsets_1): Converted to RTL-SSA. |
| (has_foldable_uses_p): Converted to RTL-SSA. |
| (get_fold_mem_root): Removed. |
| (insn_uses_not_in_bitmap): New. |
| (drop_unsafe_candidates): New. |
| (do_commit_offset): Converted to RTL-SSA. |
| (do_analysis): Removed. |
| (do_commit_insn): Converted to RTL-SSA. |
| (do_fold_info_calculation): Removed. |
| (sort_changes): New. |
| (struct regno_changes): New. |
| (sort_pairs): New. |
| (do_check_validity): Removed. |
| (get_last_def): New. |
| (move_uses_to_prev_def): New. |
| (compute_validity_closure): Removed. |
| (change_in_vec_p): New. |
| (cancel_changes_for_group): New. |
| (find_keys_to_remove): New. |
| (free_changes_info): New. |
| (update_insns): New. |
| (fold_mem_offsets_1): New. |
| (pass_fold_mem_offsets::execute): Moved to bottom of file. |
| (fold_mem_offsets): New. |
| |
| 2026-07-10 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx.cc (flexible_array_member_type_p): Rename to |
| 'nvptx_flexible_array_member_type_p'. |
| |
| 2026-07-10 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Adjust parens |
| so they wrap the macro parameter. |
| |
| 2026-07-10 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-protos.h (is_frac_vlmul_p): Add new func |
| decl to predicate frac vlmul for a mode. |
| * config/riscv/riscv-v.cc (is_frac_vlmul_p): Add new func impl |
| for above. |
| (riscv_v_widen_constraint_ok): Add Source and Dest lmul less |
| and equal 1 handling. |
| * config/riscv/vector.md: Leverage widen constraint Wvr. |
| |
| 2026-07-10 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/116860 |
| PR tree-optimization/114326 |
| * match.pd (`((a ^ b) & c) cmp d || a != b`): Expand |
| to support bit_and and fix up the :c. |
| |
| 2026-07-09 Paul-Antoine Arras <parras@baylibre.com> |
| Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * builtin-types.def (BT_FN_COMPLEX_INT): Remove. |
| (BT_FN_COMPLEX_INT_ULONGLONG): New. |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING): Use |
| BT_FN_COMPLEX_INT_ULONGLONG. |
| (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_START): Likewise. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING): Likewise. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_START): Likewise. |
| * omp-expand.cc (expand_omp_for_static_nochunk): Move worksharing |
| builtin call after iteration count computation; pass n as niter. |
| (expand_omp_for_static_chunk): Likewise. |
| |
| 2026-07-09 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * common.opt (fopenmp-ompt): New option. |
| (fopenmp-ompt-detailed): New option. |
| * common.opt.urls: Regenerate. |
| * doc/invoke.texi (Option Summary): Add -fopenmp-ompt and |
| -fopenmp-ompt-detailed. |
| (OpenMP and OpenACC Options): Document -fopenmp-ompt and |
| -fopenmp-ompt-detailed. |
| * omp-builtins.def (BUILT_IN_GOMP_SINGLE_START_WITH_END): New builtin. |
| (BUILT_IN_GOMP_SINGLE_END): New builtin. |
| (BUILT_IN_GOMP_MASKED_END): New builtin. |
| (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_START): New builtin. |
| (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_END): New builtin. |
| (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH): New builtin. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_START): New builtin. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_END): New builtin. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH): New builtin. |
| * omp-expand.cc (expand_omp_for_static_nochunk): With -fopenmp-ompt, |
| emit _start and _end variants instead of the plain worksharing call; |
| with -fopenmp-ompt-detailed, also emit _dispatch. |
| (expand_omp_for_static_chunk): Likewise. |
| * omp-low.cc (lower_omp_single_simple): With -fopenmp-ompt, use |
| GOMP_single_start_with_end instead of GOMP_single_start. |
| (lower_omp_single): With -fopenmp-ompt, emit GOMP_single_end. |
| (lower_omp_master): With -fopenmp-ompt, emit GOMP_masked_end. |
| * opts.cc (finish_options): Diagnose -fopenmp-ompt and |
| -fopenmp-ompt-detailed used without -fopenmp. |
| |
| 2026-07-09 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR debug/126169 |
| * rtl.h (rtx_def::u2): Add value_uid to the union. |
| (CSELIB_VAL_UID): New macro. |
| * cselib.h (cselib_val::HASH_MASK): Delete. |
| (cselib_val::hash): Restore to a full int. |
| (cselib_val::uid): Delete. |
| (canonical_cselib_val): Use CSELIB_VAL_UID instead of cselib_val::uid. |
| * alias.cc (refs_newer_value_p): Likewise. |
| * dse.cc (canon_address): Likewise. |
| * print-rtl.cc (rtx_writer::print_rtx_operand_code_0): Likewise. |
| * var-tracking.cc (dv_uid, canon_value_cmp): Likewise. |
| (variable_post_merge_new_vals): Likewise. |
| * cselib.cc (new_elt_loc_list, new_cselib_val): Likewise. |
| (cselib_lookup): Likewise. |
| (cselib_find_slot): Remove use of cselib_val::HASH_MASK. |
| |
| 2026-07-09 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR target/126121 |
| * config/m68k/m68k.md (bsetmemqi, *bsetmemqi_ext, bclrmemqi) |
| (*bclrmemqi_ext): Add AND with 7 around bit number. |
| |
| 2026-07-09 Karl Meakin <karl.meakin@arm.com> |
| |
| * bitmap.h: Replace uses of `CONSTEXPR` with `constexpr`. |
| * config/aarch64/aarch64-acle-builtins.cc: Likewise. |
| * config/aarch64/aarch64-builtins.cc: Likewise. |
| * config/aarch64/aarch64-protos.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. |
| * config/aarch64/aarch64.cc: Likewise. |
| * config/aarch64/driver-aarch64.cc: Likewise. |
| * config/arm/arm-mve-builtins-base.cc: Likewise. |
| * config/arm/arm-mve-builtins-functions.h: Likewise. |
| * config/arm/arm-mve-builtins-shapes.cc: Likewise. |
| * config/arm/arm-mve-builtins.cc: Likewise. |
| * config/riscv/andes-vector-builtins-bases.cc: Likewise. |
| * config/riscv/riscv-protos.h: Likewise. |
| * config/riscv/riscv-vector-builtins-bases.cc: Likewise. |
| * config/riscv/riscv-vector-builtins-shapes.cc: Likewise. |
| * config/riscv/riscv-vector-builtins.cc: Likewise. |
| * config/riscv/riscv-vector-builtins.h: Likewise. |
| * config/riscv/sifive-vector-builtins-bases.cc: Likewise. |
| * machmode.h: Likewise. |
| |
| 2026-07-09 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * doc/params.texi (widening-mul-defer-fma): Document. |
| * params.opt (-param=widening-mul-defer-fma=): New param. |
| * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): |
| Gate fma_deferring_state's enable predicate on |
| param_widening_mul_defer_fma on top of param_avoid_fma_max_bits. |
| * config/aarch64/aarch64-tuning-flags.def (AVOID_CROSS_LOOP_FMA): |
| Update the comment for the widening-mul-defer-fma effect. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): |
| Inside the AARCH64_EXTRA_TUNE_AVOID_CROSS_LOOP_FMA block, set |
| param_widening_mul_defer_fma to 0. |
| |
| 2026-07-09 Nathan Sidwell <nathan@acm.org> |
| |
| * Makefile.in (genprogrtl, genprogmd, genprogerr, genprog): Append, |
| rather than set. |
| * config/riscv/t-riscv: Delete genrvv-type-indexer workaround rule, |
| it is no longer needed. |
| |
| 2026-07-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/125207 |
| * ipa-cp.cc (decide_about_value): Add detailed dumping about skipping |
| a value when there are no edges for it. Make dumping about skipping |
| because of growth limit violation consistent with other cases. |
| (decide_whether_version_node): Only create all-context nodes for local |
| nodes, remove the logic doing it in other cases, allow cloning for |
| single constant lattices for non-local nodes. Adjust dumping. |
| |
| 2026-07-09 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/riscv-string.cc (riscv_vector_expand_block_move): |
| Gate the memcpy path on riscv_memcpy_size_threshold instead of |
| riscv_memmove_size_threshold. |
| |
| 2026-07-09 Jovan Dmitrovic <jovan.dmitrovic@htecgroup.com> |
| |
| * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure): |
| Return zero if there are enough registers to store new |
| invariants and induction variables. |
| |
| 2026-07-09 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/112472 |
| * match.pd ((trunc)copysign ((extend)x, CST) --> copysign (x, -1.0/1.0)): |
| New pattern. |
| |
| 2026-07-09 Zhou Xuhang <zhouxh2002@gmail.com> |
| |
| * match.pd: Canonicalize shifted high-half unsigned multiply |
| overflow checks to widened comparisons. Simplify widened unsigned |
| multiply comparison against the narrow type maximum to IFN_MUL_OVERFLOW. |
| |
| 2026-07-09 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def: Move AES builtins to future-vsx |
| stanza. |
| * doc/extend.texi: Add subheading for AES builtins. |
| |
| 2026-07-09 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config.gcc: Remove target s390-*. Don't accept |
| --with-mode=esa anymore. |
| * config.host: Remove target s390-*. |
| * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Remove definition |
| for s390. |
| * config/s390/2827.md: Remove scheduling information for |
| mnemonics which are only used by -m31 but not by -m64. |
| * config/s390/2964.md: Ditto. |
| * config/s390/3906.md: Ditto. |
| * config/s390/3931.md: Ditto. |
| * config/s390/8561.md: Ditto. |
| * config/s390/9175.md: Ditto. |
| * config/s390/constraints.md (ZL): Remove TARGET_64BIT test. |
| * config/s390/driver-native.cc (s390_host_detect_local_cpu): |
| Remove handling for -mesa/-mzarch. |
| * config/s390/htmxlintrin.h (__TM_failure_address): Remove |
| -m31 part. |
| * config/s390/linux.h: Remove -m31 parts. |
| * config/s390/predicates.md: Ditto. |
| * config/s390/s390-builtins.def: Rename RTL expander name for |
| s390_vsce[fg]. |
| * config/s390/s390-c.cc (s390_cpu_cpp_builtins): Remove |
| TARGET_{64BIT,ZARCH} tests. |
| * config/s390/s390-d.cc (s390_d_target_versions): Remove |
| TARGET_64BIT test. |
| * config/s390/s390.cc: Remove -m31 parts. In particular, there |
| is no need to distinguish between 64-bit registers in ABI |
| contexts anymore which is why UNITS_PER_WORD and UNITS_PER_LONG |
| always equal, now. Hence, replace UNITS_PER_LONG by |
| UNITS_PER_WORD. |
| * config/s390/s390.h: Ditto. |
| * config/s390/s390.md: Ditto. Mode iterator GPR is replaced by |
| DSI. Likewise, DGPR by new mode iterator TDSI. Remove mode |
| iterators P, DW, W because they are singletons, now. |
| * config/s390/s390.opt: Keep -m64 and -mzarch for backwards |
| compatibility. Mark -m31 and -mesa as undocumented. |
| * config/s390/s390.opt.urls: Regenerate. |
| * config/s390/t-linux64: Remove -m31 parts. |
| * config/s390/tpf.h (POINTERS_EXTEND_UNSIGNED): This is only |
| required for TPF which is why it is moved from s390.h here. |
| (TARGET_DEFAULT): Remove MASK_64BIT and MASK_ZARCH. |
| * config/s390/vector.md: Remove -m31 parts. |
| * config/s390/vx-builtins.md |
| (vec_scatter_element<V_HW_2:mode>_SI): There is no need for |
| multiplexing different address sizes for vec_scatter_element |
| anymore. |
| (vec_scatter_element<V_HW_32_64:mode>): Ditto. |
| * configure: Regenerate. |
| * configure.ac: Remove target s390-*. |
| * doc/install.texi: Remove mentions of s390 without also |
| referring to s390x. |
| * doc/invoke.texi: Remove options -m31 and -mesa. Document that |
| -m64 and -mzarch are the defaults, now, and that they don't have |
| any additional effect when explicitly specified. |
| * config/s390/s390x.h: Removed. |
| |
| 2026-07-08 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/riscv.h (TARGET_SFB_ALU): Add andes_45_series. |
| |
| 2026-07-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/126148 |
| * config/i386/i386-expand.cc (ix86_gen_ccmp_first): Restrict |
| floating-point modes accepted for ccmp according to the |
| available floating-point instruction set. |
| |
| 2026-07-08 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/126136 |
| * ifcvt.cc (noce_try_store_flag_logical): Fix for STORE_FLAG_VALUE |
| of -1. |
| |
| 2026-07-08 Jim Lin <jim@andestech.com> |
| |
| * config/riscv/spacemit-x60.md (spacemit_x60_alu): Remove cpop |
| from the type list. |
| |
| 2026-07-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Remove group_size |
| argument and adjust. |
| (vect_build_slp_tree_2): Likewise. |
| (vect_build_slp_tree): Likewise. |
| (optimize_load_redistribution_1): Likewise. |
| (vect_build_slp_instance): Likewise. |
| (vect_analyze_slp_reduc_chain): Likewise. |
| (vect_analyze_slp_reduction): Likewise. |
| (vect_analyze_slp_reduction_group): Likewise. |
| (vect_analyze_slp_instance): Likewise. |
| (vect_lower_load_permutations): Likewise. |
| |
| 2026-07-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126150 |
| * tree-cfg.cc (replace_uses_by): Delay purging of EH edges |
| until after FOR_EACH_IMM_USE_STMT finished. |
| |
| 2026-07-08 Martin Uecker <uecker@tugraz.at> |
| |
| * tree.h (flexible_array_member_type_p): New helper function. |
| * tree.cc (flexible_array_member_type_p): New helper function. |
| (flexible_array_type_p): Use new helper function. |
| |
| 2026-07-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126159 |
| * tree-data-ref.cc (dr_analyze_indices): Handle non-aggregate |
| union field accesses. |
| (access_fn_component_p): Adjust. |
| |
| 2026-07-08 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * match.pd: Simplify SAD(x, x, acc) into acc. |
| |
| 2026-07-08 Evgeny Karpov <evgeny.karpov@arm.com> |
| |
| * config/i386/cygming.h (TARGET_ASM_FUNCTION_END_PROLOGUE): |
| Rename. |
| (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Likewise. |
| (TARGET_ASM_INIT_SECTIONS): Likewise. |
| (SUBTARGET_ASM_UNWIND_INIT): Likewise. |
| (ASM_DECLARE_FUNCTION_SIZE): Likewise. |
| (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. |
| * config/i386/i386-protos.h (i386_pe_end_function): |
| Remove declarations. |
| (i386_pe_end_cold_function): Likewise. |
| (i386_pe_seh_init): Likewise. |
| (i386_pe_seh_end_prologue): Likewise. |
| (i386_pe_seh_cold_init): Likewise. |
| (i386_pe_seh_emit_except_personality): Likewise. |
| (i386_pe_seh_init_sections): Likewise. |
| * config/mingw/winnt.cc (defined): Update. |
| (struct seh_frame_state): Move to mingw/winnt.h. |
| (i386_pe_seh_init): Rename into ... |
| (mingw_pe_seh_init): ... this. |
| (i386_pe_seh_end_prologue): Rename into ... |
| (mingw_pe_seh_end_prologue): ... this. |
| (i386_pe_seh_cold_init): Rename into ... |
| (mingw_pe_seh_cold_init): ... this. |
| (i386_pe_seh_fini): Rename into ... |
| (mingw_pe_seh_fini): ... this. |
| (seh_emit_stackalloc): Rename into ... |
| (mingw_pe_seh_emit_stackalloc): ... this. |
| (seh_cfa_adjust_cfa): Update. |
| (seh_frame_related_expr): Update. |
| (i386_pe_seh_emit_except_personality): Rename into ... |
| (mingw_pe_seh_emit_except_personality): ... this. |
| (i386_pe_seh_init_sections): Rename into ... |
| (mingw_pe_seh_init_sections): ... this. |
| (i386_pe_end_function): Rename into ... |
| (mingw_pe_end_function): ... this. |
| (i386_pe_end_cold_function): Rename into ... |
| (mingw_pe_end_cold_function): ... this. |
| * config/mingw/winnt.h (struct seh_frame_state): |
| Move from mingw/winnt.cc. |
| (mingw_pe_end_cold_function): Add declarations. |
| (mingw_pe_end_function): Likewise. |
| (mingw_pe_seh_init): Likewise. |
| (mingw_pe_seh_init_sections): Likewise. |
| (mingw_pe_seh_cold_init): Likewise. |
| (mingw_pe_seh_emit_except_personality): Likewise. |
| (mingw_pe_seh_end_prologue): Likewise. |
| |
| 2026-07-08 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_create_addr_base_for_vector_ref): |
| Restructure computations to force separate base. |
| |
| 2026-07-08 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_slp_analyze_store_dependences, |
| vect_slp_analyze_load_dependences, |
| vect_slp_analyze_instance_dependence): Use for-each over for with len. |
| * tree-vect-slp.cc (vect_mark_slp_stmts_relevant, |
| ,vect_find_last_scalar_stmt_in_slp, vect_find_first_scalar_stmt_in_slp, |
| vect_build_slp_store_interleaving, vect_analyze_slp, |
| vect_slp_prune_covered_roots, vect_bb_partition_graph_r, |
| vect_remove_slp_scalar_calls): Likewise. |
| |
| 2026-07-08 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-pta-constraints.cc (find_func_aliases_for_builtin_call): |
| Correctly use SCALAR rhs from the variadic argument part of |
| the function info or from NONLOCAL in case of intra-PTA. |
| (find_func_aliases_for_call): Handle .VA_ARG. |
| |
| 2026-07-08 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/aarch64/tuning_models/ampere1.h (ampere1_scalar_issue_info) |
| (ampere1_advsimd_issue_info, ampere1_vec_issue_info): New. |
| (ampere1_vector_cost): Use ampere1_vec_issue_info for issue_info. |
| * config/aarch64/tuning_models/ampere1b.h (ampere1b_scalar_issue_info) |
| (ampere1b_advsimd_issue_info, ampere1b_vec_issue_info): New. |
| (ampere1b_vector_cost): Use ampere1b_vec_issue_info for issue_info. |
| |
| 2026-07-08 H.J. Lu <hjl.tools@gmail.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/124798 |
| PR target/125436 |
| * config/i386/i386-expand.cc: Include "function-abi.h". |
| (x86_64_ms_sysv_extra_clobbered_registers): Removed. |
| (ix86_expand_call): Don't add explicit call and ABI-switch |
| clobbers. |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Call |
| ix86_tls_get_addr_abi to get GNU TLS ABI and use it, instead of |
| default_function_abi, for registers clobbered by GNU TLS call. |
| (ix86_place_single_tls_call): Set CALL_INSN_ABI_ID on TLS calls. |
| * config/i386/i386-options.cc (ix86_set_current_function): Don't |
| call reinit_regs. |
| * config/i386/i386-protos.h |
| (ix86_type_no_callee_saved_registers_p): Removed. |
| (ix86_tls_get_addr_abi): New. |
| * config/i386/i386.cc (ix86_alternate_abi): New prototype. |
| (ix86_conditional_register_usage): Changed to describe the |
| system ABI. |
| (ix86_type_no_callee_saved_registers_p): Make it static. |
| (ix86_function_value_regno_p): Replace ix86_cfun_abi () with |
| ix86_abi. |
| (ix86_save_reg): Only check TYPE_NO_CALLEE_SAVED_REGISTERS as |
| a special case. |
| (ix86_tls_get_addr_abi): New. |
| (legitimize_tls_address): Set CALL_INSN_ABI_ID on TLS calls. |
| Call ix86_alternate_abi to initialize the alternate function ABI. |
| (ix86_initialize_abi): New function. |
| (ix86_no_callee_saved_abi): Likewise. |
| (ix86_no_caller_saved_abi): Likewise. |
| (ix86_standard_abi): Likewise. |
| (ix86_alternate_abi): Likewise. |
| (ix86_function_abi_id): Likewise. |
| (ix86_fntype_abi): Likewise. |
| (ix86_hard_regno_call_part_clobbered): Handle newly added ABIs. |
| (TARGET_FNTYPE_ABI): New. |
| * config/i386/i386.md: Add ABI_ALTERNATE, ABI_NO_CALLEE_SAVED, |
| ABI_NO_CALLER_SAVED_RETURN_VOID, ABI_NO_CALLER_SAVED_RETURN_AX, |
| ABI_NO_CALLER_SAVED_RETURN_AX_DX, |
| ABI_NO_CALLER_SAVED_RETURN_AX_XMM0, |
| ABI_NO_CALLER_SAVED_RETURN_XMM0 and |
| ABI_NO_CALLER_SAVED_RETURN_XMM0_XMM1. |
| |
| 2026-07-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/i386/i386.cc (ix86_function_arg): Remove always-true |
| condition. |
| |
| 2026-07-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/i386/i386-features.cc: Include function-abi.h. |
| (ix86_emit_tls_call): Use default_function_abi instead of |
| call_used_regs. |
| * config/i386/i386.cc (x86_order_regs_for_local_alloc): Likewise. |
| (ix86_save_reg, x86_64_select_profile_regnum): Use crtl->abi |
| instead of call_used_regs. |
| |
| 2026-07-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/i386/i386-protos.h (ix86_fntype_call_saved_registers): |
| Declare. |
| * config/i386/i386-options.cc (ix86_fntype_call_saved_registers): New |
| function, split out from... |
| (ix86_set_func_type): ...here. Avoid calling it if the result |
| would be ignored. |
| * config/i386/i386.cc (ix86_type_no_callee_saved_registers_p): Use |
| ix86_fntype_call_saved_registers instead of querying attributes |
| directly. |
| |
| 2026-07-08 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/constraints.md (Wtt): Rename to Wvr to |
| indicate widen vector register constraint. |
| * config/riscv/riscv-protos.h (riscv_widen_overlap_ok): Rename |
| from... |
| (riscv_vector_mode_p): Add new decl for riscv-v.cc visibile. |
| (riscv_hard_regno_nregs): Ditto. |
| (riscv_v_widen_constraint_ok): Rename to... |
| * config/riscv/riscv-v.cc (riscv_v_widen_constraint_ok): Rename |
| to... and take care of Wvr constraint. |
| * config/riscv/riscv.cc (riscv_vector_mode_p): Remove static. |
| (riscv_hard_regno_nregs): Ditto. |
| (riscv_widen_overlap_ok): Remove. |
| * config/riscv/vector.md: Rename to Wvr. |
| |
| 2026-07-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): |
| Remove +mpamv2. |
| * config/aarch64/aarch64-sys-regs.def: Remove sysregs associated |
| with MPAMv2_VID and adjust other related sysregs to use the |
| base permitted architecture. |
| * doc/invoke.texi (aarch64: +mpamv2): Remove option. |
| |
| 2026-07-07 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/aarch64/aarch64-cores.def (rigel): New entry. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options): Document the above. |
| |
| 2026-07-07 wangjue <juewang@linux.alibaba.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_option_optimization_table): |
| Enable -funroll-loops and -munroll-only-small-loops at -O2 and above. |
| * config/riscv/riscv.cc (struct riscv_tune_param): Add fields |
| small_loop_unroll_ninsns and small_loop_unroll_factor. |
| (xt_c9501_tune_info): Set them. |
| (riscv_loop_unroll_adjust): New function. |
| (riscv_option_override): Turn off -munroll-only-small-loops when |
| -funroll-loops or -funroll-all-loops is explicitly given. |
| (TARGET_LOOP_UNROLL_ADJUST): Define. |
| * config/riscv/riscv.opt (munroll-only-small-loops): New option. |
| * config/riscv/riscv.opt.urls: Regenerate. |
| * doc/invoke.texi (RISC-V Options): Document -munroll-only-small-loops. |
| |
| 2026-07-07 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_abs_plus<mode>): New |
| define_insn_and_split. |
| |
| 2026-07-07 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/124146 |
| * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): |
| Ignore user alignment left on a type's main variant; use the |
| mode's natural alignment instead. |
| |
| 2026-07-07 Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (UNSPEC_VUCMPRHN): New unspec entry. |
| (UNSPEC_VUCMPRLN): Likewise. |
| (UNSPEC_VUCMPRHB): Likewise. |
| (UNSPEC_VUCMPRLB): Likewise. |
| (UNSPEC_VUCMPRHH): Likewise. |
| (UNSPEC_VUCMPRLH): Likewise. |
| (UNSPEC_VUPKHSNTOB): Likewise. |
| (UNSPEC_VUPKLSNTOB): Likewise. |
| (UNSPEC_VUPKINT4TOBF16): Likewise. |
| (UNSPEC_VUPKINT8TOBF16): Likewise. |
| (UNSPEC_VUPKINT4TOFP32): Likewise. |
| (UNSPEC_VUPKINT8TOFP32): Likewise. |
| (vu_hl): New attribute. |
| (vu_lh): Likewise. |
| (VUPKNTOB): New int iterator. |
| (altivec_vupkhsntob): New define_insn. |
| (altivec_vupklsntob): Likewise. |
| (altivec_vupkint4tobf16): Likewise. |
| (altivec_vupkint8tobf16): Likewise. |
| (altivec_vupkint4tofp32): Likewise. |
| (altivec_vupkint8tofp32): Likewise. |
| (vucmpr_splat): New attribute. |
| (vucmpr_pcv): Likewise. |
| (vucmpr_uim): Likewise. |
| (VUCMPR_N): New int iterator. |
| (VUCMPR_B): Likewise. |
| (VUCMPR_H): Likewise. |
| (altivec_vucmpr<vu_hl>n): New define_expand. |
| (altivec_vucmpr<vu_hl>n_direct): New define_insn for vucmpr<vu_hl>n. |
| (altivec_vucmpr<vu_hl>b): New define_expand. |
| (altivec_vucmpr<vu_hl>b_direct): New define_insn for vucmpr<vu_hl>b. |
| (altivec_vucmpr<vu_hl>h): New define_expand. |
| (altivec_vucmpr<vu_hl>h_direct): New define_insn for vucmpr<vu_hl>h. |
| * config/rs6000/rs6000-builtins.def: Add vector uncompress and unpack |
| builtins under [future]. |
| * config/rs6000/rs6000-overload.def: Add vec_uncompress* and vec_unpack* |
| interfaces. |
| |
| 2026-07-07 Stafford Horne <shorne@gmail.com> |
| |
| PR target/126081 |
| * config/or1k/or1k.cc (or1k_hard_regno_mode_ok): Stop allowing |
| SImode for FLAG_REGS. |
| (or1k_can_change_mode_class): Stop allowing SImode for |
| FLAG_REGS. |
| (or1k_noce_conversion_profitable_p): Always check |
| or1k_is_cmov_insn. |
| |
| 2026-07-07 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/102202 |
| * tree-call-cdce.cc: Include "value-query.h" and "value-range.h". |
| (len_has_boolean_range_p): Remove. |
| (get_len_nonzero_value): New function. Return the nonzero member of |
| LEN's value range when it is a boolean range [0, 1] or an exact |
| two-value set {0, N}. |
| (can_shrink_wrap_len_p): Replace len_has_boolean_range_p call with |
| get_len_nonzero_value. Add NONZERO_LEN output parameter and set it |
| to the returned nonzero value on success. |
| (shrink_wrap_len_call): Use it to pin the length argument on the |
| guarded call path instead of build_one_cst. |
| (shrink_wrap_conditional_dead_built_in_calls): Declare local |
| nonzero_len and pass it to can_shrink_wrap_len_p and forward it to |
| shrink_wrap_len_call. |
| (pass_call_cdce::execute): Pass nullptr as NONZERO_LEN to |
| can_shrink_wrap_len_p. |
| |
| 2026-07-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125758 |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Create prefill stack. |
| (gimple_ranger::gimple_ranger): Dispose of prefill stack. |
| (gimple_ranger::prefill_name): Maybe push name on prefill stack. |
| (gimple_ranger::prefill_stmt_dependencies): Implement a DFS |
| stack for dependency satisfaction. |
| * gimple-range.h (struct prefill_frame): New. |
| (m_prefill_stack): New. |
| (prefill_name): Sadjust parameters. |
| (m_active_prefill): New. |
| |
| 2026-07-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125758 |
| * gimple-range-cache.cc (struct time_stamp): New. |
| (set_timestamp): Deleted. |
| (set_timestamp_stored): New. |
| (set_timestamp_calc): New. |
| (set_always_current): Remove a parameter. |
| (temporal_value): Remove. |
| (temporal_value_stored): New., |
| (temporal_value_calc): New. |
| (m_timestamp): Change to vector of struct time_stamp. |
| (temporal_cache::temporal_cache): Adjust. |
| (temporal_cache::current_p): Use both timestamps. |
| (temporal_cache::set_always_current): 0 means always current. |
| (temporal_cache::always_current_p): Check for 0. |
| (ranger_cache::get_global_range): adjust params. |
| (ranger_cache::update_consumers): Set stored timestamp. |
| (ranger_cache::set_global_range): Use new timestamps. |
| |
| 2026-07-06 Mark Zhuang <zhuangqiubin@linux.spacemit.com> |
| |
| * config/riscv/riscv-cores.def (spacemit-x60): Use rva22u64 |
| profile shorthand, add missing entries. |
| |
| 2026-07-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_build_slp_instance): For BB reductions |
| note the first root stmt. |
| |
| 2026-07-06 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (*vec_set<mode>): Ad TImode instruction. |
| |
| 2026-07-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/vms/vms.h (ADA_LONG_TYPE_SIZE): Delete. |
| * doc/tm.texi.in (ADA_LONG_TYPE_SIZE): Likewise. |
| * doc/tm.texi: Regenerate. |
| * system.h (ADA_LONG_TYPE_SIZE): Poison. |
| |
| 2026-07-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/aarch64/aarch64.h (WIDEST_HARDWARE_FP_SIZE): Delete. |
| * config/alpha/alpha.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/ia64/vms.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/pa/pa.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/s390/s390.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * config/visium/visium.h (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * doc/tm.texi.in (WIDEST_HARDWARE_FP_SIZE): Likewise. |
| * doc/tm.texi: Regenerate. |
| * system.h (WIDEST_HARDWARE_FP_SIZE): Poison. |
| |
| 2026-07-06 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/120892 |
| * gimple-ssa-split-paths.cc: Remove. |
| * passes.def (pass_split_paths): Remove. |
| * tree-pass.h (make_pass_split_paths): Remove. |
| * Makefile.in (OBJS): Remove gimple-ssa-split-paths.o. |
| * timevar.def (TV_SPLIT_PATHS): Remove. |
| * opts.cc (default_options_table): Remove the OPT_LEVELS_3_PLUS entry |
| for OPT_fsplit_paths. |
| * common.opt (fsplit-paths): Make it a deprecated no-op using Ignore. |
| * doc/invoke.texi (-fsplit-paths): Document as deprecated and remove it |
| from the option summary and the -O3 list. |
| |
| 2026-07-06 H.J. Lu <hjl.tools@gmail.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR target/109780 |
| PR target/109093 |
| PR target/123210 |
| PR target/124098 |
| PR target/124165 |
| PR target/124684 |
| PR target/124759 |
| PR target/124789 |
| * alias.cc (static_reg_base_value): Moved to rtl.h. |
| (find_base_term): Remove static. |
| * alias.h (find_base_term): New prototype. |
| * function.cc (thread_prologue_and_epilogue_insns): Call |
| init_alias_analysis and end_alias_analysis. |
| * rtl.h (static_reg_base_value): Moved from alias.cc. |
| * config/i386/i386.cc (stack_access_data): Removed. |
| (ix86_find_all_reg_uses_1): Likewise. |
| (ix86_find_all_reg_uses): Likewise. |
| (ix86_access_stack_p): Likewise. |
| (ix86_need_alignment_p_2): Likewise. |
| (ix86_need_alignment_p_1): Likewise. |
| (ix86_need_alignment_p): Likewise. |
| (ix86_update_stack_alignment_2): New function. |
| (ix86_update_stack_alignment_1): Likewise. |
| (ix86_update_stack_alignment): Rewrite. |
| (ix86_find_max_used_stack_alignment): If check_stack_slot is |
| true, call ix86_update_stack_alignment on each INSN. |
| |
| 2026-07-06 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/126098 |
| * config/i386/sse.md (VI1_AVX512VNNIBW): Remove. |
| (sdot_prod<ssedvecmodelower><mode>): Use VI1_AVX512 instead of |
| VI1_AVX512VNNIBW so V64QI is enabled only under AVX512BW. |
| (udot_prod<ssedvecmodelower><mode>): Likewise. |
| |
| 2026-07-05 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/126094 |
| * config/aarch64/aarch64-simd.md (aarch64_cmtst<mode><vczle><vczbe>): |
| Update pattern to match recent RTL simplification. |
| (*aarch64_cmtst<mode><vczle><vczbe>): Preserve the original. |
| (*aarch64_cmtst_same_<mode><vczle><vczbe>): Additional variant. |
| |
| 2026-07-05 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125641 |
| * match.pd: Fix #ifdef GIMPLE typo. |
| |
| 2026-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_clearcap): Remove. |
| Link clearcap.map to config/sol2-clearcap.map with Solaris ld. |
| * configure: Regenerate. |
| * config.in: Likewise. |
| * config/sol2-clearcap.map: Remove. |
| * config/sol2-clearcapv2.map: Rename to sol2-clearcap.map. |
| * config/t-sol2 (install-clearcap-map): Install source file |
| directly. |
| * config/sol2.h (LINK_CLEARCAP_SPEC): Guard with HAVE_SOLARIS_LD. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67643 |
| PR target/126117 |
| * config/sh/sh.cc (fpscr_set_from_mem): Add missing argument to |
| get_free_reg invocation. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67643 |
| * config/sh/sh.cc (fpscr_set_from_mem): Specify a post-inc memory |
| operand for lds_fpscr after RA. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/55212 |
| * config/sh/sh-protos.h (sh_lra_p): Remove. |
| (sh_legitimize_reload_address): Remove. |
| * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Remove. |
| * config/sh/sh.cc (sh_legitimize_reload_address): Remove. |
| (prepare_move_operands, broken_move): Remove sh_lra_p uses. |
| * config/sh/constraints.md (Rab, Rai, Ssd): Likewise. |
| * config/sh/sh.md: Likewise. Remove reload-only *addsi3 patterns. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh.cc (emit_fpu_switch): Delete and merge into... |
| (fpscr_set_from_mem): ...this. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/116709 |
| * config/sh/sh.md (movsf_ie): Mark constant-pool load FPUL |
| alternative with '*'. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67459 |
| PR target/122948 |
| * config/sh/sh.md (addc): Fix T bit set expression. |
| (subc): Likewise. |
| |
| 2026-07-05 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/124778 |
| * config/sh/sh.md (extend<mode>si2_short_mem_disp_z): Move after |
| '*extend<mode>si2_compact_mem_disp' patterns. |
| |
| 2026-07-04 Filip Kastl <fkastl@suse.cz> |
| |
| * config/i386/i386.cc: Add override specifier for |
| better_epilogue_loop_than_p. |
| |
| 2026-07-03 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/122569 |
| * match.pd (clz_msb_iso_table_index): New match pattern. |
| * tree-ssa-forwprop.cc (gimple_clz_msb_iso_table_index): Declare. |
| (simplify_count_zeroes): Recognize the new pattern; route its |
| table validation through the CTZ checkfn. Relax the element |
| type check to accept integer types up to 64 bits. |
| |
| 2026-07-03 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * match.pd (msb_or_cascade_32, msb_or_cascade_64): New match |
| helpers. |
| (clz_table_index): Rewrite the 32-bit and 64-bit forms to use |
| the cascade helpers. |
| |
| 2026-07-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/106164 |
| PR tree-optimization/126042 |
| PR tree-optimization/94589 |
| * fold-const.cc (combine_comparisons): Split into |
| 2 versions. Also handle BIT_AND_EXPR and BIT_IOR_EXPR. |
| * fold-const.h (combine_comparisons): New declaration. |
| * match.pd (`(a CMP1 b) BITOP (a CMP2 b)`): New pattern. |
| |
| 2026-07-03 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_out_plus_1): Handle +/-1 on the |
| lower regs without needing a scratch. |
| * config/avr/avr.md (add<mode>3_clobber, *add<mode>3_clobber) |
| (add<mode>3, *add<mode>3, addpsi3, *addpsi3): Add constraint |
| alternative "Y01 Ym1" for +/-1 without scratch. |
| |
| 2026-07-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (synthesize_add): Utilize shNadd.uw when |
| appropriate. |
| |
| 2026-07-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (and_synthesis): Use riscv_integer_cost rather |
| than riscv_const_insns. Use rotate+clear_bits+rotate when useful. |
| |
| 2026-07-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Make |
| profitabilty decision easier to debug. |
| |
| 2026-07-03 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/102202 |
| * tree-call-cdce.cc: Include "tree-ssanames.h", "gimple-fold.h". |
| (len_has_boolean_range_p): New function. |
| (can_shrink_wrap_len_p): New function. |
| (gen_zero_len_conditions): New function. |
| (shrink_wrap_len_call): New function. |
| (shrink_wrap_conditional_dead_built_in_calls): Dispatch to |
| shrink_wrap_one_memset_call for memset calls eligible for the [0, 1] |
| length transform, ahead of the generic LHS and range-test paths. |
| (pass_call_cdce::execute): Collect memset calls satisfying |
| can_shrink_wrap_memset_p as shrink-wrap candidates. |
| |
| 2026-07-03 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/120027 |
| * config/aarch64/aarch64-sve-builtins-base.cc (svext_bhw_impl::fold): |
| New member function. Fold the unsigned svextb/svexth/svextw |
| intrinsics to a bitwise AND when the merging form has an all-true |
| predicate. |
| |
| 2026-07-03 Tamar Christina <tamar.christina@arm.com> |
| Chris Bazley <Chris.Bazley@arm.com> |
| |
| * expr.cc (store_constructor): Handle VLA vec_init support and generic |
| fall through piecewise copy. |
| * doc/md.texi: Document change |
| |
| 2026-07-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (synthesize_ior_xor): Use riscv_integer_cost |
| rather than riscv_const_insns. |
| |
| 2026-07-03 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh.opt.urls: Renegerate. |
| * config/vax/vax.opt.urls: Renegerate. |
| |
| 2026-07-03 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/55212 |
| * config/sh/sh.opt (mlra): Ignore option but keep it around |
| for compatibility. |
| * config/sh/sh.cc (TARGET_LRA_P): Remove. |
| (sh_lra_p): Move definition ... |
| * config/sh/sh-protos.h (sh_lra_p): ... here. Always return true. |
| * doc/invoke.texi: Remove mention of -mlra for SH. |
| |
| 2026-07-03 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/55212 |
| * config/sh/sh.md (movv2sf, movv2sf_i, unnamed splits): New patterns. |
| * config/sh/sh.cc (sh_hard_regno_mode_ok): Allow V2SF only in fp-regs. |
| (sh_max_mov_insn_displacement): Return 0 for any float mode. |
| |
| 2026-07-03 Kaz Kojima <kkojima@rr.iij4u.or.jp> |
| |
| PR target/55212 |
| * config/sh/sh.md (extend<mode>si2_short_mem_disp_z): New |
| insn_and_split. |
| (extend<mode>si2): Use it for LRA. |
| (mov<mode>_store_mem_index, *mov<mode>_store_mem_index): New patterns. |
| (mov<mode>): Use it for LRA. |
| (movsf_ie_store_mem_index, movsf_ie_load_mem_index, |
| *movsf_ie_store_mem_inde, *movsf_ie_load_mem_index): New patterns. |
| (movsf): Use it for LRA. |
| |
| 2026-07-03 Kaz Kojima <kkojima@rr.iij4u.or.jp> |
| |
| PR target/55212 |
| * config/sh/predicates.md (pc_relative_load_operand): New predicate. |
| * config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Remove. |
| (sh_movsf_ie_y_split_p): New proto. |
| (sh_movsf_ie_subreg_multiword_p): New proto. |
| * config/sh/sh.cc: (sh_movsf_ie_ra_split_p): Remove. |
| (sh_movsf_ie_y_split_p): New function. |
| (sh_movsf_ie_subreg_multiword_p): New function. |
| (broken_move): Take movsf_ie_ra into account for fldi cases. |
| * config/sh/sh.md (movdf_i4_F_z): New insn. |
| (movdf): Use it when expanding. |
| (movsf_ie_ra): Use define_insn instead of define_insn_and_split. |
| Adjust alternatives. |
| (movsf_ie_rffr): New insn_and_split. |
| (movsf_ie_F_z, movsf_ie_Q_z, movsf_ie_y): New insns. |
| (movsf): Use new patterns when expanding. |
| |
| 2026-07-02 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_vector_costs::determine_suggested_unroll_factor): Add a |
| loop_vec_info parameter. |
| (determine_suggested_unroll_factor): Cap the suggested unroll for |
| small-niters loops. |
| (aarch64_vector_costs::finish_cost): Pass loop_vinfo to |
| determine_suggested_unroll_factor. |
| |
| 2026-07-02 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/bitmanip.md (xor_for_plus_minint): New pattern. |
| * config/riscv/riscv.cc (synthesize_add): Handle INT_MIN as |
| bit inversion. Add support for add.uw. Use riscv_integer_cost |
| rather than riscv_const_insns. |
| (synthesize_add_extended): Use riscv_integer_cost rather than |
| riscv_const_insns. |
| |
| 2026-07-02 Sivan Shani <sivan.shani@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Check for SVE2 and SVE_AES directly. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (REQUIRED_EXTENSIONS): |
| Make AES builtins streaming-compatible with SSVE AES. |
| * config/aarch64/aarch64-sve2.md: Use TARGET_SVE_AES instead of |
| TARGET_SVE2_AES. |
| * config/aarch64/aarch64.h (TARGET_SVE2_AES): Rename to... |
| (TARGET_SVE_AES): Add support for SSVE AES. |
| * config/aarch64/iterators.md: Use TARGET_SVE2 for VNx2DI |
| PMULL pair mode. |
| |
| 2026-07-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| PR target/97344 |
| * config.in: Re-generate. |
| * config/aarch64/aarch64.cc (aarch64_output_dwarf_dtprel): Define |
| function. |
| (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define macro. |
| * configure: Re-generate. |
| * configure.ac: Add assemler check for dtprel relocation. |
| |
| 2026-07-02 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-mve-builtins-shapes.cc (SHAPE): Add a |
| trailing statement that lacks a semicolon. Add that to all |
| existing uses. |
| |
| 2026-07-02 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (SHAPE): Add a |
| trailing statement that lacks a semicolon. Add that to all |
| existing uses. |
| |
| 2026-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_fn_gld_min_version): New function. |
| (gcc_fn_gld_elf_min_version): Likewise. |
| Use them. |
| * configure: Regenerate. |
| |
| 2026-07-02 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/124545 |
| * match.pd: Add (T)A +- CST -> (T)(A +- CST') for widening |
| conversions from a signed inner type with undefined overflow. |
| |
| 2026-07-02 Kaz Kojima <kkojima@rr.iij4u.or.jp> |
| |
| PR target/117182 |
| PR target/55212 |
| * target.def (cannot_substitute_const_equiv_p): New target hook. |
| * doc/tm.texi.in: Add it. |
| * lra-constraints.cc (get_equiv): Use it. |
| * config/sh/sh.cc (sh_cannot_substitute_const_equiv_p): Override it. |
| * doc/tm.texi: Re-generate. |
| |
| 2026-07-02 Kaz Kojima <kkojima@rr.iij4u.or.jp> |
| |
| PR target/55212 |
| * config/sh/predicates.md (hard_reg_r0..r7): New predicates. |
| * config/sh/sh.md (udivsi3_i4, udivsi3_i4_single, |
| udivsi3_i1): Rewrite with match_operand and match_dup. |
| (block_lump_real, block_lump_real_i4): Ditto. |
| (udivsi3): Adjust for it. |
| * config/sh/sh-mem.cc (expand_block_move): Ditto. |
| |
| 2026-07-01 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR objc/124260 |
| * config/darwin.cc (darwin_objc2_section): Also allow meta data |
| in const_data. |
| (darwin_label_is_anonymous_local_objc_name): Make ClassList linker- |
| visible. |
| (darwin_file_end): Update comments on the ImageInfo flags. Do not |
| claim we have signed pointers. |
| |
| 2026-07-01 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.md: Annotate mnemonic for |
| extzv_<mode>_{srl,sll}<clobbercc_or_nocc>. |
| |
| 2026-07-01 Icenowy Zheng <zhengxingda@iscas.ac.cn> |
| |
| PR target/126049 |
| * config/riscv/autovec.md: Change fmin/fmax reduction initial |
| value from inf/-inf to NaN for proper semantics of corresponding |
| C funtion. |
| |
| 2026-07-01 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * doc/md.texi: Document new behavior. |
| * lra-constraints.cc (get_dependent_filter): Call filter with |
| INVALID_REGNUM ref op instead of allowing everything. |
| |
| 2026-07-01 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/gcn/gcn.h (ASM_V_SPEC): Define. |
| |
| 2026-07-01 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-loop-manip.cc (vect_set_loop_condition_normal): |
| Check if loop_vinfo is null before dereference. |
| |
| 2026-07-01 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-features.cc (compute_convert_gain) <ZERO_EXTEND>: |
| Provide costs for the new transformation. |
| (convert_insn): Implement *zero_extendsidi2 using the backend's |
| vec_setv2di_0_zero_extendsi_1 pattern (i.e. movq mem, %xmm). |
| (general_scalar_to_vector_candidate_p): Consider the pattern |
| (zero_extend:DI (mem:SI ...)) to be a candidate for DImode STV. |
| |
| 2026-07-01 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_ternary_operation) |
| <case VEC_MERGE>: Simplify a vec_merge of a vec_merge with a |
| repeated operand. |
| |
| 2026-07-01 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/126054 |
| * config/s390/s390.md: Fix |
| extzv_<mode>_{srl,sll}<clobbercc_or_nocc> by adjusting the |
| bitmasks in the output templates. |
| |
| 2026-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/aarch64/tuning_models/neoversev2.h |
| (neoversev2_dispatch_constraint_callback): Remove spurious semicolon. |
| * config/aarch64/aarch64-elf-metadata.cc |
| (gnu_property_features_to_string): Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (SHAPE (write_zt), |
| SHAPE (write_lane_zt)): Likewise. |
| |
| 2026-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.h: Use |
| namespace aarch64_acle { namespace functions { ... } } instead of |
| C++17 namespace aarch64_acle::functions { ... }. |
| * config/aarch64/aarch64-neon-builtins-shapes.h: Use |
| namespace aarch64_acle { namespace shapes { ... } } instead of |
| C++17 namespace aarch64_acle::shapes { ... }. |
| * config/aarch64/aarch64-neon-builtins-shapes.cc: Likewise. |
| |
| 2026-07-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125040 |
| * tree-ssa-pre.cc (clean): Iterate processing. |
| |
| 2026-07-01 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-ssa-loop-manip.h: Add argument to create_iv. |
| * tree-ssa-loop-manip.cc (create_iv): Change step to not |
| necessarily be loop invariant. |
| * tree-vect-data-refs.cc (bump_vector_ptr): Remove logic for |
| updating use-def chain. |
| * tree-vect-loop-manip.cc (vect_set_loop_controls_directly): |
| Change to use LOOP_VINFO_IV_INCREMENT instead of VF. |
| (vect_set_loop_condition_partial_vectors_avx512): |
| Change to use LOOP_VINFO_IV_INCREMENT instead of VF. |
| (vect_gen_vector_loop_niters): Update to handle |
| LOOP_VINFO_IV_INCREMENT. |
| (vect_get_loop_iv_increment): New function. |
| * tree-vect-loop.cc (vectorizable_induction): Update to use |
| LOOP_VINFO_IV_INCREMENT instead of VF, and remove SELECT_VL |
| logic. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): |
| Update to use LOOP_VINFO_IV_INCREMENT over VF and move IV |
| update to vect_iv_increment_position. |
| (vect_transform_loop): Add initialization of |
| LOOP_VINFO_IV_INCREMENT. |
| * tree-vect-stmts.cc (vect_get_strided_load_store_ops): |
| Update to use dr_increment and dr_bump, remove SELECT_VL logic. |
| (vect_get_data_ptr_increment): Change to return the increment |
| needed to advance the pointer to the next iteration. |
| (vect_get_data_ptr_bump): New function. |
| (vectorizable_scan_store): Update to use vect_get_data_ptr_bump |
| and to remove SELECT_VL logic. |
| (vectorizable_store): Update to use vect_get_data_ptr_bump and |
| vect_get_data_ptr_increment. |
| (vectorizable_load): Update to use vect_get_data_ptr_bump and |
| vect_get_data_ptr_increment. |
| * tree-vectorizer.h (loop_vec_info): Add iv_increment field. |
| (LOOP_VINFO_IV_INCREMENT): New macro. |
| (LOOP_VINFO_IV_INCREMENT_INVARIANT_P): New macro. |
| (bump_vector_ptr): Remove incr_ptr argument. |
| (vect_get_loop_iv_increment): New function. |
| |
| 2026-07-01 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Check for null |
| pntr_incr. |
| |
| 2026-07-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125040 |
| * tree-ssa-pre.cc (sorted_array_from_bitmap_set): Compute |
| the set of entries to the value graph before building the |
| final sorted expression set. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac: Remove --with-gnu-ld, gnu_ld_flag. |
| * configure: Regenerate. |
| * config.gcc: Remove gnu_ld_flag. |
| * doc/install.texi (Configuration, --with-gnu-ld): Remove. |
| (Specific, all ELF targets): Remove GNU ld link. |
| * doc/invoke.texi (IA-64 Options, -mgnu-ld): Remove comment. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Remove gnu_ld. |
| <*-*-vms*>: Check ld_flavor instead of gnu_ld. |
| <ia64*-*-elf*> (target_cpu_default): Always add MASK_GNU_LD. |
| <mips*-*-*> (target_cpu_default2): Always add |
| MASK_SPLIT_ADDRESSES. |
| <hppa*64*-*-hpux11*> (target_cpu_default): Check ld_flavor instead |
| of gnu_ld. Move ... |
| * configure.ac: ... here. |
| Remove gnu_ld. |
| Check ld_flavor instead of gnu_ld. |
| (gcc_cv_ld_static_dynamic) <*-*-hpux*>: Don't check gnu_ld. |
| (gcc_cv_ld_version_script): Check ld --help for --version-script. |
| (gcc_cv_ld_soname): Check ld --help for -soname. |
| <*-*-darwin*>: Always use Darwin version. |
| <*-*-solaris2*>: Always use Solaris version with Solaris ld. |
| (gcc_cv_ld_demangle): Don't check gnu_ld. |
| * configure: Regenerate. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (HAVE_GNU_LD): Remove. |
| (gcc_cv_ld_at_file): New test. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * collect2.cc: Check HAVE_LD_AT_FILE instead of HAVE_GNU_LD. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac: Remove --with-gnu-as, gas_flag. |
| * configure: Regenerate. |
| * config.gcc: Remove gas_flag. |
| * doc/install.texi (Configuration, --with-gnu-as): Remove. |
| (Specific, hppa64-hp-hpux11*): Remove --with-gnu-as reference. |
| (Specific, ia64-*-hpux*): Likewise. Recomment --with-as instead. |
| * doc/invoke.texi (IA-64 Options, -mgnu-as): Remove comment. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_GAS_FLAGS): Check as_flavor instead of gas. |
| * config.gcc: Remove gas. |
| <ia64*-*-elf*> (target_cpu_defaults): Always add MASK_GNU_AS. |
| <ia64-hp-*vms*>: Likewise. |
| <hppa*-*-*> (target_cpu_default2): Always add MASK_GAS. |
| * configure.ac: Remove gas. |
| * configure: Regenerate. |
| |
| 2026-07-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-structalias.cc (set_uids_in_ptset): If ANYTHING is |
| present in the ESCAPED_RETURN solution, record that the global |
| solution has an escaped heap if FROM contains a heap variable. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gcc.cc (asm_options) [HAVE_GNU_AS]: Move to ... |
| (ASM_V_SPEC) ... this. |
| * config/nvptx/nvptx.h (ASM_SPEC): Rename to ASM_V_SPEC. |
| Adjust comment. |
| * config/rs6000/aix.h [HAVE_AIX_AS] (ASM_V_SPEC): Define. |
| * config/sol2.h (ASM_SPEC_BASE): Move -v handling to ... |
| [HAVE_SOLARIS_AS] (ASM_V_SPEC): ... this. Also handle -w. |
| * doc/tm.texi.in (Driver, ASM_V_SPEC): Document. |
| * doc/tm.texi: Regenerate. |
| * config/darwin.h (ASM_OPTIONS): Remove. |
| * config/i386/darwin.h (ASM_SPEC): Remove ASM_OPTIONS. |
| * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove. |
| * configure.ac (HAVE_GNU_AS): Remove. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2026-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4: Check as_flavor, ld_flavor instead of solaris_as, |
| solaris_ld. |
| * configure.ac: Likewise. |
| (as_flavor, ld_flavor): New variables. |
| Adapt messages. |
| Set based on as, ld version output. |
| (HAVE_AIX_AS): Define. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2026-07-01 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * common/config/i386/cpuinfo.h |
| (get_available_features): Remove AMX-TF32. |
| * common/config/i386/i386-common.cc |
| (OPTION_MASK_ISA2_AMX_TF32_SET): Removed. |
| (OPTION_MASK_ISA2_AMX_TF32_UNSET): Ditto. |
| (OPTION_MASK_ISA2_AMX_TILE_UNSET): Remove AMX_TF32. |
| (ix86_handle_option): Ditto. |
| * common/config/i386/i386-cpuinfo.h |
| (enum processor_features): Remove FEATURE_AMX_TF32. |
| * common/config/i386/i386-isas.h: Remove AMX-TF32. |
| * config.gcc: Do not include amxtf32intrin.h. |
| * config/i386/amxtf32intrin.h: Remove AMX-TF32 intrins. |
| * config/i386/cpuid.h (bit_AMX_TF32): Removed. |
| * config/i386/i386-c.cc |
| (ix86_target_macros_internal): Remove AMX_TF32. |
| * config/i386/i386-isa.def (AMX_TF32): Removed. |
| * config/i386/i386-options.cc |
| (ix86_valid_target_attribute_inner_p): Remove AMX-TF32. |
| * config/i386/i386.opt: Ditto. |
| * config/i386/i386.opt.urls: Ditto. |
| * config/i386/immintrin.h: Do not include amxtf32intrin.h. |
| * doc/extend.texi: Remove amx-tf32. |
| * doc/invoke.texi: Ditto. |
| * doc/sourcebuild.texi: Ditto. |
| |
| 2026-07-01 Haochen Jiang <haochen.jiang@intel.com> |
| |
| * config/i386/i386.h (PTA_DIAMONDRAPIDS): Remove PTA_AMX_TF32. |
| * doc/invoke.texi: Correct documentation. |
| |
| 2026-06-30 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/55212 |
| * config/sh/predicates.md (simple_mem_operand): |
| Use 'satisfies_constraint_Sra'. |
| (post_inc_mem, pre_dec_mem): Use 'satisfies_constraint_Rab'. |
| * config/sh/constraints.md (Rab, Rai, Sgb): New constraints. |
| (Sua, Sdd, Snd, Ssd, Sbv, Sra, Ara, Add): Use Rab and Rai constraints. |
| * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): Reject |
| GBR addresses when hard-llcs atomic mode is enabled. |
| |
| 2026-06-30 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * config/aarch64/aarch64.cc: Include gimple-fold.h. |
| (aarch64_try_widen_mult_by_pow2): New function. |
| (aarch64_instruction_selection): Call it for conversion assignments. |
| |
| 2026-06-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125961 |
| * tree-ssa-phiopt.cc (factor_out_conditional_operation): Use |
| remove_phi_node instead of gsi_remove for the phi node. |
| (factor_out_conditional_load): Likewise. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-acle-builtins.h |
| (TYPES_neon_reinterpret1, TYPES_neon_reinterpret, |
| TYPES_neon_reinterpretq1, TYPES_neon_reinterpretq, |
| neon_reinterpret, neon_reinterpretq): New type lists. |
| * config/aarch64/aarch64-builtins.cc (VREINTERPRET_BUILTIN2, |
| VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS, |
| VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1, |
| VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN): Delete macros. |
| (AARCH64_SIMD_VREINTERPRET_BUILTINS): Delete enum member. |
| (aarch64_init_simd_intrinsics): Delete function. |
| (init_arm_neon_builtins): Delete call to |
| `aarch64_init_simd_intrinsics`. |
| (aarch64_general_fold_builtin): Delete case for |
| `AARCH64_SIMD_VREINTERPRET_BUILTINS`. |
| * config/aarch64/aarch64-neon-builtins-base.cc (struct |
| gimple_reinterpret): New struct. |
| (vreinterpret, vreinterpretq): New function bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vreinterpret, |
| vreinterpretq): New function groups. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-simd-pragma-builtins.def (vext_mf8, |
| vextq_mf8, vrev64_mf8, vrev64q_mf8, vrev32_mf8, vrev32q_mf8, |
| vrev16_mf8, vrev16q_mf8, vtrn1_mf8, vtrn1q_mf8, vtrn2_mf8, |
| vtrn2q_mf8, vtrn_mf8, vtrnq_mf8, vuzp1_mf8, vuzp1q_mf8, |
| vuzp2_mf8, vuzp2q_mf8, vuzp_mf8, vuzpq_mf8, vzip1_mf8, |
| vzip1q_mf8, vzip2_mf8, vzip2q_mf8, vzip_mf8, vzipq_mf8): |
| Delete functions. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): |
| Handle `D` or `Q` followed by `x1,x2,x3,x4` to mean tuple |
| types. |
| * config/aarch64/aarch64-acle-builtins.h (TYPES_bh_poly, |
| TYPES_bhs_neon, TYPES_neon_rev16, TYPES_neon_rev32, |
| TYPES_neon_rev64): New type lists. |
| (bh_poly, bhs_neon, neon_rev16, neon_rev32, neon_rev64): |
| Likewise. |
| * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_types): |
| Remove `static` qualifier. |
| * config/aarch64/aarch64-builtins.h (aarch64_simd_tuple_types): |
| New declaration. |
| * config/aarch64/aarch64-neon-builtins-base.cc (build_tuple_get, |
| build_tuple_set): New functions. |
| (class gimple_permute, class gimple_permute_pair): New classes. |
| (ext_mask, rev_mask, trn_mask, uzp_mask, zip_mask): New |
| functions. |
| (vext, vextq, vrev16, vrev16q, vrev32, vrev32q, vtrn1, vtrn1q, |
| btrn2, vtrn2q, vtrn, vtrnq, vuzp1, vuzp1q, vuzp2, vuzp2q, vuzp, |
| vuzpq, vzip1, vzip1q, vzip2, vzip2q, vzip, vzipq): New function |
| bases. |
| * config/aarch64/aarch64-neon-builtins-base.def (vext, vextq, |
| vrev16, vrev16q, vrev32, vrev32q, vrev64, vrev64q, vtrn, |
| vtrn1, vtrn1q, vtrn2, vtrn2q, vtrnq, vuzp, vuzp1, vuzp1q, |
| vuzp2, vuzp2q, vuzpq, vzip, vzip1, vzip1q, vzip2, vzip2q, |
| vzipq): New function groups. |
| * config/aarch64/aarch64-simd-builtins.def (zip1, zip2, uzp1, |
| uzp2, trn1, trn2): Delete builtin functions. |
| * config/aarch64/arm_neon.h (vext_f16, vext_f32, vext_f64, |
| vext_p8, vext_p16, vext_p64, vext_s8, vext_s16, vext_s32, |
| vext_s64, vext_u8, vext_u16, vext_u32, vext_u64, vextq_f16, |
| vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_p64, |
| vextq_s8, vextq_s16, vextq_s32, vextq_s64, vextq_u8, |
| vextq_u16, vextq_u32, vextq_u64, vrev16_p8, vrev16_s8, |
| vrev16_u8, vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, |
| vrev32_p16, vrev32_s8, vrev32_s16, vrev32_u8, vrev32_u16, |
| vrev32q_p8, vrev32q_p16, vrev32q_s8, vrev32q_s16, vrev32q_u8, |
| vrev32q_u16, vrev64_f16, vrev64_f32, vrev64_p8, vrev64_p16, |
| vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16, |
| vrev64_u32, vrev64q_f16, vrev64q_f32, vrev64q_p8, vrev64q_p16, |
| vrev64q_s8, vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, |
| vrev64q_u32, vtrn1_f16, vtrn1_f32, vtrn1_p8, vtrn1_p16, |
| vtrn1_s8, vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, |
| vtrn1_u32, vtrn1q_f16, vtrn1q_f32, vtrn1q_f64, vtrn1q_p8, |
| vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32, vtrn1q_s64, |
| vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_p64, vtrn1q_u64, |
| vtrn2_f16, vtrn2_f32, vtrn2_p8, vtrn2_p16, vtrn2_s8, |
| vtrn2_s16, vtrn2_s32, vtrn2_u8, vtrn2_u16, vtrn2_u32, |
| vtrn2q_f16, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16, |
| vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, |
| vtrn2q_u16, vtrn2q_u32, vtrn2q_u64, vtrn2q_p64, vtrn_f16, |
| vtrn_f32, vtrn_p8, vtrn_p16, vtrn_s8, vtrn_s16, vtrn_s32, |
| vtrn_u8, vtrn_u16, vtrn_u32, vtrnq_f16, vtrnq_f32, vtrnq_p8, |
| vtrnq_p16, vtrnq_s8, vtrnq_s16, vtrnq_s32, vtrnq_u8, |
| vtrnq_u16, vtrnq_u32, vuzp1_f16, vuzp1_f32, vuzp1_p8, |
| vuzp1_p16, vuzp1_s8, vuzp1_s16, vuzp1_s32, vuzp1_u8, |
| vuzp1_u16, vuzp1_u32, vuzp1q_f16, vuzp1q_f32, vuzp1q_f64, |
| vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32, |
| vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, |
| vuzp1q_p64, vuzp2_f16, vuzp2_f32, vuzp2_p8, vuzp2_p16, |
| vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8, vuzp2_u16, |
| vuzp2_u32, vuzp2q_f16, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, |
| vuzp2q_p16, vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, |
| vuzp2q_u8, vuzp2q_u16, vuzp2q_u32, vuzp2q_u64, vuzp2q_p64, |
| vzip1_f16, vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8, |
| vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, |
| vzip1q_f16, vzip1q_f32, vzip1q_f64, vzip1q_p8, vzip1q_p16, |
| vzip1q_s8, vzip1q_s16, vzip1q_s32, vzip1q_s64, vzip1q_u8, |
| vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip1q_p64, vzip2_f16, |
| vzip2_f32, vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, |
| vzip2_s32, vzip2_u8, vzip2_u16, vzip2_u32, vzip2q_f16, |
| vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16, vzip2q_s8, |
| vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16, |
| vzip2q_u32, vzip2q_u64, vzip2q_p64): Delete functions. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64.md (UNSPEC_BSL): Delete unspec. |
| * config/aarch64/aarch64-simd-pragma-builtins.def (vbsl_mf8, |
| vbslq_mf8): Delete functions. |
| * config/aarch64/aarch64-neon-builtins-base.cc (build_cast): New |
| function. |
| (class gimple_not_rhs, class gimple_bsl, class gimple_rbit, |
| class gimple_eor3, class gimple_bcax, class gimple_rax1, class |
| gimple_xar, class gimple_ifn): New classes. |
| (vand, vandq, vbic, vbicq, vbsl, vbslq, veor, veorq, vmvn, |
| vmvnq, vorn, vornq, vorr, vorrq, vrbit, vrbitq, vbcaxq, veor3q, |
| vrax1q, vxarq, vcls, vclsq, vclz, vclzq, vcnt, vcntq): New |
| function bases. |
| * config/aarch64/aarch64-neon-builtins-shapes.cc (shift): New function. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_types_bsl_p_qualifiers, |
| aarch64_types_bsl_s_qualifiers, |
| aarch64_types_bsl_u_qualifiers): Delete unused qualifiers. |
| * config/aarch64/aarch64-simd.md |
| (@aarch64_rbit<mode><vczle><vczbe>): Add `@` modifier so that |
| it is callable from `aarch64-neon-builtins-base.cc`. |
| * config/aarch64/aarch64-acle-builtins.h (TYPES_b_neon, |
| TYPES_b_poly): New type lists. |
| * config/aarch64/aarch64-neon-builtins-base.def (vand, vandq, |
| vbic, vbicq, vbsl, vbslq, veor, veorq, vmvn, vmvnq, vorn, |
| vornq, vorr, vorrq, vrbit, vrbitq, vbcaxq, veor3q, vrax1q, |
| vxarq, vcls, vclsq, vclz, vclzq, vcnt, vcntq): New function |
| groups. |
| * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, |
| popcount, rbit, simd_bsl): Delete builtin functions. |
| * config/aarch64/arm_neon.h (vbsl_f16, vbsl_f32, vbsl_f64, |
| vbsl_p8, vbsl_p16, vbsl_p64, vbsl_s8, vbsl_s16, vbsl_s32, |
| vbsl_s64, vbsl_u8, vbsl_u16, vbsl_u32, vbsl_u64, vbslq_f16, |
| vbslq_f32, vbslq_f64, vbslq_p8, vbslq_p16, vbslq_s8, |
| vbslq_s16, vbslq_p64, vbslq_s32, vbslq_s64, vbslq_u8, |
| vbslq_u16, vbslq_u32, vbslq_u64, vcls_s8, vcls_s16, vcls_s32, |
| vclsq_s8, vclsq_s16, vclsq_s32, vcls_u8, vcls_u16, vcls_u32, |
| vclsq_u8, vclsq_u16, vclsq_u32, vclz_s8, vclz_s16, vclz_s32, |
| vclz_u8, vclz_u16, vclz_u32, vclzq_s8, vclzq_s16, vclzq_s32, |
| vclzq_u8, vclzq_u16, vclzq_u32, vcnt_p8, vcnt_s8, vcnt_u8, |
| vcntq_p8, vcntq_s8, vcntq_u8, vrbit_p8, vrbit_s8, vrbit_u8, |
| vrbitq_p8, vrbitq_s8, vrbitq_u8, veor3q_u8, veor3q_u16, |
| veor3q_u32, veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, |
| veor3q_s64, vrax1q_u64, vxarq_u64, vbcaxq_u8, vbcaxq_u16, |
| vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, |
| vbcaxq_s64): Delete functions. |
| |
| 2026-06-30 Karl Meakin <karlwfmeakin@gmail.com> |
| |
| * config/aarch64/aarch64-simd-pragma-builtins.def ( |
| vcopy_lane_mf8, vcopyq_lane_mf8, vcopy_laneq_mf8, |
| vcopyq_laneq_mf8, vdup_lane_mf8, vdupq_lane_mf8, |
| vdup_laneq_mf8, vdupq_laneq_mf8, vset_lane_mf8, |
| vsetq_lane_mf8): Delete entries. |
| * config/aarch64/aarch64-builtins.cc |
| (AARCH64_SIMD_VGET_LOW_BUILTINS, |
| AARCH64_SIMD_VGET_HIGH_BUILTINS, VGET_LOW_BUILTIN, |
| VGET_HIGH_BUILTIN): Delete macros. |
| (enum aarch64_builtins): Delete |
| `AARCH64_SIMD_BUILTIN_LANE_CHECK`. |
| (aarch64_init_simd_builtin_functions): Delete code that |
| registers `__builtin_aarch64_im_lane_boundsi`. |
| (aarch64_pragma_builtins_checker::check): Delete cases for |
| `UNSPEC_DUP_LANE`, `UNSPEC_GET_LANE` and `UNSPEC_VEC_COPY`. |
| (aarch64_simd_expand_builtin): Delete case for |
| `AARCH64_SIMD_BUILTIN_LANE_CHECK`. |
| (aarch64_expand_pragma_builtin): Delete cases for |
| `UNSPEC_DUP_LANE` and `UNSPEC_VEC_COPY`. |
| (aarch64_general_fold_builtin): Delete cases for |
| `AARCH64_SIMD_VGET_LOW_BUILTINS`, |
| `AARCH64_SIMD_VGET_HIGH_BUILTINS` and |
| `AARCH64_SIMD_BUILTIN_LANE_CHECK`. |
| (aarch64_gimple_fold_pragma_builtin): Delete cases for |
| `UNSPEC_DUP_LANE` and `UNSPEC_VEC_COPY`. |
| (aarch64_general_gimple_fold_builtin): Delete cases for |
| `AARCH64_SIMD_BUILTIN_LANE_CHECK`. |
| * config/aarch64/aarch64.md (UNSPEC_DUP_LANE): Delete unspec. |
| * config/aarch64/aarch64-neon-builtins-shapes.cc (range, lane): |
| New functions. |
| (struct neon_shape): Add new fields for additional checks, and |
| call them in `check()`. |
| * config/aarch64/aarch64-acle-builtins.cc |
| (gimple_folder::force_val, gimple_folder::assign): New |
| functions. |
| * config/aarch64/aarch64-acle-builtins.h (TYPES_all_neon, |
| TYPES_bhsd_neon, TYPES_neon_copy_lane): New type lists. |
| * config/aarch64/iterators.md (VALL_F16_NO_V2Q): Add `V4BF` and `V8BF`. |
| * config/aarch64/aarch64-neon-builtins-base.def (vget_lane, |
| vgetq_lane, vget_high, vget_low, vset_lane, vsetq_lane, |
| vdup_lane, vdupq_lane, vdup_laneq, vdupq_laneq, vcopy_lane, |
| vcopy_laneq, vcopyq_lane, vcopyq_laneq): New function groups. |
| * config/aarch64/aarch64-neon-builtins-base.cc (build_lane_get, |
| build_lane_set, build_vec_dup): New functions. |
| (struct gimple_get_lane, struct gimple_get_half, struct |
| gimple_set_lane, struct gimple_copy_lane, struct gimple_dup, |
| struct gimple_dup_lane): New structs. |
| (vget_lane, vgetq_lane, vset_lane, vsetq_lane, vcopy_lane, |
| vcopyq_lane, vcopy_laneq, vcopyq_laneq, vdup_lane, vdupq_lane, |
| vdupq_lane, vdupq_laneq): New function bases. |
| * config/aarch64/arm_neon.h (__aarch64_vdup_lane_p8, |
| __aarch64_vdup_lane_p16, __aarch64_vdup_lane_p64, |
| __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16, |
| __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64, |
| __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16, |
| __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64, |
| __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16, |
| __aarch64_vdup_laneq_p64, __aarch64_vdup_laneq_s8, |
| __aarch64_vdup_laneq_s16, __aarch64_vdup_laneq_s32, |
| __aarch64_vdup_laneq_s64, __aarch64_vdup_laneq_u8, |
| __aarch64_vdup_laneq_u16, __aarch64_vdup_laneq_u32, |
| __aarch64_vdup_laneq_u64, __aarch64_vdupq_lane_p8, |
| __aarch64_vdupq_lane_p16, __aarch64_vdupq_lane_p64, |
| __aarch64_vdupq_lane_s8, __aarch64_vdupq_lane_s16, |
| __aarch64_vdupq_lane_s32, __aarch64_vdupq_lane_s64, |
| __aarch64_vdupq_lane_u8, __aarch64_vdupq_lane_u16, |
| __aarch64_vdupq_lane_u32, __aarch64_vdupq_lane_u64, |
| __aarch64_vdupq_laneq_p8, __aarch64_vdupq_laneq_p16, |
| __aarch64_vdupq_laneq_p64, __aarch64_vdupq_laneq_s8, |
| __aarch64_vdupq_laneq_s16, __aarch64_vdupq_laneq_s32, |
| __aarch64_vdupq_laneq_s64, __aarch64_vdupq_laneq_u8, |
| __aarch64_vdupq_laneq_u16, __aarch64_vdupq_laneq_u32, |
| __aarch64_vdupq_laneq_u64, __AARCH64_LANE_CHECK, |
| __aarch64_vget_lane_any, __aarch64_vset_lane_any): Delete |
| macros. |
| (vget_lane_f16, vget_lane_f32, vget_lane_f64, vget_lane_p8, |
| vget_lane_p16, vget_lane_p64, vget_lane_s8, vget_lane_s16, |
| vget_lane_s32, vget_lane_s64, vget_lane_u8, vget_lane_u16, |
| vget_lane_u32, vget_lane_u64, vgetq_lane_f16, vgetq_lane_f32, |
| vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16, vgetq_lane_p64, |
| vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64, |
| vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64, |
| vset_lane_f16, vset_lane_f32, vset_lane_f64, vset_lane_p8, |
| vset_lane_p16, vset_lane_p64, vset_lane_s8, vset_lane_s16, |
| vset_lane_s32, vset_lane_s64, vset_lane_u8, vset_lane_u16, |
| vset_lane_u32, vset_lane_u64, vsetq_lane_f16, vsetq_lane_f32, |
| vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16, vsetq_lane_p64, |
| vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64, |
| vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64, |
| vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16, |
| vcopy_lane_p64, vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, |
| vcopy_lane_s64, vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, |
| vcopy_lane_u64, vcopy_laneq_f32, vcopy_laneq_f64, |
| vcopy_laneq_p8, vcopy_laneq_p16, vcopy_laneq_p64, |
| vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, |
| vcopy_laneq_s64, vcopy_laneq_u8, vcopy_laneq_u16, |
| vcopy_laneq_u32, vcopy_laneq_u64, vcopyq_lane_f32, |
| vcopyq_lane_f64, vcopyq_lane_p8, vcopyq_lane_p16, |
| vcopyq_lane_p64, vcopyq_lane_s8, vcopyq_lane_s16, |
| vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, |
| vcopyq_lane_u16, vcopyq_lane_u32, vcopyq_lane_u64, |
| vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, |
| vcopyq_laneq_p16, vcopyq_laneq_p64, vcopyq_laneq_s8, |
| vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64, |
| vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, |
| vcopyq_laneq_u64, vdup_lane_f16, vdup_lane_f32, vdup_lane_f64, |
| vdup_lane_p8, vdup_lane_p16, vdup_lane_p64, vdup_lane_s8, |
| vdup_lane_s16, vdup_lane_s32, vdup_lane_s64, vdup_lane_u8, |
| vdup_lane_u16, vdup_lane_u32, vdup_lane_u64, vdup_laneq_f16, |
| vdup_laneq_f32, vdup_laneq_f64, vdup_laneq_p8, vdup_laneq_p16, |
| vdup_laneq_p64, vdup_laneq_s8, vdup_laneq_s16, vdup_laneq_s32, |
| vdup_laneq_s64, vdup_laneq_u8, vdup_laneq_u16, vdup_laneq_u32, |
| vdup_laneq_u64, vdupq_lane_f16, vdupq_lane_f32, |
| vdupq_lane_f64, vdupq_lane_p8, vdupq_lane_p16, vdupq_lane_p64, |
| vdupq_lane_s8, vdupq_lane_s16, vdupq_lane_s32, vdupq_lane_s64, |
| vdupq_lane_u8, vdupq_lane_u16, vdupq_lane_u32, vdupq_lane_u64, |
| vdupq_laneq_f16, vdupq_laneq_f32, vdupq_laneq_f64, |
| vdupq_laneq_p8, vdupq_laneq_p16, vdupq_laneq_p64, |
| vdupq_laneq_s8, vdupq_laneq_s16, vdupq_laneq_s32, |
| vdupq_laneq_s64, vdupq_laneq_u8, vdupq_laneq_u16, |
| vdupq_laneq_u32, vdupq_laneq_u64, vmulq_lane_f64, |
| vset_lane_bf16, vsetq_lane_bf16, vget_lane_bf16, |
| vgetq_lane_bf16, vdup_lane_bf16, vdup_laneq_bf16, |
| vdupq_lane_bf16, vdupq_laneq_bf16, vcopy_lane_bf16, |
| vcopyq_lane_bf16, vcopy_laneq_bf16, vcopyq_laneq_bf16): Delete |
| functions. |
| |
| 2026-06-30 Karl Meakin <karlwfmeakin@gmail.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (combine): Delete |
| function declarations. |
| * config/aarch64/aarch64-simd-pragma-builtins.def (vcombine_mf8, |
| vcreate_mf8, vdup_n_mf8, vdupq_n_mf8, vmov_n_mf8, |
| vmovq_n_mf8,): Delete entries. |
| (aarch64_expand_pragma_builtin): Delete cases for |
| `UNSPEC_COMBINE` and `UNSPEC_VCREATE`. |
| (aarch64_fold_combine): Delete function. |
| (aarch64_gimple_fold_pragma_builtin): Delete cases for |
| `UNSPEC_COMBINE` and `UNSPEC_VCREATE`. |
| (aarch64_general_gimple_fold_builtin): Delete cases for |
| `vcombine`. |
| * config/aarch64/aarch64.md (UNSPEC_COMBINE): Delete unspec. |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_expand_pragma_builtin): Delete cases for |
| `UNSPEC_COMBINE` and `UNSPEC_VCREATE`. |
| (aarch64_fold_combine): Delete function. |
| (aarch64_gimple_fold_pragma_builtin): Delete cases for |
| `UNSPEC_COMBINE` and `UNSPEC_VCREATE`. |
| (aarch64_general_gimple_fold_builtin): Delete cases for |
| `combine`. |
| * config/aarch64/aarch64-acle-builtins.cc |
| (gimple_folder::force_val, gimple_folder::assign): New |
| functions. |
| * config/aarch64/aarch64-acle-builtins.h (TYPES_all_neon, |
| TYPES_bhsd_neon): New type lists. |
| * config/aarch64/aarch64-neon-builtins-base.def (vcreate, |
| vcombine, vdup_n, vdupq_n, vmov_n, vmovq_n): New function groups. |
| * config/aarch64/aarch64-neon-builtins-base.cc (build_vec_dup): New function. |
| (struct gimple_create, struct gimple_combine, struct struct |
| gimple_dup): New structs. |
| (vcreate, vcombine, vdup_n, vdupq_n, vmov_n, vmovq_n): New |
| function bases. |
| * config/aarch64/arm_neon.h (vcreate_s8, vcreate_s16, |
| vcreate_s32, vcreate_s64, vcreate_f16, vcreate_f32, |
| vcreate_u8, vcreate_u16, vcreate_u32, vcreate_u64, |
| vcreate_f64, vcreate_p8, vcreate_p16, vcreate_p64, |
| vcombine_s8, vcombine_s16, vcombine_s32, vcombine_s64, |
| vcombine_f16, vcombine_f32, vcombine_u8, vcombine_u16, |
| vcombine_u32, vcombine_u64, vcombine_f64, vcombine_p8, |
| vcombine_p16, vcombine_p64, vdup_n_f16, vdup_n_f32, |
| vdup_n_f64, vdup_n_p8, vdup_n_p16, vdup_n_p64, vdup_n_s8, |
| vdup_n_s16, vdup_n_s32, vdup_n_s64, vdup_n_u8, vdup_n_u16, |
| vdup_n_u32, vdup_n_u64, vdupq_n_f16, vdupq_n_f32, vdupq_n_f64, |
| vdupq_n_p8, vdupq_n_p16, vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, |
| vdupq_n_s32, vdupq_n_s64, vdupq_n_u8, vdupq_n_u16, |
| vdupq_n_u32, vdupq_n_u64, vmov_n_f16, vmov_n_f32, vmov_n_f64, |
| vmov_n_p8, vmov_n_p16, vmov_n_p64, vmov_n_s8, vmov_n_s16, |
| vmov_n_s32, vmov_n_s64, vmov_n_u8, vmov_n_u16, vmov_n_u32, |
| vmov_n_u64, vmovq_n_f16, vmovq_n_f32, vmovq_n_f64, vmovq_n_p8, |
| vmovq_n_p16, vmovq_n_p64, vmovq_n_s8, vmovq_n_s16, |
| vmovq_n_s32, vmovq_n_s64, vmovq_n_u8, vmovq_n_u16, |
| vmovq_n_u32, vmovq_n_u64, vcreate_bf16, vcombine_bf16, |
| vdup_n_bf16, vdupq_n_bf16): Delete functions. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config/aarch64/aarch64-neon-builtins-base.cc: New file. |
| * config/aarch64/aarch64-neon-builtins-base.def: New file. |
| * config/aarch64/aarch64-neon-builtins-base.h: New file. |
| * config/aarch64/aarch64-neon-builtins-functions.h: New file. |
| * config/aarch64/aarch64-neon-builtins-shapes.cc: New file. |
| * config/aarch64/aarch64-neon-builtins-shapes.h: New file. |
| * config/aarch64/aarch64-neon-builtins.def: New file. |
| * config.gcc (extra_headers, extra_objs): Add new files and |
| reformat for readability. |
| * config/aarch64/t-aarch64: Add recipes for new files. |
| * config/aarch64/aarch64-protos.h (handle_arm_neon_h): Rename to |
| `init_arm_neon_builtins`. |
| * config/aarch64/aarch64-builtins.cc (handle_arm_neon_h): Likewise. |
| * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Call |
| `aarch64_acle::handle_arm_neon_h`. |
| * config/aarch64/aarch64-acle-builtins.cc (TYPES_*): Move to |
| aarch64-acle-builtins.h |
| (NONSTREAMING_SVE, SVE_AND_SME, SSVE): Likewise. |
| (neon_function_groups): New variable. |
| (arm_neon_h_handled): Likewise. |
| (handle_arm_neon_h): New function. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc: |
| (gimple_folder::fold): Allow folding if `TARGET_SVE` is |
| false but `TARGET_SIMD` is true. |
| * config/aarch64/aarch64-sve-builtins.def (p8, p16, p64, 128): |
| New type suffixes. |
| * config/aarch64/aarch64-acle-builtins.h (enum |
| handle_pragma_index): New enum member `arm_neon_handle`. |
| (enum type_class_index): New enum member `TYPE_poly`. |
| (TYPES_*): Moved from `aarch64-acle-builtins.cc`. |
| (NONSTREAMING_SVE, SVE_AND_SME, SSVE): Likewise. |
| * config/aarch64/arm_neon.h (vadd_s8, vadd_s16, vadd_s32, |
| vadd_f32, vadd_f64, vadd_u8, vadd_u16, vadd_u32, vadd_s64, |
| vadd_u64, vaddq_s8, vaddq_s16, vaddq_s32, vaddq_s64, |
| vaddq_f32, vaddq_f64, vaddq_u8, vaddq_u16, vaddq_u32, |
| vaddq_u64, vadd_f16, vaddq_f16, vadd_p8, vadd_p16, vadd_p64, |
| vaddq_p8, vaddq_p16, vaddq_p64, vaddq_p128, vaddd_u64, |
| vaddd_s64): Delete function definitions. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config.gcc (target_gtfiles): Rename |
| `aarch64-sve-builtins.{h,cc}` to |
| `aarch64-acle-builtins.{h,cc}`. |
| * config/aarch64/t-aarch64: Likewise. |
| * config/aarch64/aarch64-sve-builtins.h: Move to... |
| * config/aarch64/aarch64-acle-builtins.h: ...here. |
| * config/aarch64/aarch64-sve-builtins.cc: Move to... |
| * config/aarch64/aarch64-acle-builtins.cc: ...here. |
| * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Rename |
| namespace `aarch64_sve` to `aarch64_acle`. |
| (aarch64_resolve_overloaded_builtin): Likewise. |
| (aarch64_check_builtin_call): Likewise. |
| * config/aarch64/aarch64-protos.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.h: Likewise. |
| * config/aarch64/aarch64.cc: Likewise. |
| |
| 2026-06-30 Karl Meakin <karl.meakin@arm.com> |
| |
| * config.gcc: Reformat lists over several lines. |
| |
| 2026-06-30 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (synthesize_ior_xor): If we must synthesize a |
| constant and Zbb is enabled, try both C and ~C to see which is cheaper. |
| (synthesize_and): Likewise. |
| |
| 2026-06-30 Jim Lin <jim@andestech.com> |
| |
| PR target/125853 |
| * common/config/riscv/riscv-common.cc (riscv_multi_lib_info_t::parse): |
| Remove the path parameter and compare multi_lib_info->path against |
| "." instead. |
| (riscv_compute_multilib): Update caller. |
| |
| 2026-06-30 Jim Tsung-Chun Lin <jim@andestech.com> |
| |
| Backported from master: |
| 2026-06-15 Jim Tsung-Chun Lin <jim@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_select_multilib): |
| Don't set riscv_no_matched_multi_lib here; let the caller own |
| the flag. |
| (riscv_compute_multilib): Drop the early return that accepted |
| the generic-matched multilib_dir; always run the smart matcher |
| and set riscv_no_matched_multi_lib when it finds no candidate. |
| |
| 2026-06-30 Mark Zhuang <zhuangqiubin@linux.spacemit.com> |
| |
| * config/riscv/riscv-ext-spacemit.def (xsmtvdotii): New extension. |
| * config/riscv/riscv-ext.opt: Regenerate. |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add spacemit-a100. |
| (RISCV_CORE): Add spacemit-a100. |
| * doc/riscv-ext.texi: Regenerate. |
| * doc/riscv-mcpu.texi: Regenerate. |
| * doc/riscv-mtune.texi: Regenerate. |
| |
| 2026-06-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-alias.h (pt_solution::vars_contains_auto): New. |
| (ptr_deref_may_alias_auto_p): Declare. |
| (pt_solution_includes_auto): Likewise. |
| * tree-ssa-structalias.cc (set_uids_in_ptset): Record auto |
| variables. |
| (pt_solution_includes_auto): New function. |
| (ipa_escaped_pt): Adjust. |
| * tree-ssa-alias.cc (ptr_deref_may_alias_auto_p): New function. |
| |
| 2026-06-30 Christopher Bazley <chris.bazley@arm.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * tree.cc (build_vector_from_ctor): Rename variables and |
| refactor assignments. |
| |
| 2026-06-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-ivopts.cc (rewrite_use_address): Always |
| avoid TARGET_MEM_REF with a base of zero. |
| * tree-ssa-sccvn.cc (vn_reference_maybe_forwprop_address): Do |
| not forward TARGET_MEM_REF addresses. |
| |
| 2026-06-30 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/125838 |
| * config/aarch64/aarch64.cc (aarch64_fntype_abi): Fall back to |
| AAPCS for preserve_none variadic calls. |
| |
| 2026-06-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126032 |
| * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Fixup |
| diagnostic string. |
| |
| 2026-06-30 Chung-Lin Tang <cltang@baylibre.com> |
| |
| * gimplify.cc (enum gimplify_omp_var_data): |
| Add GOVD_USES_ALLOCATORS_ALLOCATOR. |
| (gimplify_bind_expr): Diagnose missing uses_allocators clause. |
| (omp_get_attachment): Add GOMP_MAP_USES_ALLOCATORS cases. |
| (omp_group_base): Likewise. |
| (gimplify_scan_omp_clauses): Handle uses_allocators. |
| (gimplify_adjust_omp_clauses_1): Handle GOVD_USES_ALLOCATORS_ALLOCATOR. |
| * omp-low.cc (scan_sharing_clauses): Check if ALLOCATE clause in target |
| region has containing USES_ALLOCATORS clause. |
| Add OMP_CLAUSE_USES_ALLOCATORS cases. |
| (lower_omp_target): Add OMP_CLAUSE_USES_ALLOCATORS cases. |
| * tree-pretty-print.cc (dump_omp_clause): Handle GOMP_MAP_USES_ALLOCATORS. |
| |
| 2026-06-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126008 |
| * tree-ssa-loop-ivopts.cc (alloc_iv): Revert last change. |
| * tree-ssa-address.cc (add_to_parts): Use unsigned arithmetic |
| to accumulate to base. |
| |
| 2026-06-30 Christopher Bazley <chris.bazley@arm.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * poly-int.h (can_div_away_from_zero_p): |
| Exit early if |a| <= |b| instead of calling |
| can_div_trunc_p and returning false if it |
| returned false. |
| |
| 2026-06-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/126034 |
| * tree-vect-stmts.cc (vectorizable_load): Elide dead else if. |
| |
| 2026-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/126030 |
| * config/i386/sse.md (avx512vl_<code><mode>v4hi2_mask_store_1): |
| Use a single output pattern instead of conditionally returning |
| the same string based on a condition. |
| |
| 2026-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/125837 |
| * doc/invoke.texi (Wc++29-extensions): Document. |
| |
| 2026-06-30 Avinash Jayakar <avinashd@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add logic to |
| handle __builtin_ppc_atomic_cas_local. |
| * config/rs6000/rs6000-builtins.def: New builtins for |
| __builtin_ppc_atomic_cas_local with types. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Handle |
| builtins with up to 6 arguments. |
| * config/rs6000/rs6000-overload.def: Overload builtin for signed/unsiged |
| char, short, int, long, __int128. |
| * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): Add |
| additional parameter 'local' to the prototype. |
| * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass new |
| parameter to generate load-locked instruction. |
| (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call |
| emit_load_locked() with additional parameter value of EH bit. |
| (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). |
| (rs6000_expand_atomic_op): Likewise. |
| * config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL template. |
| Specify EH bit in the larx instruction. |
| (load_locked<QHI:mode>_si): Likewise. |
| (load_lockedpti): Likewise. |
| (load_lockedti): Add new operand in RTL template. Pass EH bit to |
| gen_load_lockedpti(). |
| (atomic_compare_and_swap<mode>): Pass new parameter 'false' to |
| rs6000_expand_atomic_compare_and_swap. |
| (atomic_compare_and_swap_local<mode>): New define_expand. |
| * doc/extend.texi: Add documentation for new builtin. |
| |
| 2026-06-30 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| Revert: |
| 2026-06-30 Avinash Jayakar <avinashd@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add logic to |
| handle __builtin_ppc_atomic_cas_local. |
| * config/rs6000/rs6000-builtins.def: New builtins for |
| __builtin_ppc_atomic_cas_local with types. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Handle |
| builtins with up to 6 arguments. |
| * config/rs6000/rs6000-overload.def: Overload builtin for signed/unsiged |
| char, short, int, long, __int128. |
| * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): Add |
| additional parameter 'local' to the prototype. |
| * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass new |
| parameter to generate load-locked instruction. |
| (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call |
| emit_load_locked() with additional parameter value of EH bit. |
| (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). |
| (rs6000_expand_atomic_op): Likewise. |
| * config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL template. |
| Specify EH bit in the larx instruction. |
| (load_locked<QHI:mode>_si): Likewise. |
| (load_lockedpti): Likewise. |
| (load_lockedti): Add new operand in RTL template. Pass EH bit to |
| gen_load_lockedpti(). |
| (atomic_compare_and_swap<mode>): Pass new parameter 'false' to |
| rs6000_expand_atomic_compare_and_swap. |
| (atomic_compare_and_swap_local<mode>): New define_expand. |
| * doc/extend.texi: Add documentation for new builtin. |
| |
| 2026-06-30 Avinash Jayakar <avinashd@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add logic to |
| handle __builtin_ppc_atomic_cas_local. |
| * config/rs6000/rs6000-builtins.def: New builtins for |
| __builtin_ppc_atomic_cas_local with types. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Handle |
| builtins with up to 6 arguments. |
| * config/rs6000/rs6000-overload.def: Overload builtin for signed/unsiged |
| char, short, int, long, __int128. |
| * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): Add |
| additional parameter 'local' to the prototype. |
| * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass new |
| parameter to generate load-locked instruction. |
| (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call |
| emit_load_locked() with additional parameter value of EH bit. |
| (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). |
| (rs6000_expand_atomic_op): Likewise. |
| * config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL template. |
| Specify EH bit in the larx instruction. |
| (load_locked<QHI:mode>_si): Likewise. |
| (load_lockedpti): Likewise. |
| (load_lockedti): Add new operand in RTL template. Pass EH bit to |
| gen_load_lockedpti(). |
| (atomic_compare_and_swap<mode>): Pass new parameter 'false' to |
| rs6000_expand_atomic_compare_and_swap. |
| (atomic_compare_and_swap_local<mode>): New define_expand. |
| * doc/extend.texi: Add documentation for new builtin. |
| |
| 2026-06-30 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md |
| (@stack_protect_combined_set_normal_<mode>): Replace `st.d' |
| with `st.<d>', reject stptr.d on LA32 with enabled attribute. |
| (@stack_protect_combined_test_internal_<mode>): Replace `ld.d' |
| with `ld.<d>', reject ldptr.d on LA32 with enabled attribute. |
| (@stack_protect_combined_set_extreme_<mode>): Rename to ... |
| (stack_protect_combined_set_extreme): ... here. Force DImode. |
| Add TARGET_ABI_LP64 as the condition. |
| (stack_protect_combined_set): Adapt for the change of |
| stack_protect_combined_set_extreme. |
| |
| 2026-06-30 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/125994 |
| * config/riscv/riscv.cc (riscv_support_vector_misalignment): |
| Handle scalar modes. |
| |
| 2026-06-29 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (synthesize_and): Use srliw to handle |
| clearing both upper and lower bits in some cases. |
| * config/riscv/bitmanip.md (ZBA splitter using sext.w): Do not |
| use in cases where we can use srliw to clear those upper bits. |
| |
| 2026-06-29 Mark Zhuang <zhuangqiubin@linux.spacemit.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add spacemit-x100. |
| (RISCV_CORE): Add spacemit-x100. |
| * config/riscv/riscv.cc (spacemit_x100_tune_info): New. |
| * doc/riscv-mcpu.texi: Regenerate. |
| * doc/riscv-mtune.texi: Regenerate. |
| |
| 2026-06-29 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.h (ASM_SPEC): Add placeholders for -mmxu and |
| -mno-mxu. |
| * config/mips/mips.opt: New undocumented target option. |
| |
| 2026-06-29 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.cc (mips_frame_barrier): Upgrade to a full |
| blockage. |
| |
| 2026-06-29 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/94871 |
| * simplify-rtx.cc (simplify_unary_operation_1) <case NOT>: |
| Update (not (eq X Y)) -> (ne X Y) to support vector comparions |
| using VECTOR_STORE_FLAG_VALUE, and check SCALAR_INT_MODE_P |
| when checking STORE_FLAG_VALUE. Add equivalent optimization |
| (not (neg (eq X Y))) -> (neg (ne X Y)) for targets with |
| STORE_FLAG_VALUE == 1 or VECTOR_STORE_FLAG_VALUE is const1_rtx. |
| * config/i386/sse.md (*<sse>_imaskcmp<mode>3_comm): Clone |
| of *<sse>_maskcmp<mode>3_comm pattern with integer vector |
| result. |
| |
| 2026-06-29 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * config/aarch64/aarch64-sve2.md: Add unpredicated high-part |
| multiplication section. |
| (@aarch64_sve2_<optab><mode>): New insn. |
| * config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): |
| Change to define_insn_and_split and split SVE2 highpart |
| multiplication into unpredicated MUL_HIGHPART. |
| |
| 2026-06-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125469 |
| * config/i386/i386.md (*add<mode>_1<nf_name>): Revert 2026-05-28 |
| changes. |
| (define_split from *add<mode>_1_nf to *lea<mode>): Set INSN_CODE |
| to -1 if <LEAMODE> and <MODE> are the same. |
| |
| 2026-06-29 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/105116 |
| * lra-constraints.cc (simplify_operand_subreg): Reload a |
| non-representable narrowing subreg of a hard register through |
| memory instead of resolving it lossily. |
| |
| 2026-06-29 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125737 |
| * match.pd: Optimize X % Y < Y -> Y >= 0 and X % Y >= Y -> Y < 0 |
| |
| 2026-06-29 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125968 |
| * config/i386/i386-expand.cc (ix86_expand_movmem): Don't call |
| ix86_expand_n_overlapping_move_movmem when max size == 1. |
| |
| 2026-06-29 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR tree-optimization/112390 |
| * match.pd: Add simplifications for combined sign-bit and |
| magnitude checks: |
| ((signed)A >= 0) &/&& ((A & INT_MAX) != 0) -> (signed)A > 0 |
| ((signed)A < 0) |/|| ((A & INT_MAX) == 0) -> (signed)A <= 0 |
| |
| 2026-06-29 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/125907 |
| * config/i386/i386.md (*cmov_bt<SWI248:mode>): New |
| define_insn_and_split handling a const_int false arm, forced into |
| a register by the splitter. Leave the existing define_split for |
| the nonimmediate case unchanged. |
| |
| 2026-06-29 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125474 |
| * config/loongarch/simd.md (usdot_prod<wvec_half><mode>): New |
| define_expand. |
| (usdot_prod<wvec_quarter><mode>): New define_expand. |
| |
| 2026-06-29 Pan Li <pan2.li@intel.com> |
| |
| * match-sat-alu.pd: Add pattern for unsigned scalar |
| SAT_MUL form 14. |
| |
| 2026-06-29 Pietro Monteiro <pietro@sociotechnical.xyz> |
| |
| PR bootstrap/103459 |
| * acinclude.m4: Replace AC_FOREACH with m4_foreach_w. Replace |
| AC_TRY_LINK with AC_LINK_IFELSE. |
| * configure: Regenerate. |
| * configure.ac: Replace AC_HELP_STRING with AS_HELP_STRING. Replace |
| AC_PROG_LIBTOOL with LT_INIT. |
| |
| 2026-06-28 Kevin Stefanov <kevinstefanov15@gmail.com> |
| |
| PR middle-end/125274 |
| * ctfc.h (ctf_dtdef): Likewise. |
| * dwarf2out.cc (die_struct): Likewise. |
| * dwarf2out.h (dw_cfa_location): Likewise. |
| * gengtype-lex.l (IWORD): Remove BOOL_BITFIELD. |
| * gimple-walk.h (walk_stmt_info): Replace BOOL_BITFIELD with bool. |
| * opts.h (cl_option): Likewise. |
| * config/i386/i386.h (machine_frame_state): Likewise. |
| (machine_function): Likewise. |
| * sched-int.h (deps_desc): Likewise. |
| * sel-sched-ir.h (_expr): Likewise. |
| (_fence): Likewise. |
| (transformed_insns): Likewise. |
| (_sel_insn_data): Likewise. |
| * sel-sched.cc (cmpd_local_params): Likewise. |
| * system.h: Remove #define for BOOL_BITFIELD. |
| |
| 2026-06-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/115571 |
| * match.pd (`(float)(a CMP b)`): New pattern. |
| |
| 2026-06-28 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125749 |
| PR tree-optimization/125749 |
| * match.pd: Use tree_expr_nonnegative_p for MAX (A, B) (==,!=) 0 -> |
| (A|B) (==,!=) 0. |
| |
| 2026-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125992 |
| * config/s390/s390.md (*brx_stage1_<GPR:mode>): Add CC_REGNUM clobber. |
| |
| 2026-06-27 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/125385 |
| * match.pd ((FTYPE) N CMP (FTYPE) M): Use range information |
| to decide whether integer operands are exactly representable. |
| ((FTYPE) N CMP CST): Likewise. |
| * real.cc: Include backend.h and vr-values.h. |
| (format_helper::can_represent_range_value_p): New function. |
| * real.h (format_helper::can_represent_range_value_p): Declare. |
| * tree-core.h (class irange): Forward declare. |
| |
| 2026-06-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/125977 |
| * expr.cc (emit_block_move_via_pattern): Replace ops[6].value |
| in assert with GEN_INT (min_size). |
| |
| 2026-06-26 H.J. Lu <hjl.tools@gmail.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/125856 |
| PR target/125865 |
| * config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): |
| Call ix86_expand_set_or_movmem for |
| TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES. |
| (ix86_expand_memset_val): New. |
| (ix86_expand_n_move_movmem): Renamed to ... |
| (ix86_expand_n_move_set_or_movmem): This. Add a pointer to rtx |
| argument for memset. Also expand memset. |
| (ix86_expand_n_overlapping_move_movmem): Renamed to ... |
| (ix86_expand_n_overlapping_move_set_or_movmem): This. Add a |
| pointer to rtx argument for memset. Also expand memset. |
| (ix86_expand_less_move_movmem): Renamed to ... |
| (ix86_expand_less_move_set_or_movmem): This. Add a pointer to |
| rtx argument for memset. Also expand memset. |
| (ix86_expand_movmem): Renamed to ... |
| (ix86_expand_set_or_movmem): This. Add bool arguments for memcpy |
| and memset. Also expand memcpy and memset. |
| * config/i386/i386-protos.h (ix86_expand_movmem): Renamed to ... |
| (ix86_expand_set_or_movmem): This. Add bool arguments for memcpy |
| and memset. |
| * config/i386/i386.md (movmem<mode>): Replace ix86_expand_movmem |
| with ix86_expand_set_or_movmem. |
| |
| 2026-06-26 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/123238 |
| * config/i386/i386-expand.cc: Delay calling force_reg on |
| op_true and op_false. Generate an AND then XOR sequence |
| if op_true and op_false are both CONST_VECTOR_P. |
| * config/i386/mmx.md (vcond_mask_<mode>v4hi): Allow operands |
| 1 and 2 to be vector_or_const_vector_operand. |
| (vcond_mask_<mode>v2hi): Likewise. |
| (vcond_mask_<mode><mmxintvecmodelower>): Likewise. |
| (vcond_mask_<mode><mode>): Likewise. |
| * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>): |
| Likewise. |
| (vcond_mask_<mode><sseintvecmodelower>): Likewise. |
| (vcond_mask_v1tiv1ti): Likewise. |
| (vcond_mask_<mode><sseintvecmodelower>): Likewise. |
| (vcond_mask_<mode><sseintvecmodelower>): Likewise. |
| * config/i386/predicates.md (vector_or_0_or_1s_operand): Delete |
| predicate with no remaining uses. |
| |
| 2026-06-26 vekumar <Venkataramanan.Kumar@amd.com> |
| |
| PR target/125949 |
| * config/i386/i386.md ("isa"): Add avxvnniint8. |
| ("enabled"): Adjust for avxvnniint8. |
| * config/i386/sse.md (vpdp<vpdotprodtype>_<mode>): Adjust for |
| AVXVNNIINT8. |
| |
| 2026-06-26 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/125972 |
| * config/s390/s390.cc (s390_rtx_costs): Deal with non-compare |
| conditions during costing. Also fix some indentation. |
| |
| 2026-06-26 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/125875 |
| * match.pd: When checking for !can_vec_perm_const_p also |
| allow variable permutes and use the vec_perm_indices CTOR |
| with the original tree operands. |
| |
| 2026-06-26 Richard Biener <rguenther@suse.de> |
| |
| * vec-perm-indices.h (vec_perm_indices::new_vector): New overload. |
| (vec_perm_indices::input_bitwise_zero_p): New method. |
| (vec_perm_indices::m_input0_bitwise_zero_p, |
| vec_perm_indices::m_input1_bitwise_zero_p): New members. |
| (vec_perm_indices::vec_perm_indices): Adjust. |
| (tree_to_vec_perm_indices): Declare. |
| * vec-perm-indices.cc (vec_perm_indices::new_vector): New overload. |
| (vec_perm_indices::new_expanded_vector): Adjust. |
| (tree_to_vec_perm_indices): New function. |
| * optabs-query.cc (can_vec_perm_const_p): Handle permute |
| patterns mapping to vec_shl/vec_shr. |
| * tree-vect-generic.cc (lower_vec_perm): Move vec_shl/vec_shr |
| detection to can_vec_perm_const_p and simplify. |
| |
| 2026-06-26 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125979 |
| * dbgcnt.def: Add ranger_cnt. |
| * gimple-range.cc (gimple_ranger::range_of_expr): Add debug_cnt. |
| (gimple_ranger::range_on_entry): Likewise. |
| (gimple_ranger::range_on_exit): Likewise. |
| (gimple_ranger::range_on_edge); Likewise. |
| (gimple_ranger::range_of_stmt): Likewise |
| (dom_ranger::range_of_expr): Likewise. |
| (dom_ranger::range_on_edge): Likewise. |
| (dom_ranger::range_of_stmt): Likewise. |
| |
| 2026-06-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/125977 |
| * builtins.cc (determine_block_size): Change len_rtx to reference |
| and set it to min size if min size == max size. |
| * expr.cc (emit_block_move_via_pattern): Assert count == min_size |
| if min_size == max_size. |
| (set_storage_via_setmem): Likewise. |
| |
| 2026-06-26 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_sched_first_cycle_multipass_dfa_lookahead): Return 0 |
| when dispatch scheduling is enabled. |
| |
| 2026-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_ix86_quad): Remove. |
| * configure: Regenerate. |
| * config.in: Likewise. |
| * config/i386/sol2.h [!HAVE_AS_IX86_QUAD] (ASM_QUAD): Don't undefine. |
| |
| 2026-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_ix86_diff_sect_delta): Remove. |
| * configure: Regenerate. |
| * config.in: Likewise. |
| * config/i386/sol2.h [!HAVE_AS_IX86_DIFF_SECT_DELTA] |
| (ASM_PREFERRED_EH_DATA_FORMAT): Remove. |
| (JUMP_TABLES_IN_TEXT_SECTION): Likewise. |
| (ASM_OUTPUT_DWARF_PCREL): Likewise. |
| |
| 2026-06-26 Jiahao Xu <xujiahao@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_sched_reassociation_width): |
| Get a tree_code instead of unsigned int. |
| |
| 2026-06-25 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.md (seq_sne_qi): Mark name for debugging purposes |
| only. |
| |
| 2026-06-25 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/87466 |
| * config/riscv/riscv.cc (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): |
| Define. |
| |
| 2026-06-25 Manjunath Matti <mmatti@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (const_0_to_6_operand): New predicate. |
| * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmulmul): Add new |
| builtin definitions under [future] stanza. |
| (__builtin_vsx_xxmulmulhiadd): Likewise. |
| (__builtin_vsx_xxmulmulloadd): Likewise. |
| (__builtin_vsx_xxssumudm): Likewise. |
| (__builtin_vsx_xxssumudmc): Likewise. |
| (__builtin_vsx_xxssumudmcext): Likewise. |
| (__builtin_vsx_xsaddadduqm): Likewise. |
| (__builtin_vsx_xsaddaddsuqm): Likewise. |
| (__builtin_vsx_xsaddsubuqm): Likewise. |
| (__builtin_vsx_xsaddsubsuqm): Likewise. |
| (__builtin_vsx_xsmerge2t1uqm): Likewise. |
| (__builtin_vsx_xsmerge2t2uqm): Likewise. |
| (__builtin_vsx_xsmerge2t3uqm): Likewise. |
| (__builtin_vsx_xsmerge3t1uqm): Likewise. |
| (__builtin_vsx_xsrebase2t1uqm): Likewise. |
| (__builtin_vsx_xsrebase2t2uqm): Likewise. |
| (__builtin_vsx_xsrebase2t3uqm): Likewise. |
| (__builtin_vsx_xsrebase2t4uqm): Likewise. |
| (__builtin_vsx_xsrebase3t1uqm): Likewise. |
| (__builtin_vsx_xsrebase3t2uqm): Likewise. |
| (__builtin_vsx_xsrebase3t3uqm): Likewise. |
| * config/rs6000/vsx.md (UNSPEC_XXMULMUL): Add UNSPEC entry. |
| (UNSPEC_XXMULMULHIADD): Likewise. |
| (UNSPEC_XXMULMULLOADD): Likewise. |
| (UNSPEC_XXSSUMUDM): Likewise. |
| (UNSPEC_XXSSUMUDMC): Likewise. |
| (UNSPEC_XXSSUMUDMCEXT): Likewise. |
| (UNSPEC_XSADDADDUQM): Likewise. |
| (UNSPEC_XSADDADDSUQM): Likewise. |
| (UNSPEC_XSADDSUBUQM): Likewise. |
| (UNSPEC_XSADDSUBSUQM): Likewise. |
| (UNSPEC_XSMERGE2T1UQM): Likewise. |
| (UNSPEC_XSMERGE2T2UQM): Likewise. |
| (UNSPEC_XSMERGE2T3UQM): Likewise. |
| (UNSPEC_XSMERGE3T1UQM): Likewise. |
| (UNSPEC_XSREBASE2T1UQM): Likewise. |
| (UNSPEC_XSREBASE2T2UQM): Likewise. |
| (UNSPEC_XSREBASE2T3UQM): Likewise. |
| (UNSPEC_XSREBASE2T4UQM): Likewise. |
| (UNSPEC_XSREBASE3T1UQM): Likewise. |
| (UNSPEC_XSREBASE3T2UQM): Likewise. |
| (UNSPEC_XSREBASE3T3UQM): Likewise. |
| (vsx_xxmulmul): New define_insn. |
| (vsx_xxmulmulhiadd): Likewise. |
| (vsx_xxmulmulloadd): Likewise. |
| (vsx_xxssumudm): Likewise. |
| (vsx_xxssumudmc): Likewise. |
| (vsx_xxssumudmcext): Likewise. |
| (vsx_xsaddadduqm): Likewise. |
| (vsx_xsaddaddsuqm): Likewise. |
| (vsx_xsaddsubuqm): Likewise. |
| (vsx_xsaddsubsuqm): Likewise. |
| (vsx_xsmerge2t1uqm): Likewise. |
| (vsx_xsmerge2t2uqm): Likewise. |
| (vsx_xsmerge2t3uqm): Likewise. |
| (vsx_xsmerge3t1uqm): Likewise. |
| (vsx_xsrebase2t1uqm): Likewise. |
| (vsx_xsrebase2t2uqm): Likewise. |
| (vsx_xsrebase2t3uqm): Likewise. |
| (vsx_xsrebase2t4uqm): Likewise. |
| (vsx_xsrebase3t1uqm): Likewise. |
| (vsx_xsrebase3t2uqm): Likewise. |
| (vsx_xsrebase3t3uqm): Likewise. |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add |
| documentation for ECC cryptography builtins available on |
| future ISA. |
| |
| 2026-06-25 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123884 |
| PR target/106585 |
| * config/riscv/bitmanip.md: Add new splits for single bit manipulation |
| cases followed by a sign extension. |
| |
| 2026-06-25 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR target/124019 |
| * config/riscv/riscv.md (seq_sne_qi): New define_insn_and_split. |
| |
| 2026-06-25 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR tree-optimization/102793 |
| * tree-ssa-ifcombine.cc (bb_guards_loop_p): New function. |
| (ifcombine_ifandif): Use it to avoid combining the conditions |
| guarding a loop. |
| * tree-ssa-tail-merge.cc: Include tree-ssa-ifcombine.h and |
| tree-ssa.h. |
| (ifcombine_candidate_bbs): New static bitmap. |
| (apply_clusters): Collect the merged block's predecessors as |
| ifcombine candidates. |
| (tail_merge_optimize): Run tree_ssa_ifcombine_bb on the candidates; |
| return TODO_cleanup_cfg when it changed the CFG. |
| |
| 2026-06-25 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * gimple-predicate-analysis.cc (get_pred_info_from_cond_edge): |
| New function. |
| (predicate::init_from_control_deps): Use it. |
| (predicate::drop_conjuncts_implied_by): New method. |
| (uninit_analysis::is_use_guarded): Retry the superset test |
| after relaxing the definition predicate by the maybe-undef |
| edge conditions. |
| * gimple-predicate-analysis.h (class predicate): Declare |
| drop_conjuncts_implied_by. |
| |
| 2026-06-25 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * tree-ssa-ifcombine.cc: Include tree-ssa-ifcombine.h. |
| (recognize_if_then_else): Removed 'static'. |
| (tree_ssa_ifcombine_bb): Removed 'static'. |
| * tree-ssa-ifcombine.h: New file. |
| |
| 2026-06-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/125977 |
| * cfgexpand.cc (pass_expand::execute): Guard ranger use |
| on optimize. |
| |
| 2026-06-25 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR target/125716 |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Add |
| (?w,r) alternative for VSUB64 types. |
| |
| 2026-06-25 Xi Ruoyao <xry111@xry111.site> |
| |
| Revert: |
| 2026-06-25 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125077 |
| * config/mips/predicates.md (ssp_gp_operand): New |
| define_predicate. |
| (ssp_operand): New define_predicate. |
| (ssp_normal_operand): New define_predicate. |
| * config/mips/constraints.md (ZA): New define_constraint. |
| (ZB): New define_constraint. |
| * config/mips/mips.md (UNSPEC_SSP): New unspec. |
| (UNSPEC_SSP_GP): New unspec. |
| (cbranch<mode>4): Add '@' to generate the helper function taking |
| mode as a parameter. |
| (@stack_protect_combined_set_normal_<mode>): New define_insn. |
| (stack_protect_combined_set_abs64): New define_insn. |
| (@stack_protect_combined_test_internal_<mode>): New define_insn. |
| (stack_protect_combined_set): New define_expand. |
| (stack_protect_combined_test): New define_expand. |
| * config/mips/mips-protos.h (mips_canary_expose_gp_use): |
| Declare. |
| (mips_output_asm_load_canary): Declare. |
| * config/mips/mips.cc (mips_small_data_pattern_1): Don't rewrite |
| GP-relative symbol wrapped in UNSPEC_SSP_GP. |
| (mips_canary_expose_gp_use): Implement. |
| (mips_output_asm_load_canary): Implement. |
| (mips_print_operand): Allow 'w' to print d/w for DImode/SImode. |
| |
| 2026-06-25 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125628 |
| * config/mips/sync.md (sync_old_<optab><mode>): Fix |
| uninitialized operand use. |
| (sync_new_<optab><mode>): Fix uninitialized operand use, use the |
| same expression for the set source of operand 0 and 1. |
| |
| 2026-06-25 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125077 |
| * config/mips/predicates.md (ssp_gp_operand): New |
| define_predicate. |
| (ssp_operand): New define_predicate. |
| (ssp_normal_operand): New define_predicate. |
| * config/mips/constraints.md (ZA): New define_constraint. |
| (ZB): New define_constraint. |
| * config/mips/mips.md (UNSPEC_SSP): New unspec. |
| (UNSPEC_SSP_GP): New unspec. |
| (cbranch<mode>4): Add '@' to generate the helper function taking |
| mode as a parameter. |
| (@stack_protect_combined_set_normal_<mode>): New define_insn. |
| (stack_protect_combined_set_abs64): New define_insn. |
| (@stack_protect_combined_test_internal_<mode>): New define_insn. |
| (stack_protect_combined_set): New define_expand. |
| (stack_protect_combined_test): New define_expand. |
| * config/mips/mips-protos.h (mips_canary_expose_gp_use): |
| Declare. |
| (mips_output_asm_load_canary): Declare. |
| * config/mips/mips.cc (mips_small_data_pattern_1): Don't rewrite |
| GP-relative symbol wrapped in UNSPEC_SSP_GP. |
| (mips_canary_expose_gp_use): Implement. |
| (mips_output_asm_load_canary): Implement. |
| (mips_print_operand): Allow 'w' to print d/w for DImode/SImode. |
| |
| 2026-06-25 Richard Biener <rguenther@suse.de> |
| |
| * target.def (reassociation_width): Use default_reassociation_width. |
| * targhooks.h (default_reassociation_width): Declare. |
| * targhooks.cc (default_reassociation_width): Define. |
| |
| 2026-06-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125953 |
| * gimple-range.cc (gimple_ranger::range_of_expr): Document. |
| Fall back to global ranges if 'stmt' is not in the IL. |
| |
| 2026-06-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.cc (vect_recog_divmod_pattern): Pass |
| the division stmt as context for the range query on op0. |
| Use the active ranger. |
| |
| 2026-06-25 Richard Biener <rguenther@suse.de> |
| |
| * coretypes.h (enum tree_code): Declare. |
| * tree-core.h (enum tree_code): Adjust. |
| * target.def (reassociation_width): Get a tree_code instead |
| of unsigned int. |
| * doc/tm.texi: Regenerate. |
| * genmatch.cc (enum tree_code): Adjust. |
| * gimple-loop-versioning.cc (address_info_hasher::hash): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_reassociation_width): |
| Likewise. |
| * config/loongarch/loongarch.cc |
| (loongarch_cpu_sched_reassociation_width): Likewise. |
| * config/mips/mips.cc (mips_sched_reassociation_width): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_reassociation_width): Likewise. |
| * config/i386/i386.cc (ix86_reassociation_width): Likewise |
| and fix bogus compares. |
| |
| 2026-06-25 Martin Uecker <uecker@tugraz.at> |
| |
| * doc/extend.texi (Constructing Calls): Document |
| __builtin_call_static_chain and __builtin_call_code_address |
| and update __builtin_call_with_static_chain. |
| (Nested Functions): Update. |
| |
| 2026-06-25 Martin Uecker <uecker@tugraz.at> |
| |
| * builtins.def (BUILT_IN_CALL_CODE_ADDRESS, |
| BUILT_IN_CALL_STATIC_CHAIN): New. |
| * builtins.cc (expand_builtin): Emit errors for invalid uses. |
| (is_simple_builtin): Add new built-in functions. |
| * gimple-fold.cc (gimple_fold_builtin_call_info): New function. |
| (gimple_fold_builtin): Expand new built-ins for non-nested functions. |
| * tree-nested.cc (convert_tramp_reference_stmt): Ingore new built-ins. |
| (convert_gimple_call): Expand built-ins for nested functions. |
| * tree-inline.cc (initialize_inlined_parameters): Set a missing |
| static chain to NULL. |
| |
| 2026-06-25 Jan Beulich <jbeulich@suse.com> |
| |
| * config/riscv/arch-canonicalize: Avoid f"..." strings. |
| |
| 2026-06-24 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| * config/i386/prfchwintrin.h (_m_prefetchw): Take |
| volatile const void * instead of void *. |
| |
| 2026-06-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125910 |
| * value-range.cc (prange::set_pt): Do not set PT when zero. |
| (prange::intersect): If the result is zero_p, clear PT. |
| (prange::verify_range): Verify points-to range is valid. |
| * value-range.h (zero_p): Do not assert, move to verify range. |
| (prange::set_pt): Only set PT when the range valid. |
| |
| 2026-06-24 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| PR debug/125421 |
| * dwarf2out.cc (modified_type_die): Handle qualified_type being |
| a variant of dtype as if they were identical to avoid peeling a |
| typdef. |
| For named types, use dentry unconditionally as that is valid for |
| both cases of qualified_type == and != dentry. |
| |
| 2026-06-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_REDUCTION_START): New builtin. |
| (BUILT_IN_GOMP_REDUCTION_END): New builtin. |
| * omp-low.cc (lower_reduction_clauses): Replace |
| BUILT_IN_GOMP_ATOMIC_START / BUILT_IN_GOMP_ATOMIC_END with |
| BUILT_IN_GOMP_REDUCTION_START / BUILT_IN_GOMP_REDUCTION_END. |
| (lower_omp_sections): Likewise. |
| (lower_omp_scope): Likewise. |
| (lower_omp_for): Likewise. |
| * tree-ssa-alias.cc (check_fnspec): Handle |
| BUILT_IN_GOMP_REDUCTION_START and BUILT_IN_GOMP_REDUCTION_END as |
| memory barriers. |
| |
| 2026-06-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_BARRIER): Change function to |
| GOMP_barrier_ext and type to BT_FN_VOID_INT. |
| (BUILT_IN_GOMP_BARRIER_CANCEL): Change function to |
| GOMP_barrier_cancel_ext and type to BT_FN_VOID_INT. |
| * omp-expand.cc (expand_omp_for_static_nochunk): Pass |
| GOMP_BARRIER_IMPLICIT_WORKSHARE to omp_build_barrier. |
| (expand_omp_for_static_chunk): Likewise. |
| (expand_omp_single): Likewise. |
| * omp-general.cc (omp_build_barrier): Add kind parameter; pass it |
| to GOMP_barrier_ext or GOMP_barrier_cancel_ext. |
| * omp-general.h (omp_build_barrier): Update declaration to add |
| kind parameter. |
| * omp-low.cc (lower_rec_input_clauses): Determine barrier kind from |
| the enclosing gimple statement code and pass it to omp_build_barrier. |
| (lower_omp_for_scan): Pass GOMP_BARRIER_IMPLICIT_WORKSHARE to |
| omp_build_barrier. |
| |
| 2026-06-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * builtin-types.def (BT_COMPLEX_INT, BT_FN_COMPLEX_INT): New types. |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING): New |
| builtin. |
| (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING): Likewise. |
| * omp-expand.cc (expand_omp_for_static_nochunk): Replace separate calls |
| to public API functions with a single call to |
| GOMP_loop_static_worksharing or GOMP_distribute_static_worksharing, then |
| unpack id and count. |
| (expand_omp_for_static_chunk): Likewise. |
| |
| 2026-06-24 Paul-Antoine Arras <parras@baylibre.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM): New builtin. |
| * omp-low.cc (lower_omp_master): Call it. |
| |
| 2026-06-24 Filip Kastl <fkastl@suse.cz> |
| |
| * gimple-ssa-pta-constraints.cc (handle_call_arg): Mention in |
| comment that the function can get called in IPA mode. |
| |
| 2026-06-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110743 |
| * tree-ssa-uninit.cc (maybe_warn_operand): Also cover |
| VIEW_CONVERT_EXPR uses for RMW bit clear/set pattern |
| detection. |
| |
| 2026-06-24 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (V16QI_V2DI): New mode iterator. |
| (add<mode>3): Split into two patterns to support future ISA |
| alternatives. |
| (sub<mode>3): Likewise. |
| * config/rs6000/vsx.md (VIArith): New mode iterator. |
| (vsx_mul<mode>3): New insn pattern. |
| (smul<mode>3_highpart): Split into mode-specific patterns. |
| (umul<mode>3_highpart): Likewise. |
| (smulv8hi3_highpart): New insn pattern. |
| (smulv4si3_highpart): Likewise. |
| (smulv2di3_highpart): Likewise. |
| (umulv8hi3_highpart): Likewise. |
| (umulv4si3_highpart): Likewise. |
| (umulv2di3_highpart): Likewise. |
| * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvmulhuh): New |
| builtin. |
| (__builtin_vsx_xvmulhsh): Likewise. |
| * config/rs6000/rs6000-overload.def (__builtin_vec_mulh): Add |
| overloads for vector multiply-high signed/unsigned halfword. |
| * config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add entry for |
| BSTZ_FUTURE_VSX. |
| (stanza_map): Add future-vsx stanza mapping. |
| (enable_string): Add ENB_FUTURE_VSX. |
| (write_decls): Add ENB_FUTURE_VSX to the bif_enable enum in the |
| generated header file. |
| * config/rs6000/rs6000.md (define_attr "isa"): Add future to the list |
| of ISA values. |
| (define_attr "enabled"): Add check for future ISA. |
| * config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Handle |
| ENB_FUTURE_VSX and issue a diagnostic requiring -mcpu=future and -mvsx. |
| (rs6000_builtin_is_supported): Return TARGET_FUTURE && TARGET_VSX |
| for ENB_FUTURE_VSX built-ins. |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions Available |
| on Future ISA): Document new functions. |
| |
| 2026-06-24 Christopher Bazley <chris.bazley@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Update |
| vec_init<mode><Vel> and vec_shl_insert_<mode> to |
| accept all SVE vector modes. |
| |
| 2026-06-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125958 |
| * config/i386/i386-expand.cc (ix86_expand_lcp_stall_peephole): |
| Replace !REG_P (dest) with !GENERAL_REG_P (dest). |
| |
| 2026-06-24 Lili Cui <lili.cui@intel.com> |
| |
| * config/i386/x86-tune-costs.h (generic_cost): Increase branch |
| mispredict scale from COSTS_N_INSNS (2) to COSTS_N_INSNS (2) + 3. |
| |
| 2026-06-24 Jan Beulich <jbeulich@suse.com> |
| |
| * doc/ifn.texi: Drop blanks after @code. |
| |
| 2026-06-23 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_affinity): Use macros for accessing |
| iterator elements. |
| (compute_omp_iterator_count): Likewise. |
| (build_omp_iterator_loop): Likewise. |
| (copy_omp_iterator): Use a boolean to force creation of an |
| expanded iterator vector, instead of specifying the length explicitly. |
| (remove_unused_omp_iterator_vars): Use accessor macros. |
| (build_omp_iterators_loops): Likewise. |
| (enter_omp_iterator_loop_context_1): Likewise. |
| (extract_base_bit_offset): Likewise. |
| * omp-low.cc (lower_omp_map_iterator_expr): Likewise. |
| (lower_omp_map_iterator_size): Likewise. |
| * tree-inline.cc (copy_tree_body_r): Likewise. |
| * tree-pretty-print.cc (dump_omp_iterators): Likewise. |
| * tree.h (OMP_ITERATOR_VAR, OMP_ITERATOR_BEGIN, OMP_ITERATOR_END, |
| OMP_ITERATOR_STEP, OMP_ITERATOR_ORIG_STEP, OMP_ITERATOR_BLOCK, |
| OMP_ITERATOR_LABEL, OMP_ITERATOR_INDEX, OMP_ITERATOR_ELEMS, |
| OMP_ITERATOR_COUNT, OMP_ITERATOR_EXPANDED_P): New macros. |
| (make_omp_iterator, make_expanded_omp_iterator): New constructor |
| functions. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * ira-build.cc (ira_create_allocno): Initialize dependent |
| filters. |
| (copy_dependent_filters): New function to copy filters. |
| (create_cap_allocno): Use new function. |
| (propagate_allocno_info): Ditto. |
| (propagate_some_info_from_allocno): Ditto. |
| * ira-color.cc (ira_dependent_filter): New function that |
| calls lra_get_dependent_filter. |
| (assign_hard_reg): Use new function. |
| (improve_allocation): Ditto. |
| (fast_allocation): Ditto. |
| * ira-conflicts.cc (dependent_filter_same_reg_ok_p): New |
| function to check if a dependent filter allows the same reg. |
| (can_use_same_reg_p): Use new function. |
| * ira-int.h (struct ira_dependent_filter): New struct holding |
| allocno-specific dependent-filter properties. |
| (ALLOCNO_DEPENDENT_FILTERS): New accessor. |
| (ira_add_dependent_filter): Declare. |
| * ira-lives.cc (ira_add_dependent_filter): New function. |
| (process_dependent_filters): New function. |
| (process_bb_node_lives): Call new function. |
| * ira.cc (ira): Reset filters. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): |
| Add widen overlap dependent constraint. |
| * config/riscv/riscv-protos.h (riscv_widen_overlap_ok): Declare. |
| * config/riscv/riscv.cc (riscv_widen_operand_ok): New function. |
| * config/riscv/vector.md: Use new constraint. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * lra-assigns.cc (find_hard_regno_for_1): Query dependent |
| filter of current pseudo. |
| * lra-constraints.cc (struct dependent_filter_cache_hasher): New |
| hasher. |
| (lra_init_dependent_filter_cache): New function. |
| (lra_finish_dependent_filter_cache): Ditto. |
| (lra_reset_dependent_filters): Ditto. |
| (lra_get_dependent_filter): New function to query (and add) |
| a dependent filter from/to the cache. |
| (lra_add_dependent_filter): New function to add a dependent |
| filter to an lra_reg. |
| (get_dependent_filter): New function to get a dependent filter |
| from a constraint. |
| (process_dependent_filters): New function to get all dependent |
| filters from the current insn's constraints. |
| (process_alt_operands): Initialize dependent-filter regset. |
| (curr_insn_transform): Fill lra_reg dependent filters. |
| * lra-int.h (struct dependent_filter): Declare. |
| (struct dependent_filter_entry): Ditto. |
| (lra_init_dependent_filter_cache): Ditto. |
| (lra_finish_dependent_filter_cache): Ditto. |
| * lra.cc (initialize_lra_reg_info_element): New function. |
| (finish_reg_info): Release dependent-filter vector. |
| (lra_init_once): Init hash table. |
| (lra_finish_once): Clear hash table. |
| * lra.h (lra_reset_dependent_filters): Declare. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * recog.cc (preprocess_constraints): Initialize dependent |
| filter. |
| (test_dependent_filter): New function wrapping |
| eval_dependent_filter. |
| (constrain_operands): Test dependent filter in strict mode. |
| * recog.h (struct operand_alternative): Declare |
| dependent_filters. |
| (alternative_dependent_filters): New function. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * doc/md.texi: Document dependent filters. |
| * doc/tm.texi: Ditto. |
| * doc/tm.texi.in: Ditto. |
| * genconfig.cc (main): Add number of dependent filters. |
| * genpreds.cc (add_constraint): Add dependent-filter reference |
| operand. |
| (process_define_register_constraint): Handle dependent filter. |
| (write_get_register_filter): Ditto. |
| (write_get_register_filter_id): Ditto. |
| (write_dependent_filter_helpers_h): Ditto. |
| (write_dependent_filter_functions_c): Ditto. |
| (write_tm_preds_h): Ditto. |
| (write_insn_preds_c): Ditto. |
| (main): Ditto. |
| * gensupport.cc (process_define_register_constraint): Ditto. |
| * gensupport.h (get_register_filter_id): Declare. |
| * rtl.def (DEFINE_REGISTER_CONSTRAINT): Adjust for dependent |
| filter. |
| |
| 2026-06-23 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| * tree-vect-stmts.cc (vect_use_grouped_gather): Only use when |
| there are at least two pieces. |
| |
| 2026-06-23 Xi Ruoyao <xry111@xry111.site> |
| |
| Revert: |
| 2026-06-08 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/mips/sync.md (sync_old_<optab><mode>): Fix |
| uninitialized operand use. |
| (sync_new_<optab><mode>): Fix uninitialized operand use, use the |
| same expression for the set source of operand 0 and 1. |
| |
| 2026-06-23 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| Yuke Tang <tang.yuke@zte.com.cn> |
| |
| * config/riscv/autovec.md: Add auto-vectorization patterns for |
| Zvabd instructions. |
| * config/riscv/autovec-opt.md: Add widening absolute-difference |
| accumulate combine patterns. |
| * config/riscv/riscv-ext.def: Add Zvabd extension entry. |
| * config/riscv/riscv-ext.opt: Add Zvabd option. |
| * config/riscv/vector-iterators.md: Update for Zvabd. |
| * config/riscv/vector.md: Add Zvabd patterns. |
| * doc/riscv-ext.texi: Document zvabd extension. |
| |
| 2026-06-23 Alex Coplan <alex.coplan@arm.com> |
| |
| PR target/125818 |
| * config/aarch64/aarch64-sve-builtins-base.cc (svset_impl::fold): Fix |
| unsharing to ensure the returned stmt has the exact same lhs as the |
| original. |
| |
| 2026-06-23 Sarvesh Chandra <Sarvesh.Chandra@amd.com> |
| Ashwin Godbole <Ashwin.Godbole@amd.com> |
| |
| PR target/107057 |
| * config/i386/sse.md (avx512f_movddup512<mask_name>): Add a |
| register source alternative that emits vunpcklpd. |
| (avx_movddup256<mask_name>): Likewise. |
| |
| 2026-06-23 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125893 |
| * config/i386/i386-expand.cc (ix86_expand_lcp_stall_peephole): New. |
| * config/i386/i386-protos.h (ix86_expand_lcp_stall_peephole): |
| Likewise. |
| * config/i386/i386.md (TARGET_LCP_STALL peepholes): Call |
| ix86_expand_lcp_stall_peephole. |
| |
| 2026-06-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110743 |
| * tree-ssa-uninit.cc (maybe_warn_operand): Suppress diagnostics |
| on RMW cycles setting/clearing bits. |
| |
| 2026-06-23 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * config/i386/sse.md (V_ANY_CBRANCH): New mode iterator. |
| (cond_vec_cbranch_any<mode>): New define_expand. |
| (cond_vec_cbranch_all<mode>): Ditto. |
| |
| 2026-06-23 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * dojump.cc (do_compare_rtx_and_jump): Use simplify_expand_binop |
| instead of expand_binop. |
| |
| 2026-06-23 Hu, Lin1 <lin1.hu@intel.com> |
| |
| * doc/md.texi (vec_cbranch_all<mode>): Clarify how the |
| middle-end invoke the pattern. |
| (cond_vec_cbranch_all<mode>): Ditto. |
| (cond_len_vec_cbranch_all<mode>): Ditto. |
| |
| 2026-06-23 Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Handle |
| ENB_FUTURE_ALTIVEC and issue a diagnostic requiring -mcpu=future |
| and -maltivec. |
| (rs6000_builtin_is_supported): Check TARGET_FUTURE && TARGET_ALTIVEC |
| for ENB_FUTURE_ALTIVEC built-ins. |
| * config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add |
| BSTZ_FUTURE_ALTIVEC entry. |
| (stanza_map): Add future-altivec stanza mapping. |
| (enable_string): Add ENB_FUTURE_ALTIVEC. |
| (write_decls): Add ENB_FUTURE_ALTIVEC to the bif_enable enum in the |
| generated header file. |
| |
| 2026-06-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (pass_cselim::execute): Don't |
| return TODO_TODO_update_ssa_only_virtuals. |
| |
| 2026-06-23 Xin Liu <liulxx@hygon.cn> |
| |
| * common/config/i386/cpuinfo.h (get_hygon_cpu): Detect HYGON |
| Family 18h model 8 as c86-4g-m8. |
| * common/config/i386/i386-common.cc (processor_names): Add |
| c86-4g-m8. |
| (processor_alias_table): Likewise. |
| * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): Add |
| HYGONFAM18H_C86_4G_M8. |
| * config.gcc: Add c86-4g-m8 to supported x86 CPUs and handle |
| c86_4g_m8 target triples. |
| * config/i386/c86-4g-m7.md: Rename to ... |
| * config/i386/c86-4g-m7m8.md: ... this and extend shared c86-4g-m7 |
| scheduling reservations to c86-4g-m8. |
| (c86_4g_m8_imovx_cwde): New reservation. |
| (c86_4g_m7_imov_xchg): Add c86_4g_m8 to CPU attribute. |
| (c86_4g_m7_imov_xchg_load): Ditto. |
| (c86_4g_m7_imov): Ditto. |
| (c86_4g_m7_imov_load): Ditto. |
| (c86_4g_m7_imov_store): Ditto. |
| (c86_4g_m7_push): Ditto. |
| (c86_4g_m7_push_mem): Ditto. |
| (c86_4g_m7_pop): Ditto. |
| (c86_4g_m7_pop_mem): Ditto. |
| (c86_4g_m7_imul): Ditto. |
| (c86_4g_m7_imul_load): Ditto. |
| (c86_4g_m7_idiv): Ditto. |
| (c86_4g_m7_idiv_QI): Ditto. |
| (c86_4g_m7_idiv_load): Ditto. |
| (c86_4g_m7_idiv_QI_load): Ditto. |
| (c86_4g_m7_insn): Ditto. |
| (c86_4g_m7_insn_load): Ditto. |
| (c86_4g_m7_insn_store): Ditto. |
| (c86_4g_m7_insn2_store): Ditto. |
| (c86_4g_m7_insn_both): Ditto. |
| (c86_4g_m7_setcc): Ditto. |
| (c86_4g_m7_setcc_load): Ditto. |
| (c86_4g_m7_setcc_store): Ditto. |
| (c86_4g_m7_alu1_double): Ditto. |
| (c86_4g_m7_alu1_double_load): Ditto. |
| (c86_4g_m7_alu1_vector): Ditto. |
| (c86_4g_m7_alu1_vector_load): Ditto. |
| (c86_4g_m7_alu1_direct): Ditto. |
| (c86_4g_m7_alu1_direct_load): Ditto. |
| (c86_4g_m7_call): Ditto. |
| (c86_4g_m7_branch): Ditto. |
| (c86_4g_m7_branch_load): Ditto. |
| (c86_4g_m7_lea): Ditto. |
| (c86_4g_m7_leave): Ditto. |
| (c86_4g_m7_str): Ditto. |
| (c86_4g_m7_str_load): Ditto. |
| (c86_4g_m7_ieu_vector): Ditto. |
| (c86_4g_m7_ieu_vector_load): Ditto. |
| (c86_4g_m7_sse_insertimm): Ditto. |
| (c86_4g_m7_sse_insert): Ditto. |
| (c86_4g_m7_fp_cmov): Ditto. |
| (c86_4g_m7_fp_mov_direct_load): Ditto. |
| (c86_4g_m7_fp_mov_direct_store): Ditto. |
| (c86_4g_m7_fp_mov_double_load): Ditto. |
| (c86_4g_m7_fp_mov_double_store): Ditto. |
| (c86_4g_m7_fp_mov_direct): Ditto. |
| (c86_4g_m7_fp_sqrt): Ditto. |
| (c86_4g_m7_fp_spc_direct): Ditto. |
| (c86_4g_m7_fp_spc): Ditto. |
| (c86_4g_m7_fp_op_mul): Ditto. |
| (c86_4g_m7_fp_op_mul_load): Ditto. |
| (c86_4g_m7_fp_op_imul_load): Ditto. |
| (c86_4g_m7_fp_div): Ditto. |
| (c86_4g_m7_fp_div_load): Ditto. |
| (c86_4g_m7_fp_idiv_load): Ditto. |
| (c86_4g_m7_fp_fsgn): Ditto. |
| (c86_4g_m7_fp_fcmp): Ditto. |
| (c86_4g_m7_fp_fcmp_load): Ditto. |
| (c86_4g_m7_fp_mmx): Ditto. |
| (c86_4g_m7_mmx_add_cmp): Ditto. |
| (c86_4g_m7_mmx_add_cmp_load): Ditto. |
| (c86_4g_m7_mmx_cvt): Ditto. |
| (c86_4g_m7_mmx_cvt_load): Ditto. |
| (c86_4g_m7_mmx_shift): Ditto. |
| (c86_4g_m7_mmx_shift_load): Ditto. |
| (c86_4g_m7_mmx_shift_avg): Ditto. |
| (c86_4g_m7_mmx_shift_avg_load): Ditto. |
| (c86_4g_m7_mmx_shift_sadbw): Ditto. |
| (c86_4g_m7_mmx_shift_sadbw_load): Ditto. |
| (c86_4g_m7_mmx_mov): Ditto. |
| (c86_4g_m7_mmx_mov_store): Ditto. |
| (c86_4g_m7_mmx_mov_load): Ditto. |
| (c86_4g_m7_mmx_mul): Ditto. |
| (c86_4g_m7_mmx_mul_load): Ditto. |
| (c86_4g_m7_sse_pinsr_reg): Ditto. |
| (c86_4g_m7_sse_pinsr_reg_load): Ditto. |
| (c86_4g_m7_avx_vpinsr_reg): Ditto. |
| (c86_4g_m7_avx_vpinsr_reg_load): Ditto. |
| (c86_4g_m7_avx512_perm_xmm): Ditto. |
| (c86_4g_m7_avx512_perm_xmm_opload): Ditto. |
| (c86_4g_m7_avx512_permi2_ymm): Ditto. |
| (c86_4g_m7_avx512_permi2_zmm): Ditto. |
| (c86_4g_m7_avx512_permi2_ymm_load): Ditto. |
| (c86_4g_m7_avx512_permi2_zmm_load): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_imm): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_imm_load): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_noimm): Ditto. |
| (c86_4g_m7_sse_perm_zmm_noimm_load): Ditto. |
| (c86_4g_m7_avx512_insertx_ymm): Ditto. |
| (c86_4g_m7_avx512_insertx_ymem): Ditto. |
| (c86_4g_m7_avx512_insertx_zxmm): Ditto. |
| (c86_4g_m7_avx512_insertx_zxmem): Ditto. |
| (c86_4g_m7_avx512_insertx_zymm): Ditto. |
| (c86_4g_m7_avx512_insertx_zymem): Ditto. |
| (c86_4g_m7_avx_insertx_ymm): Ditto. |
| (c86_4g_m7_avx_insertx_ymem): Ditto. |
| (c86_4g_m7_avx512_shuf_xymm): Ditto. |
| (c86_4g_m7_avx512_shuf_zmm): Ditto. |
| (c86_4g_m7_avx512_shuf_xymem): Ditto. |
| (c86_4g_m7_avx512_shuf_zmem): Ditto. |
| (c86_4g_m7_sselogic_xymm): Ditto. |
| (c86_4g_m7_sselogic_xymm_load): Ditto. |
| (c86_4g_m7_avx512_cmpestr): Ditto. |
| (c86_4g_m7_avx512_cmpestr_load): Ditto. |
| (c86_4g_m7_avx512_log): Ditto. |
| (c86_4g_m7_avx512_log_load): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_xymm): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_xymem): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_zmm): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_zmem): Ditto. |
| (c86_4g_m7_avx512_abs): Ditto. |
| (c86_4g_m7_avx512_abs_load): Ditto. |
| (c86_4g_m7_avx_sign): Ditto. |
| (c86_4g_m7_avx_sign_load): Ditto. |
| (c86_4g_m7_avx_blend): Ditto. |
| (c86_4g_m7_avx_blend_load): Ditto. |
| (c86_4g_m7_avx512_aes): Ditto. |
| (c86_4g_m7_avx512_aes_load): Ditto. |
| (c86_4g_m7_avx_aes): Ditto. |
| (c86_4g_m7_avx_aes_load): Ditto. |
| (c86_4g_m7_extr): Ditto. |
| (c86_4g_m7_extr_store): Ditto. |
| (c86_4g_m7_avx_ssecomi_comi): Ditto. |
| (c86_4g_m7_avx_ssecomi_comi_load): Ditto. |
| (c86_4g_m7_avx_ssecomi_test): Ditto. |
| (c86_4g_m7_avx_ssecomi_test_load): Ditto. |
| (c86_4g_m7_avx512_imul): Ditto. |
| (c86_4g_m7_avx512_imul_mem): Ditto. |
| (c86_4g_m7_avx_imul): Ditto. |
| (c86_4g_m7_avx_imul_mem): Ditto. |
| (c86_4g_m7_avx512_mov_vmov): Ditto. |
| (c86_4g_m7_avx512_mov_vmov_store): Ditto. |
| (c86_4g_m7_avx512_mov_vmov_load): Ditto. |
| (c86_4g_m7_avx512_vpmovx_y): Ditto. |
| (c86_4g_m7_avx512_vpmovx_y_load): Ditto. |
| (c86_4g_m7_avx512_vpmovx_z): Ditto. |
| (c86_4g_m7_avx512_vpmovx_z_load): Ditto. |
| (c86_4g_m7_avx512_vpmovx_x): Ditto. |
| (c86_4g_m7_avx512_vpmovx_x_load): Ditto. |
| (c86_4g_m7_avx_vpmovx_xx): Ditto. |
| (c86_4g_m7_avx_vpmovx_xx_load): Ditto. |
| (c86_4g_m7_avx512_expand): Ditto. |
| (c86_4g_m7_avx512_expand_load): Ditto. |
| (c86_4g_m7_avx512_expand_z): Ditto. |
| (c86_4g_m7_avx512_expand_z_load): Ditto. |
| (c86_4g_m7_avx512_movnt_load): Ditto. |
| (c86_4g_m7_avx512_movnt_store): Ditto. |
| (c86_4g_m7_sse_movnt_store): Ditto. |
| (c86_4g_m7_sse_movnt): Ditto. |
| (c86_4g_m7_avx512_blendv): Ditto. |
| (c86_4g_m7_avx512_blendv_load): Ditto. |
| (c86_4g_m7_sse_mov2): Ditto. |
| (c86_4g_m7_sse_mov2_load): Ditto. |
| (c86_4g_m7_avx512_sseishft_aligr): Ditto. |
| (c86_4g_m7_avx512_sseishft_aligr_load): Ditto. |
| (c86_4g_m7_avx512_sseishft_vshift): Ditto. |
| (c86_4g_m7_avx512_sseishft_vshift_load): Ditto. |
| (c86_4g_m7_avx512_sseadd_maxmin): Ditto. |
| (c86_4g_m7_avx512_sseadd_maxmin_load): Ditto. |
| (c86_4g_m7_avx_sseadd_maxmin): Ditto. |
| (c86_4g_m7_avx_sseadd_maxmin_load): Ditto. |
| (c86_4g_m7_sse_sseadd_maxmin): Ditto. |
| (c86_4g_m7_sse_sseadd_maxmin_load): Ditto. |
| (c86_4g_m7_avx512_sseadd): Ditto. |
| (c86_4g_m7_avx512_sseadd_load): Ditto. |
| (c86_4g_m7_avx_sseadd_hplus): Ditto. |
| (c86_4g_m7_avx_sseadd_hplus_load): Ditto. |
| (c86_4g_m7_avx512_sseiadd_madd): Ditto. |
| (c86_4g_m7_avx512_sseiadd_madd_mem): Ditto. |
| (c86_4g_m7_avx_sseiadd_sadbw): Ditto. |
| (c86_4g_m7_avx_sseiadd_sadbw_mem): Ditto. |
| (c86_4g_m7_sse_sseiadd_sadbw): Ditto. |
| (c86_4g_m7_sse_sseiadd_sadbw_mem): Ditto. |
| (c86_4g_m7_sse_sseiadd_madd): Ditto. |
| (c86_4g_m7_sse_sseiadd_madd_mem): Ditto. |
| (c86_4g_m7_avx512_sseiadd_avg): Ditto. |
| (c86_4g_m7_avx512_sseiadd_avg_load): Ditto. |
| (c86_4g_m7_avx_sseiadd_hplus): Ditto. |
| (c86_4g_m7_avx_sseiadd_hplus_load): Ditto. |
| (c86_4g_m7_sse_sseiadd_hplus): Ditto. |
| (c86_4g_m7_sse_sseiadd_hplus_load): Ditto. |
| (c86_4g_m8_avx512_ssemul): New reservation. |
| (c86_4g_m8_avx512_ssemul_load): Ditto. |
| (c86_4g_m7_avx512_ssediv_x): Add c86_4g_m8 to CPU attribute. |
| (c86_4g_m7_avx512_ssediv_xmem): Ditto. |
| (c86_4g_m7_avx512_ssediv_y): Ditto. |
| (c86_4g_m7_avx512_ssediv_ymem): Ditto. |
| (c86_4g_m7_avx512_ssediv_z): Ditto. |
| (c86_4g_m7_avx512_ssediv_zmem): Ditto. |
| (c86_4g_m7_avx512_ssecmp): Ditto. |
| (c86_4g_m7_avx512_ssecmp_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_z): Ditto. |
| (c86_4g_m7_avx512_ssecmp_z_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp_z): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. |
| (c86_4g_m7_avx_ssecmp_vp): Ditto. |
| (c86_4g_m7_avx_ssecmp_vp_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_test): Ditto. |
| (c86_4g_m7_avx512_ssecmp_test_load): Ditto. |
| (c86_4g_m7_avx512_ssecvt_xy): Ditto. |
| (c86_4g_m7_avx512_ssecvt_xy_load): Ditto. |
| (c86_4g_m7_avx512_ssecvt_y_z): Ditto. |
| (c86_4g_m7_avx512_ssecvt_y_z_load): Ditto. |
| (c86_4g_m7_avx512_ssecvt_z): Ditto. |
| (c86_4g_m7_avx512_ssecvt_z_load): Ditto. |
| (c86_4g_m7_avx_ssecvt): Ditto. |
| (c86_4g_m7_avx_ssecvt_load): Ditto. |
| (c86_4g_m7_sse_ssecvt_pspi): Ditto. |
| (c86_4g_m7_sse_ssecvt_pspi_load): Ditto. |
| (c86_4g_m7_sse_ssecvt_pi): Ditto. |
| (c86_4g_m7_sse_ssecvt_pi_load): Ditto. |
| (c86_4g_m8_avx512_muladd): New reservation. |
| (c86_4g_m8_avx512_muladd_load): Ditto. |
| (c86_4g_m7_avx512_muladd_madd): Add c86_4g_m8 to CPU attribute. |
| (c86_4g_m7_avx512_muladd_madd_load): Ditto. |
| (c86_4g_m7_avx512_sse_range): Ditto. |
| (c86_4g_m7_avx512_sse_range_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_x): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_x_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_y): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_y_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_z): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_z_load): Ditto. |
| (c86_4g_m7_avx512_sse_class): Ditto. |
| (c86_4g_m7_avx512_sse_class_load): Ditto. |
| (c86_4g_m7_avx512_sse_class_z): Ditto. |
| (c86_4g_m7_avx512_sse_class_z_load): Ditto. |
| (c86_4g_m7_avx_sse): Ditto. |
| (c86_4g_m7_avx_sse_load): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_x): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_xload): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_y): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_yload): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_z): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_sf_zload): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_x): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_xload): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_y): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_yload): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_z): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_df_zload): Ditto. |
| (c86_4g_m7_avx512_msklog): Ditto. |
| (c86_4g_m7_avx512_msklog_vector): Ditto. |
| (c86_4g_m7_avx512_mskmov_reg_k): Ditto. |
| (c86_4g_m7_avx512_mskmov_xy_k): Ditto. |
| (c86_4g_m7_avx512_mskmov_z_k): Ditto. |
| (c86_4g_m7_avx512_mskmov_k_k): Ditto. |
| (c86_4g_m7_avx512_mskmov_k_reg): Ditto. |
| (c86_4g_m7_avx512_mskmov_k_m): Ditto. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Detect |
| c86-4g-m8. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Define |
| c86-4g-m8 arch and tune macros. |
| * config/i386/i386-options.cc (m_C86_4G_M8): New macro. |
| (m_C86_4G): Include m_C86_4G_M8. |
| (processor_cost_table): Add c86_4g_m8_cost. |
| * config/i386/i386.cc (ix86_reassociation_width): Handle |
| PROCESSOR_C86_4G_M8. |
| * config/i386/i386.h (enum processor_type): Add |
| PROCESSOR_C86_4G_M8. |
| (PTA_C86_4G_M8): New. |
| * config/i386/i386.md: Add c86_4g_m8 to cpu attribute. |
| * config/i386/x86-tune-costs.h (c86_4g_m8_cost): New. |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Handle |
| PROCESSOR_C86_4G_M8. |
| (ix86_adjust_cost): Likewise. |
| * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Include |
| m_C86_4G_M8. |
| (X86_TUNE_USE_SCATTER_4PARTS): Likewise. |
| (X86_TUNE_USE_SCATTER_8PARTS): Likewise. |
| (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): Likewise. |
| (X86_TUNE_AVX512_SPLIT_REGS): Likewise. |
| (X86_TUNE_AVX512_AVOID_VEC_PERM): Likewise. |
| (X86_TUNE_AVX512_MOVE_BY_PIECES): Likewise. |
| (X86_TUNE_AVX512_MASKED_EPILOGUES): Likewise. |
| * doc/extend.texi: Document c86-4g-m8 for __builtin_cpu_is. |
| * doc/invoke.texi: Document c86-4g-m8. |
| |
| 2026-06-22 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/125697 |
| * doc/invoke.texi: Clarify -Wrange-loop-construct description. |
| |
| 2026-06-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125923 |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): Change |
| assert of the vuse being the same to rejecting if they are |
| different without a virtual phi. |
| |
| 2026-06-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (cond_store_replacement): Fix comment |
| on no load for nontrapping. |
| |
| 2026-06-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (cond_store_replacement): Update |
| the vuse on the new load and the vuse/vdef on the new |
| store. |
| |
| 2026-06-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125917 |
| * tree-ssa-phiopt.cc (cond_store_replacement): Just call |
| gsi_insert_before instead of checking gsi_end_p. |
| (cond_if_else_store_replacement_1): Likewise. |
| |
| 2026-06-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * splay-tree-utils.cc: Remove -*- C++ -*- tags for Emacs. |
| * rtl-ssa/accesses.cc: Same. |
| * rtl-ssa/blocks.cc: Same. |
| * rtl-ssa/changes.cc: Same. |
| * rtl-ssa/functions.cc: Same. |
| * rtl-ssa/insns.cc: Same. |
| |
| 2026-06-22 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-general.cc (omp_runtime_api_procname): Update for added |
| functions and older additions. |
| * omp-low.cc (scan_omp_1_stmt): Update for added _dim function. |
| |
| 2026-06-22 Zhongjie Guo <guozhongjie@hygon.cn> |
| Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost |
| comparisons using the comparison operand mode. |
| |
| 2026-06-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (avr_log_t) <insert_attributes>: New field. |
| * config/avr/avr-log.cc (avr_log_node): New static function. |
| (avr_log_vadump) [%N]: Call it. |
| (avr_log_set_avr_log) <insert_attributes>: New SET_DUMP_DETAIL. |
| * config/avr/avr.cc (avr_pgm_check_var_decl): Don't call avr_edump. |
| (avr_insert_attributes) [avr_log.insert_attributes]: Call avr_edump. |
| |
| 2026-06-22 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125895 |
| * config/i386/i386-features.cc (pass_x86_cse::x86_cse): Use |
| integer CONST_VECTOR to load FP CONST_VECTOR converted from |
| const_int. |
| |
| 2026-06-22 Pan Li <pan2.li@intel.com> |
| |
| * match-sat-alu.pd: Add fits check before call to |
| tree_to_uhwi. |
| |
| 2026-06-22 Pan Li <pan2.li@intel.com> |
| |
| * match-sat-alu.pd: Add pattern for unsigned scalar |
| SAT_MUL form 13. |
| |
| 2026-06-21 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/sourcebuild.texi: Document object file checks. |
| |
| 2026-06-21 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_expand_prefetch_range_builtin): Use LLONG_MAX instead |
| of LONG_LONG_MAX. |
| |
| 2026-06-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125883 |
| * config/i386/i386-features.cc (ix86_broadcast_inner): Skip JUMP |
| from asm goto. |
| |
| 2026-06-20 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Integer Overflow Builtins): Spell compile time |
| without dash when a noun. |
| * doc/invoke.texi (Warning Options): Ditto. |
| * doc/passes.texi (Tree SSA passes): Ditto. |
| * doc/rtl.texi (Conversions): Ditto. |
| |
| 2026-06-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_progmem_p): Use strip_array_types to |
| peel off ARRAY_TYPEs. |
| (avr_nonconst_pointer_addrspace): Same. |
| (avr_insert_attributes): Same. |
| (avr_decl_maybe_lds_p): Same. |
| |
| 2026-06-20 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.cc (scalar_chain::convert_op): Check |
| if the (DImode) SUBREG being converted by STV has an original mode |
| that's tieable to the vector mode (V2DImode), if not (e.g. DDmode) |
| emit this "conversion" as a separate move for reload to handle. |
| |
| 2026-06-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_init_builtins): Use XALLOCAVEC |
| instead of alloca to locally alloc char[]. |
| * config/avr/avr-c.cc (avr_cpu_cpp_builtins): Same. |
| * config/avr/avr-log.cc (avr_log_set_avr_log): Same. |
| |
| 2026-06-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125857 |
| * ipa-prop.cc (ipa_record_return_value_range_1): Don't record |
| pranges which have non ipa-invariants in it. |
| |
| 2026-06-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_vector_costs::count_ops): Treat vec_deconstruct in the |
| same way as vec_construct. |
| |
| 2026-06-19 Peter Bergner <bergner@tenstorrent.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE)<tt-ascalon-d8>: Rename from |
| this... |
| (RISCV_TUNE)<tt-ascalon-x>: ...to this. |
| (RISCV_CORE)<tt-ascalon-d8>: Likewise. |
| (RISCV_CORE)<tt-ascalon-x>: Likewise. |
| (RISCV_CORE_ALIAS): Add tt-ascalon-d8 alias for tt-ascalon-x. |
| * doc/riscv-mcpu.texi: Document the name change. |
| * doc/riscv-mtune.texi: Likewise. |
| |
| 2026-06-19 Peter Bergner <bergner@tenstorrent.com> |
| |
| * common/config/riscv/riscv-common.cc (struct riscv_cpu_alias_info): |
| New struct. |
| (riscv_cpu_alias_table): New. |
| (riscv_find_cpu): Add support for cpu alias names. |
| (riscv_get_valid_option_values): Likewise. |
| Add an early loop exit if we found a duplicate name. |
| * config/riscv/riscv-cores.def (RISCV_CORE_ALIAS): New macro. |
| |
| 2026-06-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122193 |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): Support non-zero |
| offsets. |
| |
| 2026-06-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (is_factor_profitable): Change arg_op |
| to operands and opcount. |
| (factor_out_conditional_operation): Update call to |
| is_factor_profitable. |
| (factor_out_conditional_load): Support when merge has |
| a virtual phi. The load's vuse needs to be the arguments |
| to the virtual phi. Call is_factor_profitable on the new phi |
| arguments. Update the vuse on the new load to the virtual phi. |
| |
| 2026-06-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/125557 |
| * tree-ssa-phiopt.cc (factor_out_conditional_load): New function. |
| (factor_out_all): Call factor_out_conditional_load. |
| |
| 2026-06-19 Xin Wang <yw987194828@gmail.com> |
| |
| * tree-ssa-loop-im.cc (mem_ref_hasher::equal): Refactor |
| for clarity. |
| |
| 2026-06-19 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * doc/extend.texi: Move @anchor-s referring to tops of nodes |
| after their corresponding @node lines. |
| * doc/invoke.texi: Ditto. |
| |
| 2026-06-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * acinclude.m4 (gcc_GAS_FLAGS): Set to --32 for abi32 targets. |
| * configure.ac (TLS support): Use 32-bit sequence for abi32 targets. |
| * configure: Regenerate. |
| |
| 2026-06-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-nested.cc (lookup_field_for_decl): In the non-pointer case, |
| clear DECL_NONADDRESSABLE_P if the DECL is of an aggregate type. |
| |
| 2026-06-19 Kael Andrew Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125641 |
| PR tree-optimization/125641 |
| * match.pd: Add bit_ior/bit_and {bit_not} rshift to min/max. |
| |
| 2026-06-19 Léo Hardt <leom.hardt@inf.ufrgs.br> |
| |
| * ddg.h (GCC_DDG_H): Removed orphaned comment from 60393bbc |
| * sel-sched-ir.h (GCC_SEL_SCHED_IR_H): Removed orphaned comment from c7131fb |
| |
| 2026-06-18 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| PR target/125405 |
| * match.pd: New pattern added. |
| |
| 2026-06-18 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.md (splitter for equality test): New splitter. |
| |
| 2026-06-18 Paul Iannetta <piannetta@kalrayinc.com> |
| Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * tree.h (ENCODE_QUAL_ADDR_SPACE): Add missing parentheses. |
| |
| 2026-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (prange::intersect): Points-to and away results |
| in undefined. |
| |
| 2026-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.h (prange::pt_invariant_p): Return true or false. |
| (prange::pt_invariant_away_p): Likewise. |
| |
| 2026-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.h (prange::zero_p): Assert that is zero_p is true, |
| points_to is unknown. |
| |
| 2026-06-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR tree-optimization/125872 |
| * gimple-ssa-backprop.cc (backprop::execute): Don't try to delete |
| default definitions. |
| |
| 2026-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove |
| extranous logical not from expression. |
| |
| 2026-06-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125854 |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Check if the |
| range_query matches the current one before invoking fold. |
| |
| 2026-06-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/124128 |
| * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Move the check if |
| the final type conversion needs to happen before the conversion. |
| |
| 2026-06-18 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Use vector construction scaling also for mult-lane |
| VMAT_STRIDED_SLP but use vector composition type recorded |
| to avoid excessive over-costing. |
| |
| 2026-06-18 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Expect vec_deconstruct where formerly handling vec_to_scalar |
| for emulated gather/scatter, elementwise and strided accesses. |
| |
| 2026-06-18 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_cd_cost): New function, |
| enhanced and split out from ... |
| (ix86_default_vector_cost): ... here. |
| |
| 2026-06-18 Richard Biener <rguenther@suse.de> |
| |
| * target.h (vect_cost_for_stmt::vec_deconstruct): New kind. |
| * tree-vect-loop.cc (vect_model_reduction_cost): Use it. |
| * tree-vect-stmts.cc (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * tree-vectorizer.cc (dump_stmt_cost): Handle vec_deconstruct. |
| * config/aarch64/aarch64.cc (aarch64_builtin_vectorization_cost): |
| Handle vec_deconstruct like vec_construct. |
| * config/i386/i386.cc (ix86_default_vector_cost): Likewise. |
| * config/arm/arm.cc (arm_builtin_vectorization_cost): Likewise. |
| * config/loongarch/loongarch.cc (loongarch_builtin_vectorization_cost): |
| Likewise. |
| * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): |
| Likewise. |
| * config/rs6000/rs6000.cc (rs6000_builtin_vectorization_cost): |
| Likewise. |
| * config/s390/s390.cc (s390_builtin_vectorization_cost): Likewise. |
| * targhooks.cc (default_builtin_vectorization_cost): Likewise. |
| |
| 2026-06-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_load_store_data::ls_eltype): New field. |
| * tree-vect-stmts.cc (vectorizable_load): Record ltype |
| as ls_eltype for VMAT_STRIDED_SLP. |
| (vectorizable_store): Likewise. |
| |
| 2026-06-17 James K. Lowden <jklowden@cobolworx.com> |
| |
| * doc/install.texi: COBOL requires Bison 3.8.2. |
| |
| 2026-06-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125804 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Have |
| LOOP_VINFO_EARLY_BREAKS_VECT_PEELED require epilog. |
| |
| 2026-06-17 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| PR fortran/125717 |
| * lto-streamer-in.cc (input_cfg): Stream loop->can_be_parallel in. |
| * lto-streamer-out.cc (output_cfg): Stream loop->can_be_parallel out. |
| |
| 2026-06-17 Zhongjie Guo <guozhongjie@hygon.cn> |
| |
| * config/i386/x86-tune-costs.h (c86_4g_m7_cost): Increase |
| 512-bit load/store and unaligned load/store costs. |
| |
| 2026-06-17 Xin Liu <liulxx@hygon.cn> |
| |
| * config/i386/c86-4g-m7.md (c86_4g_m7_imov_xchg): Adjust |
| reservation units. |
| (c86_4g_m7_imov_xchg_load): Ditto. |
| (c86_4g_m7_call): Ditto. |
| (c86_4g_m7_branch): Ditto. |
| (c86_4g_m7_branch_load): Ditto. |
| (c86_4g_m7_fp_spc_direct): Add missing store unit. |
| (c86_4g_m7_sse_pinsr_reg): Adjust reservation units. |
| (c86_4g_m7_avx512_insertx_ymm): Ditto. |
| (c86_4g_m7_avx512_insertx_ymem): Ditto. |
| (c86_4g_m7_avx512_insertx_zxmm): Ditto. |
| (c86_4g_m7_avx512_insertx_zxmem): Ditto. |
| (c86_4g_m7_avx512_abs_load): Add missing store unit. |
| (c86_4g_m7_avx_sign): Use combined FPU reservation. |
| (c86_4g_m7_avx_sign_load): Ditto. |
| (c86_4g_m7_avx_aes): Ditto. |
| (c86_4g_m7_avx_aes_load): Ditto. |
| (c86_4g_m7_extr_load): Rename to ... |
| (c86_4g_m7_extr_store): ... this and restrict to store memory. |
| (c86_4g_m7_avx_imul): Use combined FPU reservation. |
| (c86_4g_m7_avx_imul_mem): Ditto. |
| (c86_4g_m7_avx512_vpmovx_y_load): Add missing store unit. |
| (c86_4g_m7_avx_vpmovx_xx_load): Ditto. |
| (c86_4g_m7_avx512_sseadd_maxmin_xy): Rename to ... |
| (c86_4g_m7_avx512_sseadd_maxmin): ... this and simplify |
| memory attribute check. |
| (c86_4g_m7_avx512_sseadd_maxmin_xy_load): Rename to ... |
| (c86_4g_m7_avx512_sseadd_maxmin_load): ... this and simplify |
| memory attribute check. |
| (c86_4g_m7_avx512_sseadd_xy): Rename to ... |
| (c86_4g_m7_avx512_sseadd): ... this. |
| (c86_4g_m7_avx512_sseadd_xy_load): Rename to ... |
| (c86_4g_m7_avx512_sseadd_load): ... this. |
| (c86_4g_m7_sse_sseiadd_sadbw): Use combined FPU reservation. |
| (c86_4g_m7_sse_sseiadd_sadbw_mem): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp_z): Adjust reservation units. |
| (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_test_load): Ditto. |
| (c86_4g_m7_avx512_mskmov_k_m): Adjust latency. |
| |
| 2026-06-17 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/125478 |
| * config/riscv/vector.md: Set widen-alu mode_idx to 3. |
| |
| 2026-06-17 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| Revert: |
| 2026-06-15 Jim Tsung-Chun Lin <jim@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_select_multilib): |
| Don't set riscv_no_matched_multi_lib here; let the caller own |
| the flag. |
| (riscv_compute_multilib): Drop the early return that accepted |
| the generic-matched multilib_dir; always run the smart matcher |
| and set riscv_no_matched_multi_lib when it finds no candidate. |
| |
| 2026-06-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::set_global_range): Nonzero |
| pointer ranges are no longer invariant. |
| |
| 2026-06-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in (OBJS): Remove value-pointer-equiv.o. |
| * tree-vrp.cc (rvrp_folder::m_pta): Delete member. |
| (rvrp_folder::rvrp_folder): Remove m_pta allocation. |
| (rvrp_folder::~rvrp_folder): Delete. |
| (rvrp_folder::pre_fold_bb): Remove m_pta reference. |
| (rvrp_folder::post_fold_bb): Delete. |
| (rvrp_folder::pre_fold_stmt): Remove m_pta reference. |
| * value-pointer-equiv.cc: Delete. |
| * value-pointer-equiv.h: Delete. |
| |
| 2026-06-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-vrp.cc (rvrp_folder::value_of_expr): Use prange PTA info. |
| (value_on_edge): Likewise. |
| |
| 2026-06-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (x_fold_context): New. |
| (pta_valueize): New. |
| (fold_using_range::fold_stmt): Set PTA fields. |
| (fold_using_range::range_of_phi): Ditto. |
| * ipa-prop.cc (ipa_vr::ipa_vr): Allocate unshared range. |
| * range-op-ptr.cc (pointer_plus_operator::fold_range): Handle PTA. |
| (pointer_plus_operator::op2_range): Ditto. |
| (operator_pointer_diff::fold_range): Ditto. |
| (operator_cast::fold_range): Ditto. |
| (operator_cast::lhs_op1_relation): Ditto. |
| (operator_equal::fold_range): Ditto. |
| (operator_not_equal::fold_range): Ditto. |
| * value-query.cc (range_query::get_tree_range): Ditto. |
| * value-range-pretty-print.cc (vrange_printer::print_pt): New. |
| (vrange_printer::visit): Add print support. |
| * value-range-pretty-print.h (vrange_printer::print_pt): New prototype. |
| * value-range-storage.cc (vrange_allocator::clone): Allow unshared |
| expression allocation. |
| (vrange_storage::alloc): Likewise. |
| (prange_storage::alloc): Likewise. |
| (prange_storage::prange_format): Copy PTA. |
| (prange_storage::set_prange): Ditto. |
| (prange_storage::get_prange): Ditto. |
| (prange_storage::equal_p): Compare points-to data. |
| (ggc_alloc_vrange_storage): Allow unshared expression. |
| * value-range-storage.h (clone): Adjust param list. |
| (prange_storage::m_pt, m_points_to_p): New. |
| * value-range.cc (inchash::add_vrange): Add points-to to hash value. |
| (prange::set_pt): New. |
| (prange::pt_base): New. |
| (prange::pt_offset): New. |
| (prange::pt_size): New. |
| (prange::set): Initialize PTA field. |
| (prange::union_): Handle PTA cases. |
| (prange::intersect): Ditto. |
| (prange::operator=): Ditto. |
| (prange::operator==): Ditto. |
| (prange::invert): Handle PTA cases. |
| (prange::verify_range): Ditto. |
| * value-range.h (set_pt, set_pt_unknown, pt_unknown_p, |
| pt_invariant, pt_invariant_away, pt_invariant_p, pt_invariant_away_p, |
| pt_invert, pt_inverted_p, pt_base, pt_offset, pt_size, |
| pt_equal_p): New prange prototypes. |
| (prange::m_pt, prange::m_points_to_p): New members. |
| (prange::set_undefined): Clear PTA fields. |
| (prange::set_varying): Ditto. |
| (prange::set_nonzero): Ditto. |
| (prange::set_zero): Ditto. |
| (prange::zero_p): Check PTA fields. |
| (varying_compatible_p): Ditto. |
| (prange::set_pt): New. |
| (prange::set_pt_unknown): New. |
| (prange::pt_unknown_p): New. |
| (prange::pt_equal_p): New prange prototypes. |
| (prange::pt_inverted_p): New. |
| (prange::pt_invert): New. |
| (prange::pt_invariant): New. |
| (prange::pt_invariant_away): New. |
| (prange::pt_invariant_p): New. |
| (prange::pt_invariant_away_p): New. |
| |
| 2026-06-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR c/125226 |
| * targhooks.cc (default_stack_protect_guard): If UINTPTR_TYPE |
| isn't NULL, call unsigned_integer_tree_node_for_type with |
| UINTPTR_TYPE to get unsigned integer type for uintptr_t. |
| * tree.cc (unsigned_integer_tree_node_for_type): New function. |
| (build_common_tree_nodes): Call unsigned_integer_tree_node with |
| SIZE_TYPE to get unsigned integer type for size_t. |
| * tree.h (unsigned_integer_tree_node_for_type): New prototype. |
| |
| 2026-06-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi (-std=c++2d, -std=c++29, -std=gnu++2d, |
| -std=gnu++29): Document. |
| (-std=c++2c, -std=c++26, -std=gnu++2c, -std=gnu++26): Tweak so that |
| 26 comes first and is meant as the supported option. |
| * doc/cpp.texi: Adjust expected __cplusplus value for -std=c++26, |
| document value for -std=c++29. |
| * dwarf2out.cc (highest_c_language): Handle C++29. |
| (gen_compile_unit_die): Likewise. Adjust lversion for C++26. |
| |
| 2026-06-16 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR tree-optimization/125516 |
| * tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Set |
| supported_offset_vectype. |
| * tree-vect-stmts.cc (vectorizable_store): Skip nop conversions |
| when costing scatters. |
| (vectorizable_load): Ditto for gathers. |
| |
| 2026-06-16 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * tree-ssa-loop-niter.cc (determine_value_range): Query ranger |
| for integral expressions, not only SSA_NAMEs. Query ranges on the |
| loop preheader edge. |
| |
| 2026-06-16 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * tree-vect-data-refs.cc (vect_slp_analyze_data_ref_dependence): |
| Return a three-way tree result (chrec_known when independent, |
| chrec_dont_know when the affine test cannot analyze the pair, the |
| dependence otherwise) instead of a bool. |
| (vect_slp_analyze_store_dependences): Resort to the alias oracle on |
| an unknown dependence as well as on a missing data reference; a |
| store is being moved so do not use TBAA. |
| (vect_slp_analyze_load_dependences): Likewise on the load-hoist |
| paths, using TBAA as a load is being hoisted; also record that the |
| ao_ref has been initialized in check_hoist. |
| |
| 2026-06-16 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/125670 |
| * config/riscv/autovec-opt.md: Use avl_type operand number. |
| |
| 2026-06-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125730 |
| * tree-ssa-loop-ivopts.cc (alloc_iv): Do not convert pointer |
| IVs to unsigned before canonicalizing. |
| |
| 2026-06-16 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.cc (fold_plusminus_mult_expr): Use |
| wide_int for the case of two INTEGER_CST multiplicands. |
| |
| 2026-06-16 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/125794 |
| * config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Do not fall |
| through to the replicating SVE immediate forms for a 128-bit |
| Advanced SIMD constant whose high 64 bits are zero (output_width |
| != 0). |
| |
| 2026-06-16 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| PR tree-optimization/59429 |
| * match.pd: New match patterns to recognize spaceship variants. |
| * tree-ssa-math-opts.cc (gimple_spaceship): Match function declaration. |
| (match_spaceship): New function to recognize spaceship given phi node. |
| (math_opts_dom_walker::after_dom_children): Add match_spaceship check. |
| |
| 2026-06-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125614 |
| * config/i386/i386-features.cc (replace_vector_const): Replace |
| gen_rtx_SUBREG with gen_lowpart. |
| |
| 2026-06-15 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386.cc (ix86_insn_cost): Add a suitable penalty |
| for USE of a MEM in a PARALLEL (for *<absneg>[sd]f2_1 splitter). |
| |
| 2026-06-15 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/125795 |
| * config/aarch64/aarch64-early-ra.cc (early_ra::allocate_colors): |
| Compute the allocated-FPR mask as |
| ((1ULL << color->group->size) - 1) << best. |
| |
| 2026-06-15 Kael Andrew Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125737 |
| PR tree-optimization/125737 |
| * match.pd: Use tree_expr_nonnegative_p for X % Y < Y to true. |
| |
| 2026-06-15 Kael Andrew Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125756 |
| * match.pd: Use tree_expr_nonnegative_p for X < (typeof X)(X != 0) to false. |
| |
| 2026-06-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (factor_out_all): New function. |
| (pass_phiopt::execute): Call factor_out_all isntead |
| of factor_out_conditional_operation and |
| cond_if_else_store_replacement_limited. |
| |
| 2026-06-15 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/123754 |
| * expmed.cc (store_integral_bit_field): When the SUBREG |
| narrowing fails, defer to store_split_bit_field instead of |
| asserting. |
| |
| 2026-06-15 Jim Tsung-Chun Lin <jim@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_select_multilib): |
| Don't set riscv_no_matched_multi_lib here; let the caller own |
| the flag. |
| (riscv_compute_multilib): Drop the early return that accepted |
| the generic-matched multilib_dir; always run the smart matcher |
| and set riscv_no_matched_multi_lib when it finds no candidate. |
| |
| 2026-06-15 Filip Kastl <fkastl@suse.cz> |
| |
| PR sanitizer/124206 |
| * gcc.cc (driver::global_initializations): Ask for 128MB stack |
| instead of just 64MB when __SANITIZE_ADDRESS__ is defined. |
| * toplev.cc (toplev::main): Ditto. |
| |
| 2026-06-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-reassoc.cc (ovce_extract_ops): Fixup |
| false value matching for the inverted comparison case. |
| |
| 2026-06-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125786 |
| * tree-ssa-reassoc.cc (optimize_vec_cond_expr): Create a new |
| stmt instead of rewriting an existing possibly multi-use one. |
| |
| 2026-06-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (avr_out_delay_loop): New proto. |
| * config/avr/avr.cc (avr_out_delay_loop): New function. |
| (avr_adjust_insn_length) [ADJUST_LEN_DELAY_LOOP]: Handle case. |
| (avr_expand_delay_cycles): Overhaul. Allow loop counts of |
| zero; they represent a power of 2. |
| * config/avr/avr.md (adjust_len) [delay_loop]: Add. |
| (*delay_cycles_1): Use avr_out_delay_loop for asm out. |
| (*delay_cycles_4): Same. |
| (*delay_cycles_3): Same. |
| (*delay_cycles_2): Same. Relax constraints to "d". |
| Use two QImode scratch regs instead of one HImode one. |
| |
| 2026-06-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125790 |
| * match.pd (`(~x)>>x`): Reject truncation of shifter. |
| |
| 2026-06-15 Monk Chiang <62004175+monkchiang@users.noreply.github.com> |
| |
| * config/riscv/riscv-zicfilp.cc (rest_of_insert_landing_pad): |
| Remove gen_lpad_align before non-local goto labels; LABEL_ALIGN |
| now handles their alignment. Simplify gpr_save handling: the |
| pattern now outputs the full CFI sequence itself. |
| * config/riscv/riscv.cc (riscv_output_mi_thunk): Add |
| gen_lpad_align before entry lpad. |
| * config/riscv/riscv.h (LABEL_ALIGN): New macro; ensures 4-byte |
| alignment for Zicfilp non-local goto target labels. |
| * config/riscv/riscv.md (gpr_save): When is_zicfilp_p, output |
| .p2align 2, .option push/norelax/norvc, call, .option pop, lpad 0. |
| |
| 2026-06-15 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_call_needs_lpad_p): Declare. |
| * config/riscv/riscv.cc (riscv_gnu_attributes): Register new |
| indirect_return attribute for function declarations. |
| (riscv_call_needs_lpad_p): New function. |
| * config/riscv/riscv.md (call_internal_cfi): New insn pattern with |
| length attribute. |
| (call_value_internal_cfi): Likewise for call-with-return-value, |
| with comment and length attribute. |
| (define_expand "call"): Emit call_internal_cfi when |
| riscv_call_needs_lpad_p returns true. |
| (define_expand "call_value"): Likewise. |
| |
| 2026-06-14 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k.md (cbranchsi4): Add clobber clause. |
| |
| 2026-06-14 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k.h (SHIFT_COUNT_TRUNCATED): Define. |
| * config/or1k/or1k.md (rotrsi3): Rename reg_or_u6_operand to |
| reg_or_u5_operand. |
| (<shift_op>si3): Ditto. |
| * config/or1k/predicates.md (reg_or_u6_operand): Remove. |
| (reg_or_u5_operand): New predicate. |
| |
| 2026-06-14 François-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR target/120645 |
| * config/darwin-driver.cc: Account for latest macOS numbering |
| scheme. |
| |
| 2026-06-14 Souradipto Das <souradiptodas6@gmail.com> |
| |
| * match.pd: Add simplification rules for |
| (a == 0) | ((a | b) == 0) -> (a == 0) and |
| (a != 0) & ((a | b) != 0) -> (a != 0). |
| |
| 2026-06-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125774 |
| * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Use |
| relation_swap rather than relation_negate when the operands are exchanged. |
| |
| 2026-06-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125776 |
| * tree-ssa-phiopt.cc (is_factor_profitable): An |
| usage in a debug stmt should be ignored. |
| |
| 2026-06-13 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * gcc.cc (find_a_program): Implement the new behavior described |
| above. |
| (driver::set_up_specs): Initilize variable. It would be nice to |
| have less spooky-action-at-a-distince using C++ features, but I |
| just matched how the corresponding suffix variable worked for |
| now for uniformity. |
| |
| 2026-06-13 John Ericson <git@JohnEricson.me> |
| |
| * gcc.cc (for_each_path): Pass an additional boolean argument to |
| the callback specifying whether the current directly being |
| searched is machine-specific, as described above. |
| (build_search_list): Add unused parameter to lambda match new |
| callback type. |
| (find_a_file): Add unused parameter to lambda match new callback |
| type. |
| (find_a_program): Add unused parameter to lambda match new |
| callback type. |
| (spec_path::operator()): Add unused parameter to match new |
| callback type. |
| |
| 2026-06-13 panciyan@eswincomputing.com <panciyan@eswincomputing.com> |
| |
| * config/riscv/crypto.md (riscv_pack): Change HISI iterator to |
| HX as we must match half a target word for pack. |
| |
| 2026-06-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Configuration): Use AE spelling for "behavior". |
| |
| 2026-06-13 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/125750 |
| * match.pd (mult of a 0/1 value by a negated 0/1 value): New |
| simplification. |
| |
| 2026-06-13 Kael Andrew Alonzo Franco <kaelfandrew@gmail.com> |
| |
| PR tree-optimization/125707 |
| PR tree-optimization/125707 |
| * match.pd: Add (~a) >> a to -1 for signed a. |
| |
| 2026-06-13 Sunil Dora <sunilkumar.dora@windriver.com> |
| |
| PR driver/111527 |
| * defaults.h (COLLECT2_OPTIONS_MAX_LENGTH): New macro. |
| * collect-utils.cc (read_collect_gcc_options): New function. |
| * collect-utils.h (read_collect_gcc_options): Declare. |
| * collect2.cc (main): Use read_collect_gcc_options instead |
| of getenv. |
| * doc/hostconfig.texi (Host Misc): Document |
| COLLECT2_OPTIONS_MAX_LENGTH. |
| * doc/invoke.texi (Environment Variables): Document the |
| @file form of COLLECT_GCC_OPTIONS. |
| * gcc.cc (xsetenv_collect_gcc_options): New function. |
| (set_collect_gcc_options): Use xsetenv_collect_gcc_options. |
| * lto-wrapper.cc (run_gcc): Use read_collect_gcc_options |
| instead of getenv. |
| |
| 2026-06-12 Claudio Bantaloukas <claudio.bantaloukas@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a320): Update core. |
| * config/aarch64/aarch64.cc: Add cortexa320.h. |
| * config/aarch64/tuning_models/cortexa320.h: New file. |
| |
| 2026-06-12 Ramin Moussavi <lordrasmus@gmail.com> |
| |
| * config/microblaze/microblaze.h (DWARF_ALT_FRAME_RETURN_COLUMN): |
| Define. |
| |
| 2026-06-12 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| PR target/101484 |
| * config/gcn/gcn.cc (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Implement. |
| |
| 2026-06-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * lra-constraints.cc (reload_section_anchor_p): New function. |
| (curr_insn_transform): For offsetable MEMs, try reloading the |
| section anchor only. |
| |
| 2026-06-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125597 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Create IFN_VARYING for |
| early break scalar IV. |
| * tree-vect-loop.cc (vect_update_ivs_after_vectorizer_for_early_breaks): |
| Replace the IFN_VARYING with actual value. |
| |
| 2026-06-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125597 |
| (vect_do_peeling): Create IFN_VARYING for masks. |
| * tree-vect-loop-manip.cc (vect_set_loop_condition): Replace the |
| IFN_VARYING. |
| |
| 2026-06-12 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125597 |
| * internal-fn.def (VARYING): New. |
| * doc/ifn.texi: Document it. |
| * internal-fn.cc (expand_VARYING): New. |
| * internal-fn.h (expand_VARYING): New. |
| * tree-cfg.cc (verify_gimple_call): Check for leaked IFN_VARYING. |
| |
| 2026-06-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR rtl-optimization/125173 |
| * ira.cc (combine_and_move_insns): Allow multiple uses within |
| an insn. |
| |
| 2026-06-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR tree-optimization/125557 |
| PR tree-optimization/64700 |
| PR tree-optimization/29144 |
| PR tree-optimization/94274 |
| * tree-if-conv.cc (find_different_opnum): Move to ... |
| * gimple-match-exports.cc (find_different_opnum): Here. |
| * gimple-match.h (find_different_opnum): New decl. |
| * tree-ssa-phiopt.cc (is_factor_profitable): Take |
| gimple_match_op instead of one operand. |
| Rearrange the code to check the lifetime of the operands last. |
| (factor_out_conditional_operation): Handle operands > 1, |
| including operands communitive operands. Add early_p argument |
| for costing. Update call of is_factor_profitable. |
| (pass_phiopt::execute): Pass early_p to |
| factor_out_conditional_operation. |
| * tree.h (int_divide_or_mod_p): New function. |
| |
| 2026-06-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * ira-costs.cc (find_costs_and_classes): Do not honour equivs if |
| they get rejected by LRA anyway. |
| * ira-int.h (CONST_POOL_OK_P): Move CONST_POOL_OK_P here ... |
| * lra-constraints.cc (CONST_POOL_OK_P): from there. |
| |
| 2026-06-11 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * common/config/aarch64/aarch64-common.cc: Make the asm |
| crc bug workaround configurable. |
| |
| 2026-06-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/125751 |
| * config/avr/avr.cc (avr_out_fract): Fix too small sequence |
| lengths in avr_asm_len calls. |
| |
| 2026-06-11 Roman Beliaev <r.beliaev@ispras.ru> |
| |
| * gcov.cc (solve_flow_graph): Fix condition. |
| |
| 2026-06-11 Karl Meakin <karl.meakin@arm.com> |
| |
| * doc/rtl.texi: Replace "fixed-point" with "integral" where |
| appropriate. |
| |
| 2026-06-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125706 |
| * range-op.cc (operator_trunc_mod::wi_fold): Apply fixed |
| quotient refinement. |
| |
| 2026-06-11 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn.h (REG_CLASS_NAMES): Add missing comma. |
| |
| 2026-06-11 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| PR target/113926 |
| * config/aarch64/aarch64.cc (struct simd_immediate_info): Add width |
| field to record AdvSIMD output vector width. |
| (simd_immediate_info::simd_immediate_info): Initialize width to zero |
| in all constructors. |
| (aarch64_simd_valid_imm): Allow 128-bit AdvSIMD MOV immediates with |
| zero high 64 bits to be materialized using 64-bit MOVI. |
| (aarch64_output_simd_imm): Use recorded immediate width when outputting |
| AdvSIMD immediates. |
| |
| 2026-06-11 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR tree-optimization/123343 |
| * tree-vect-slp.cc (vect_analyze_slp_reduction_group): Return |
| false for group_size <= 1 at entry. |
| (vect_analyze_slp_reductions): Add loop exit check for |
| group_size <= 1. |
| |
| 2026-06-11 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR testsuite/113276 |
| * doc/sourcebuild.texi (arm_mixed_fp): Document. |
| |
| 2026-06-11 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * common/config/i386/i386-cpuinfo.h (enum feature_priority): |
| Add P_AVX10_2, P_APX_F, P_PROC_AVX10_2. |
| * common/config/i386/i386-isas.h: Set P_AVX10_2 for avx10.2 |
| and P_APX_F for apxf. |
| * common/config/i386/i386-common.cc (processor_alias_table): |
| Use P_PROC_AVX10_2 for diamondrapids and novalake. |
| |
| 2026-06-11 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| |
| PR tree-optimization/125567 |
| * tree-vect-slp.cc (least_upthread_swappable_op_distance): New. |
| (vect_build_slp_tree_2): Compute swap checks before building operand |
| zero. Skip external fallback while swap retry is possible. Reuse the |
| swap checks in the retry path. |
| |
| 2026-06-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range-storage.cc (irange_storage::irange_storage): |
| Explicitly initialize vrange_storage. |
| (prange_storage::prange_storage): Likewise. |
| * value-range-storage.h (vrange_storage): Add GTY marker and |
| discriminator field. |
| (irange_storage): Add GTY marker. |
| (prange_storage): Add GTY marker and friend GTY functions. |
| (frange_storage): Add GTY marker and explcitly initialize |
| vrange_storage. |
| |
| 2026-06-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range-storage.cc (prange_storage::equal_p): Compare just |
| the required fields. |
| |
| 2026-06-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range-storage.cc (prange_storage::alloc): Use new |
| prange_format function. |
| (prange_storage::prange_storage): Likewise. |
| (prange_storage::prange_format): Rename from prange_format |
| constructor and rework. |
| (prange_storage::set_prange): Use prange_format function. |
| (prange_storage::fits_p): Likewise. |
| * value-range-storage.h (enum prange_kind): Move out of |
| prange_storage class. |
| (PRANGE_STORAGE_NINTS): Likewise. |
| (class prange_format): remove. |
| (m_trailing_ints): Use PRANGE_STORAGE_NINTS. |
| |
| 2026-06-10 tobby.li <tobby.li@armchina.com> |
| |
| * config/arm/arm-cpus.in (cortex-m52): Remove quirk_vlldm. |
| * doc/invoke.texi: Remove cortex-m52 from the list of CPUs that |
| enable -mfix-cmse-cve-2021-35465 by default. Fix typo in CVE |
| number (CVE-2021-365465 -> CVE-2021-35465). |
| |
| 2026-06-10 Chung-Lin Tang <cltang@baylibre.com> |
| |
| PR fortran/122910 |
| * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA_PRIVATIZE): Define. |
| * langhooks.h (struct lang_hooks_for_decls): Define |
| omp_array_data_privatize hook. |
| * omp-low.cc (scan_sharing_clauses): Add new calls to |
| lang_hooks.decls.omp_array_data_privatize, |
| (lower_omp_target): Likewise. |
| |
| 2026-06-10 tobby.li <tobby.li@armchina.com> |
| |
| * config/arm/arm-cpus.in (star-mc3): New CPU. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2026-06-10 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR ipa/125699 |
| * ipa-param-manipulation.cc (ipa_param_body_adjustments::prepare_debug_expressions): Fix |
| lifetime issue with m_dead_ssa_debug_equiv usage. |
| |
| 2026-06-10 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/zicond.md (combined sCC splitters): Avoid using |
| PUT_MODE to change existing RTL. Instead just generate a new node. |
| |
| 2026-06-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125686 |
| * tree-vect-patterns.cc (synth_lshift_by_additions): Specify |
| pattern vector type. |
| (apply_binop_and_append_stmt): Likewise. |
| (vect_synth_mult_by_constant): Adjust. |
| |
| 2026-06-09 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc: Fix typos in comments. |
| * config/avr/avr-c.cc: Same. |
| * config/avr/avr-passes.cc: Same. |
| * config/avr/avr-passes-fuse-move.h: Same. |
| |
| 2026-06-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/125636 |
| * config/i386/i386.md (extendqihi2): Use movsbl instead of movsbw. |
| Adjust the destination operand to use %k0 and update the mode |
| attribute accordingly. |
| |
| 2026-06-09 Ciprian Arbone <Ciprian.Arbone@microchip.com> |
| Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> |
| |
| PR target/124077 |
| * config/arm/arm.cc (thumb1_final_prescan_insn): Also skip |
| condition code update for thumb1_cbz instructions. |
| * config/arm/thumb1.md (thumb1_cbz): Use const0_rtx as the |
| recorded cc_op1 instead of operands[2]. |
| |
| 2026-06-09 Lino Hsing-Yu Peng <linopeng@andestech.com> |
| |
| * config/riscv/riscv-protos.h (enum altfmt_type): New. |
| * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): Pass |
| ALTFMT_NONE to gen_vsetvl. |
| (gen_no_side_effects_vsetvl_rtx): Pass ALTFMT_NONE to |
| gen_vsetvl_no_side_effects. |
| * config/riscv/riscv-vector-builtins-bases.cc: Include insn-attr.h. |
| (vsetvl::expand): Pass ALTFMT_NONE to gen_vsetvl_no_side_effects. |
| * config/riscv/riscv-vsetvl.cc (altfmt_to_str): New function. |
| (get_altfmt): New function. |
| (demand_flags): Add DEMAND_ALTFMT_P. |
| (altfmt_demand_type): New enum. |
| (vsetvl_info): Track altfmt. |
| (demand_system): Add altfmt compatibility, availability, and merge handling. |
| * config/riscv/riscv-vsetvl.def: Add altfmt rules. |
| * config/riscv/vector.md (altfmt): New attribute, numeric with |
| INVALID_ATTRIBUTE default. |
| (@vsetvl<mode>, vsetvl_vtype_change_only, |
| @vsetvl_discard_result<mode>, @vsetvl<mode>_no_side_effects, |
| *vsetvldi_no_side_effects_si_extend): Add altfmt operand. |
| |
| 2026-06-09 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: Fix typos in comments. |
| * config/avr/avr-fixed.md: Same. |
| * config/avr/avr-passes.cc: Same |
| * config/avr/avr-passes-fuse-move.h: Same. |
| |
| 2026-06-09 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Remove zeroing movprfx of merging MOV |
| |
| 2026-06-09 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR target/125550 |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_combine_internal<mode>): Use zip1 instead of uzp1 |
| to concatenate values residing in SIMD registers. |
| (*aarch64_combine_internal_be<mode>): Likewise. |
| |
| 2026-06-09 JRobinNTA <johnrobin044@gmail.com> |
| |
| PR target/125395 |
| * config/riscv/thead.cc (th_asm_output_opcode): Add VFCVT |
| and VFWCVT blocks. Add offset logic for static rounding suffixes. |
| |
| 2026-06-09 Alex Coplan <alex.coplan@arm.com> |
| |
| PR middle-end/125621 |
| * expmed.cc (make_tree): Fix CONST_POLY_INT case to pass type |
| instead of t, move it to its own switch case. |
| |
| 2026-06-09 Monk Chiang <monk.chiang@sifive.com> |
| "Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_zero_offset_address_bypass_p): |
| New function. |
| * config/riscv/riscv.cc (riscv_zero_offset_address_bypass_p): New |
| function. |
| * config/riscv/sifive-7.md: Add bypass definition. |
| |
| 2026-06-09 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv.cc (riscv_trampoline_init): Remove redundant |
| LUI instruction. |
| |
| 2026-06-09 Martin Jambor <mjambor@suse.cz> |
| |
| * config/pdp11/pdp11.cc (pdp11_conditional_register_usage): Change i |
| from int to unsigned int. |
| |
| 2026-06-09 Xi Ruoyao <xry111@xry111.site> |
| |
| PR rtl-optimization/125609 |
| PR middle-end/122992 |
| * hard-reg-set.h |
| (build_error_on_rvalue): New function. |
| (EXECUTE_IF_SET_IN_HARD_REG_SET): Call the function above. |
| |
| 2026-06-09 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| * config/rs6000/amo.h (_AMO_LD): Add _AMO_LD_CS_EQ enumerator, gated on |
| _ARCH_FUTURE. |
| (amo_lwat_cas_eq, amo_lwat_scas_eq, amo_ldat_cas_eq, |
| amo_ldat_scas_eq): New compare-and-swap equal helper functions. |
| (_AMO_ERR_CMPSWP): New macro for error-attribute stubs on non-Future |
| targets. |
| * doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document |
| new functions. |
| |
| 2026-06-08 Sam James <sam@gentoo.org> |
| |
| * doc/tm.texi: Regenerate. |
| |
| 2026-06-08 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/cpp.texi: Spell "command-line option" with a dash. |
| (Binary Resource Inclusion): Ditto. |
| * doc/fragments.texi (Target Fragment): Ditto. |
| * doc/gcc.texi: Ditto. |
| (Indices): Ditto. |
| * doc/gccint.texi: Ditto. |
| (Top): Ditto. |
| (Option Index): Ditto. |
| * doc/gcov.texi (Invoking Gcov): Ditto. And fix grammar. |
| * doc/gm2.texi (Compiler options): Ditto. |
| (Extensions): Ditto. |
| (The PIM system module): Ditto. |
| (The ISO system module): Ditto. |
| * doc/invoke.texi (Debugging Options): Ditto. |
| (AVR Options): Ditto. |
| * doc/lto.texi (LTO object file layout): Ditto. |
| (WHOPR): Ditto. |
| * doc/md.texi (Machine Constraints): Ditto. |
| * doc/objc.texi (Constant string objects): Ditto. And fix grammar. |
| (Exceptions): Ditto. |
| (Synchronization): Ditto. |
| * doc/tm.texi.in: Ditto. And standardize on "option" over |
| "flag". |
| (strategy): Ditto. And standardize on "option" over "switch" |
| and fix grammar. |
| * target.def: Ditto. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-06-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): |
| Add AARCH64_PREFETCH_PLD_RANGE and AARCH64_PREFETCH_PLDX_RANGE. |
| (aarch64_init_prefetch_builtins): Add initialization of |
| __pld_range and __pldx_range. |
| (require_const_argument): Update to return the minval if value |
| is out of range. |
| (aarch64_expand_prefetch_range_builtin): New function. |
| (aarch64_general_expand_builtin): Add support for |
| AARCH64_PREFETCH_PLD_RANGE and AARCH64_PREFETCH_PLDX_RANGE. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add |
| __ARM_PREFETCH_RANGE macro. |
| * config/aarch64/aarch64.md (unspec): Add UNSPEC_PLDX_RANGE and |
| UNSPEC_PLD_RANGE |
| (aarch64_rprfm): New instruction. |
| |
| 2026-06-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_FPRCVT): New macro definition. |
| * config/aarch64/aarch64.md (arches): Add fprcvt. |
| (arch_enabled): Add fprcvt. |
| (l<fcvt_pattern><su_optab><GPF_F16:mode><GPI:mode>2): Add |
| FEAT_FPRCVT variant. |
| (<optab>_trunchf<GPI:mode>2): Likewise. |
| (<optab>_trunc<fcvt_change_mode><GPI:mode>2): Likewise. |
| (fix_to_zero_extend<mode>di2): Likewise. |
| (<optab><fcvt_iesize><GPF:mode>2): Likewise. |
| (define_insn "aarch64_fp16_<optab><mode>hf2): Likewise. |
| * config/aarch64/iterators.md (fpw): Add SF and DF variants. |
| |
| 2026-06-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: (lround): Add new |
| forms for new conversions. |
| (lroundu): Likewise. |
| (lceil): Likewise. |
| (lceilu): Likewise. |
| (lfloor): Likewise. |
| (lflooru): Likewise. |
| (lfrintn): Likewise. |
| (lfrintnu): Likewise. |
| * config/aarch64/arm_neon.h (vcvtd_s32_f64): New intrinsic. |
| (vcvtd_s32_f64): Likewise. |
| (vcvtd_u32_f64): Likewise. |
| (vcvts_s64_f32): Likewise. |
| (vcvts_u64_f32): Likewise. |
| (vcvtad_s32_f64): Likewise. |
| (vcvtad_u32_f64): Likewise. |
| (vcvtas_s64_f32): Likewise. |
| (vcvtas_u64_f32): Likewise. |
| (vcvtmd_s32_f64): Likewise. |
| (vcvtmd_u32_f64): Likewise. |
| (vcvtms_s64_f32): Likewise. |
| (vcvtms_u64_f32): Likewise. |
| (vcvtnd_s32_f64): Likewise. |
| (vcvtnd_u32_f64): Likewise. |
| (vcvtns_s64_f32): Likewise. |
| (vcvtns_u64_f32): Likewise. |
| (vcvtpd_s32_f64): Likewise. |
| (vcvtpd_u32_f64): Likewise. |
| (vcvtps_s64_f32): Likewise. |
| (vcvtps_u64_f32): Likewise. |
| |
| 2026-06-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add |
| __ARM_FEATURE_SSVE_FEXPA. |
| * config/aarch64/aarch64-sve-builtins-base.def (svexpa): Change |
| gating to streaming compatible if AARCH64_FL_SSVE_FEXPA is |
| supported. |
| * config/aarch64/aarch64-sve.md: Update gating to be enabled if |
| TARGET_SSVE_FEXPA. |
| * config/aarch64/aarch64.h (TARGET_SVE_FEXPA): New macro. |
| * config/aarch64/iterators.md (SVE_FP_UNARY_INT): Update FEXPA |
| gating. |
| |
| 2026-06-08 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add |
| __ARM_FEATURE_SSVE_BITPERM. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: |
| Make sve-bitperm intrinsics streaming compatible. |
| * config/aarch64/aarch64-sve2.md: Change gating of sve-bitperm |
| instructions. |
| * config/aarch64/aarch64.h (TARGET_SVE_BITPERM): New macro. |
| (TARGET_SVE2_BITPERM): Removed. |
| |
| 2026-06-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125668 |
| * tree-ssa-forwprop.cc (forward_propagate_addr_expr_1): |
| Preserve alignment of the original access also for propagating |
| into the LHS. |
| |
| 2026-06-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR tree-optimization/125653 |
| * gimple-ssa-backprop.cc (backprop::process_var): Avoid early |
| return for SSA names that occur in abnormal phis. |
| |
| 2026-06-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125652 |
| * tree-chrec.cc (chrec_fold_plus_poly_poly): Avoid UB |
| integer overflow in accumulating CHREC_RIGHT. |
| |
| 2026-06-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125646 |
| * tree-vect-patterns.cc (vect_synth_mult_by_constant): Assign |
| vector type to the pattern def sequence stmts. |
| |
| 2026-06-08 Andreas Schwab <schwab@suse.de> |
| |
| PR rtl-optimization/122992 |
| * config/m68k/m68k.cc (m68k_conditional_register_usage): Fix |
| signedness of register number var. |
| (m68k_zero_call_used_regs): Fix missing declaration. |
| |
| 2026-06-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*aarch64_vec_duplicate_subvector<vconsv><vconq><mode>): Remove |
| <vconq> from name. |
| |
| 2026-06-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_unary_operation_1): |
| Simplify vec_duplicates of vec_duplicates. |
| * config/aarch64/aarch64-sve.md |
| (*aarch64_vec_duplicate_subvector<vconsv><vconq><mode>): Remove |
| nested vec_duplicate. |
| |
| 2026-06-08 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sh/sh.md (bswapsi): Remove can_create_pseudo_p () check. |
| |
| 2026-06-08 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/mips/sync.md (sync_old_<optab><mode>): Fix |
| uninitialized operand use. |
| (sync_new_<optab><mode>): Fix uninitialized operand use, use the |
| same expression for the set source of operand 0 and 1. |
| |
| 2026-06-08 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| * match.pd: ((type) minmax (wide) a, wide (b)): New pattern. |
| |
| 2026-06-07 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/sourcebuild.texi: Document that check-function-bodies |
| automatically adds the check_function_bodies options. |
| |
| 2026-06-07 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125612 |
| * tree-ssa-phiopt.cc (cond_store_replacement): For the case where |
| lhs is "known" to be nontrapping make sure there are no loads in |
| the middle bb. |
| |
| 2026-06-07 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/sh/sh.md (bswapsi2): Move check for can_create_pseudos_p |
| into condition rather than FAILing. |
| |
| 2026-06-07 John Ericson <git@JohnEricson.me> |
| |
| * gcc.cc (find_a_file): Remove mode parameter, because always |
| R_OK. Skip suffix logic, because suffix is always empty in that |
| case. |
| (read_specs): Remove mode from find_a_file call. |
| (find_a_program): Suffix is unconditional, inline mode constant. |
| (end_going_arg): Remove mode from find_a_file call. |
| (find_file): Remove mode from find_a_file call. |
| (driver::set_up_specs): Remove mode from find_a_file call. |
| (include_spec_function): Remove mode from find_a_file call. |
| |
| 2026-06-07 John Ericson <git@JohnEricson.me> |
| |
| * gcc.cc (find_a_program): Inline find_a_file, instead of |
| calling. |
| |
| 2026-06-07 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| Andrew Stubbs <ams@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gimplify.cc (compute_omp_iterator_count): Account for difference |
| in loop boundaries in Fortran. |
| (build_omp_iterator_loop): Change upper boundary condition for |
| Fortran. Insert block statements into innermost loop. |
| (remove_unused_omp_iterator_vars): Copy block subblocks of old |
| iterator to new iterator and remove original. |
| (extract_base_bit_offset): Add iterator argument. Remove iterator |
| variables from base. |
| (omp_accumulate_sibling_list): Add iterator argument to |
| extract_base_bit_offset. |
| * tree-pretty-print.cc (dump_block_node): Ignore BLOCK_SUBBLOCKS |
| containing iterator block statements. |
| |
| 2026-06-06 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * optabs-query.cc (can_open_code_p): Use can_open_code_p rather |
| than can_implement_p when testing for AND and XOR. |
| |
| 2026-06-06 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * optabs-query.cc (can_open_code_p): Handle more bswap cases, |
| incorporating logic from... |
| * gimple-ssa-store-merging.cc (maybe_optimize_vector_constructor) |
| (pass_optimize_bswap::execute) |
| (imm_store_chain_info::try_coalesce_bswap): ...here. Use |
| can_open_code_p instead of direct optab_handler checks. |
| |
| 2026-06-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125611 |
| * config/i386/sse.md (<ssse3_avx2>_pmulhrsw<mode>3, smulhrs<mode>3): |
| Use vector_operand instead of nonimmediate_operand. |
| |
| 2026-06-06 Ramin Moussavi <lordrasmus@gmail.com> |
| |
| * config/csky/csky.h (DWARF_ALT_FRAME_RETURN_COLUMN): Define. |
| |
| 2026-06-05 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gimplify.cc (remove_unused_omp_iterator_vars): Don't warn about |
| possibly-unused iterator variables. Simplify control flow of |
| remaining code. |
| |
| 2026-06-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/125501 |
| * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Abort |
| if there are 2 SSA_NAMES on the branch condition. |
| |
| 2026-06-05 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| PR rtl-optimization/124713 |
| * avoid-store-forwarding.cc (process_store_forwarding): Re-apply |
| SIGN_EXTEND/ZERO_EXTEND after bit insert sequence when the load is |
| not eliminated. |
| |
| 2026-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-store-merging.cc (maybe_optimize_vector_constructor): |
| Also support bswap32 if bswapdi2 expander is present. Add comment |
| about bswap64 support on 32-bit targets with bswapsi2 expander. |
| (pass_optimize_bswap::execute): Likewise. |
| * config/riscv/bitmanip.md (bswapsi2): Change condition to disable |
| the expander on TARGET_64BIT without TARGET_XTHEADBB, never FAIL. |
| |
| 2026-06-05 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Earnshaw <richard.earnshaw@arm.com> |
| |
| PR target/56102 |
| PR middle-end/122871 |
| * config/arm/arm.cc (thumb1_rtx_costs): Provide reasonable costs |
| for PLUS, MINUS, COMPARE, AND, XOR, IOR, NEG, NOT, ASHIFT, |
| ASHIFTRT and ROTATERT for SImode, DImode, HImode and QImode. |
| (thumb1_size_rtx_costs): Likewise. |
| (comp_not_to_clear_mask_str_un): Silence host compiler warning. |
| |
| 2026-06-05 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR target/125538 |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_simd_dup_subvector<vcons><mode>): New insn pattern. |
| (*aarch64_simd_dup_subvectorv2qiqi): Likewise. |
| * config/aarch64/iterators.md (VSDUP): New mode iterator. |
| (VCONS): New mode attribute. |
| (vcons): Likewise. |
| |
| 2026-06-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125602 |
| * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap): |
| Avoid double negation for assumption condition. Compute |
| negated step in niter_type. |
| |
| 2026-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_bswap_bitreverse): |
| Add OBJ argument, use it instead of m_vars[part] if non-NULL. Don't |
| gsi_remove stmt. |
| (bitint_large_huge::lower_call): Adjust caller. |
| (bitint_large_huge::lower_stmt): Handle store of |
| IFN_BSWAP/IFN_BITREVERSE result. |
| (stmt_needs_operand_addr): Return true also for |
| IFN_BSWAP/IFN_BITREVERSE. |
| (build_bitint_stmt_ssa_conflicts): Formatting fix. |
| (gimple_lower_bitint): Allow merging IFN_BSWAP/IFN_BITREVERSE with |
| subsequent non-bitfield store. Allow merging load of |
| IFN_{CLZ,CTZ,CLRSB,FFS,PARITY,POPCOUNT,BSWAP,BITREVERSE} argument |
| with the call. |
| |
| 2026-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/122731 |
| * doc/extend.texi (__builtin_bswapg, __builtin_bitreverseg): Document. |
| * internal-fn.def (DEF_INTERNAL_INTSZ_FN): Define. |
| (DEF_INTERNAL_INTSZ_EXT_FN): Define. |
| (BSWAP): New internal fn. |
| (BITREVERSE): Likewise. |
| * internal-fn.h (expand_BSWAP, expand_BITREVERSE): Declare. |
| * internal-fn.cc (DEF_INTERNAL_INTSZ_EXT_FN): Define. |
| (expand_BSWAP, expand_BITREVERSE): New functions. |
| * builtins.h (fold_build_builtin_bswapg_bitreverseg): Declare. |
| * builtins.cc (fold_build_builtin_bswapg_bitreverseg): New function. |
| * wide-int.h (wi::bswap): Fix up docs that only multiple of 8 bits |
| is required. |
| * gimple-match-exports.cc (build_call_internal): Handle IFN_BSWAP |
| and IFN_BITREVERSE. |
| * gencfn-macros.cc (internal_fn_intsz_names): New variable. |
| (intsz_suffixes): Likewise. |
| (suffix_lists): Add intsz_suffixes. |
| (main): Handle internal_fn_intsz_names. |
| * match.pd (BSWAP, BITREVERSE): Remove. |
| (popcount(bswap(x)) is popcount(x)): Use BSWAP BITREVERSE |
| op lists. |
| * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p): Use |
| CASE_CFN_BSWAP and CASE_CFN_BITREVERSE. |
| (cond_removal_in_builtin_zero_pattern): Likewise. |
| * fold-const-call.cc (fold_const_call_ss): Likewise. |
| * fold-const.cc (tree_call_nonnegative_p): Likewise. |
| * gimple-lower-bitint.cc (struct bitint_large_huge): Declare |
| lower_bswap_bitreverse method. |
| (bitint_large_huge::lower_bswap_bitreverse): New method. |
| (bitint_large_huge::lower_call): Call it. |
| (build_bitint_stmt_ssa_conflicts): Set muldiv_p for IFN_BSWAP |
| and IFN_BITREVERSE. |
| |
| 2026-06-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR tree-optimization/125599 |
| * gimple-ssa-backprop.cc (backprop::execute): Calculate the |
| transitive closure of replacement values. |
| |
| 2026-06-05 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/125609 |
| PR middle-end/122992 |
| * rtl-ssa/insns.cc (function_info::record_call_clobbers): Use a |
| variable to store out the result of abi.full_reg_clobbers(). |
| |
| 2026-06-05 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Specify default |
| cmodel. |
| |
| 2026-06-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.cc (bitmap_elt_clear_from): Make static. Require a |
| list view. |
| (bitmap_tree_listify_from): Delete. |
| (bitmap_list_view): Rewrite to avoid separate vectors. |
| (bitmap_clear): Switch to a list view before calling |
| bitmap_elt_clear_from and restore the original view afterwards. |
| |
| 2026-06-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.cc (bitmap_tree_unlink_element): Optimize the handling |
| of the maximal node. |
| |
| 2026-06-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.cc: Include pretty-print.h and splay-tree-utils.h. |
| (bitmap_splay_tree_accessors): New class. |
| (bitmap_splay_tree): New type. |
| (bitmap_first_set_bit_worker): Use bitmap_splay_tree::min_node |
| for tree views. |
| (bitmap_last_set_bit_worker): Use bitmap_splay_tree::max_node |
| for tree views. |
| |
| 2026-06-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.cc (bitmap_tree_link_element): Require callers to have |
| done a splay operation. Avoid doing another one here. |
| |
| 2026-06-04 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: Support extra options in the |
| multilib config string. |
| * doc/install.texi (--with-multilib-generator): Document the extra |
| options syntax. |
| |
| 2026-06-04 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_supported_std_ext): |
| Move 'v' before 'p' and drop 'n' to match the spec. |
| * config/riscv/arch-canonicalize (CANONICAL_ORDER): Ditto. |
| |
| 2026-06-04 Raphael Zinsly <raphael.zinsly@oss.qualcomm.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/125387 |
| * config/riscv/riscv.cc (riscv_rtx_costs): Recognize and properly cost |
| mulh instructions. |
| |
| 2026-06-04 vekumar <Venkataramanan.Kumar@amd.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH_MEM): Enable |
| for m_ZNVER6. |
| (X86_TUNE_FUSE_ALU_AND_BRANCH_MEM_IMM): Likewise. |
| (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): Likewise. |
| |
| 2026-06-04 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| PR target/106895 |
| * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add |
| RS6000_BTI_INTPTI and RS6000_BTI_UINTPTI. |
| (intPTI_type_internal_node, uintPTI_type_internal_node): New |
| PTImode type macros. |
| * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Register |
| signed and unsigned PTImode internal builtin types. |
| * config/rs6000/sync.md (trunctipti2): New splitter. |
| (extendptiti2): Likewise. |
| (zero_extendptiti2): Likewise. |
| |
| 2026-06-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/125588 |
| * match.pd (`if (cond) (A | CST1) : (A & ~CST1)`): Enable |
| for GIMPLE only. |
| |
| 2026-06-04 Kevin Stefanov <kevinstefanov15@gmail.com> |
| |
| * config/m68k/m68k.cc (m68k_conditional_register_usage): Replace TEST_HARD_REG_BIT |
| with EXECUTE_IF_SET_IN_HARD_REG_SET in applicable loops. |
| (m68k_zero_call_used_regs): Likewise. |
| * config/pdp11/pdp11.cc (pdp11_conditional_register_usage): Likewise. |
| * ira-color.cc (create_new_allocno_hard_regs_node): Replace call to hard_reg_set_size |
| with hard_reg_set_popcount. |
| * ira-int.h (hard_reg_set_size): Remove. |
| * ira-lives.cc (process_bb_node_lives): Replace TEST_HARD_REG_BIT |
| with EXECUTE_IF_SET_IN_HARD_REG_SET in applicable loops. |
| * ira.cc (setup_class_hard_regs): Likewise. |
| (update_equiv_regs_prescan): Likewise. |
| (build_insn_chain): Likewise. |
| (setup_stack_reg_pressure_class): Replace call to hard_reg_set_size |
| with hard_reg_set_popcount. |
| * lra-eliminations.cc (spill_pseudos): Replace TEST_HARD_REG_BIT |
| with EXECUTE_IF_SET_IN_HARD_REG_SET in applicable loops. |
| * optabs.cc (expand_asm_reg_clobber_mem_blockage): Replace |
| TEST_HARD_REG_BIT with EXECUTE_IF_SET_IN_HARD_REG_SET in one instance |
| and with hard_reg_set_popcount in another. |
| * postreload.cc (reload_combine): Replace TEST_HARD_REG_BIT |
| with EXECUTE_IF_SET_IN_HARD_REG_SET in applicable loops. |
| * reginfo.cc (init_reg_sets_1): Likewise. |
| * regrename.cc (init_rename_info): Likewise. |
| * reload1.cc (maybe_fix_stack_asms): Likewise. |
| (update_eliminables_and_spill): Likewise. |
| * rtl-ssa/insns.cc (function_info::record_call_clobbers): Likewise. |
| * sched-deps.cc (sched_analyze_insn): Likewise. |
| * sel-sched-dump.cc (print_hard_reg_set): Likewise. |
| |
| 2026-06-04 Xiaomei Xue <xuexiaomei@hygon.cn> |
| |
| * config/i386/sse.md (define_mode_attr sse2): Add V4SI/V8SI/V16SI/ |
| V8HI/V16HI/V32HI. |
| (<sse2>_movnt<mode>): Change mode iterator from VI8 to VI_AVX_AVX512F. |
| (define_mode_iterator STORENT_MODE): Add V4SI/V8SI/V16SI/V8HI/V16HI/ |
| V32HI/V16QI/V32QI/V64QI. |
| |
| 2026-06-03 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/124405 |
| * tree-ssa-phiopt.cc (cond_store_replacement): Make ASSIGN (the |
| candidate store for cselim) an argument of the function instead. Update |
| legality check due to relaxing the restriction that middle_bb can have |
| only a single statement. |
| (cselim_candidate): New. |
| (pass_cselim::execute): Call cselim_candidate and pass the result to |
| cond_store_replacement. |
| |
| 2026-06-03 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Changed xt-c908 |
| PIPELINE_MODEL and TUNE_INFO |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Add entry |
| for xt-c908 design |
| * config/riscv/riscv.cc: New tune structure |
| for the xt-c908 design. |
| * config/riscv/riscv.md: Add xt-c908 . |
| Include xt-c908.md. |
| * config/riscv/xt-c908.md: New file. |
| |
| 2026-06-03 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| * tree-scalar-evolution.cc |
| (compute_final_value_from_loop_phi_latch): New function. |
| (final_value_replacement_loop): Use it. |
| |
| 2026-06-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/103221 |
| * passes.def (early_optimizations): Move sccopy |
| to after evrp. |
| |
| 2026-06-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * gimple-ssa-sccopy.cc (stmt_may_generate_copy): Remove restriction |
| on the ssa info being different for the "copy". |
| (scc_copy_prop::replace_scc_by_value): Call maybe_duplicate_ssa_info_at_copy |
| when copyproping a ssa name. |
| |
| 2026-06-03 Pan Li <pan2.li@intel.com> |
| |
| * match-sat-alu.pd: Add pattern for unsigned scalar |
| SAT_MUL form 11. |
| |
| 2026-06-03 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.def (CALL_INSN): Add a new integer field. |
| * rtl.h (CALL_INSN_ABI_ID): New macro. |
| * target.def (insn_callee_abi): Delete. |
| * doc/rtl.texi: Document CALL_INSN_ABI_ID. |
| * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): Remove. |
| * doc/tm.texi: Regenerate. |
| * calls.cc: Include regs.h and function-abi.h. |
| (emit_call_1): Initialize CALL_INSN_ABI_ID. |
| * cfgcleanup.cc (old_insns_match_p): Compare CALL_INSN_ABI_IDs. |
| * emit-rtl.cc (try_split): Copy the original insn's CALL_INSN_ABI_ID |
| to the new call. |
| (emit_copy_of_insn_after): Likewise. |
| (make_call_insn_raw): Initialise CALL_INSN_ABI_ID. |
| * function-abi.cc (insn_callee_abi): Remove use of the insn_callee_abi |
| hook and instead use CALL_INSN_ABI_ID. |
| * recog.cc (peep2_attempt): Copy the original insn's CALL_INSN_ABI_ID |
| to the new call. |
| * config/aarch64/aarch64-protos.h (aarch64_gen_callee_cookie): Remove |
| arm_pcs parameter. |
| * config/aarch64/aarch64.cc (aarch64_gen_callee_cookie): Likewise. |
| (aarch64_callee_abi): Delete. |
| (aarch64_insn_callee_abi): Likewise. |
| (aarch64_function_arg): Update call to aarch64_callee_abi. |
| (aarch64_output_mi_thunk): Likewise. Set CALL_INSN_ABI_ID instead. |
| (TARGET_INSN_CALLEE_ABI): Delete. |
| * config/aarch64/aarch64.md (tlsdesc_small_<mode>): Update call |
| to aarch64_callee_abi and set CALL_INSN_ABI_ID instead. |
| * config/i386/i386.cc (ix86_insn_callee_abi): Delete. |
| (ix86_expand_avx_vzeroupper): Set CALL_INSN_ABI_ID. |
| (TARGET_INSN_CALLEE_ABI): Delete. |
| * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls): |
| Remove coding convention from calls to gen_sibcall_internal and |
| gen_sibcall_value_internal. Store the ABI identifier in |
| CALL_INSN_ABI_ID instead. |
| * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise. |
| (riscv_call_tls_get_addr): Likewise, but calling gen_call_value. |
| (riscv_function_arg): Return null for the end marker. |
| (get_riscv_cc, riscv_insn_callee_abi): Delete. |
| (TARGET_INSN_CALLEE_ABI): Delete. |
| * config/riscv/riscv.md (UNSPEC_CALLEE_CC): Delete. |
| (sibcall): Revert to treating operand 2 as a placeholder. |
| Do not pass it to gen_sibcall_internal. |
| (sibcall_value): Likewise operand 3 and gen_sibcall_value_internal. |
| (call): Likewise operand 2 and gen_call_internal. |
| (call_value): Likewise operand 3 and gen_call_value_internal. |
| (sibcall_internal, call_internal): Remove operand 2. |
| (sibcall_value_internal, call_value_internal): Remove operand 3. |
| (untyped_call): Update call to gen_call. |
| |
| 2026-06-03 Alex Coplan <alex.coplan@arm.com> |
| |
| * config/aarch64/constraints.md (Uci): Drop @internal, slightly tweak |
| doc string. |
| (Ucj): Likewise. |
| * doc/md.texi (Machine Constraints): Document Uci and Ucj under AArch64 |
| family. |
| |
| 2026-06-03 Alex Coplan <alex.coplan@arm.com> |
| |
| * doc/ifn.texi (Direct Internal Functions): Flesh out |
| documentation for IFN_MASK_LOAD. |
| * doc/md.texi (Standard Names): Add anchor for maskloadmn so it |
| can be cross-referenced. |
| |
| 2026-06-03 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR tree-optimization/125579 |
| * gimple-ssa-backprop.cc (backprop::execute): Avoid double deletions. |
| |
| 2026-06-03 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125431 |
| * tree-vect-slp-patterns.cc (complex_mul_pattern::matches, |
| complex_fms_pattern::matches): Gate on FP contraction. |
| |
| 2026-06-03 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/125509 |
| * tree-vect-loop-manip.cc (vect_do_peeling): Re-enable dominators |
| update for prolog peeling. |
| |
| 2026-06-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125477 |
| * tree-vect-loop-manip.cc (vect_loop_versioning): Verify we |
| can duplicate an outer loop before considering to version it. |
| |
| 2026-06-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/125507 |
| * gengtype.cc (main): Add tree_code. |
| * tree-core.h (struct tree_base): Remove ENUM_BITFIELD. |
| (struct tree_type_common): Likewise. |
| (struct tree_decl_common): Likewise. |
| (struct tree_decl_with_vis): Likewise. |
| (struct tree_function_decl): Likewise. |
| |
| 2026-06-03 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_sched_reorder): Remove dead |
| return after the early-return guard. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.h (bitmap_element): Fix left/right distinction in comments. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * gimple-ssa-backprop.cc: Update the comment at head of the file. |
| (var_info::new_value, var_info::seq): New member variables. |
| (var_info::var_info): Initialize them. |
| (remove_unused_var): Replace with... |
| (remove_dead_stmt): ...this new function. |
| (note_replacement): Delete. |
| (backprop::prepare_change): Likewise. |
| (backprop::complete_change): Likewise. |
| (backprop::set_new_value): New function. |
| (backprop::subst_operand): Likewise. |
| (backprop::finish_stmt): Likewise. |
| (backprop::optimize_builtin_call): Replace the lhs and info parameters |
| with a var_info parameter. Create a new statement rather than |
| changing the existing one. |
| (backprop::optimize_assign): Likewise. |
| (backprop::optimize_phi): Likewise. |
| (backprop::replace_assign_rhs): Likewise, but replace gassign and lhs |
| parameters. |
| (backprop::propagate_change): New function. |
| (backprop::commit_replacement): Likewise. |
| (backprop::execute): Update phase 3 for the above changes. Do not |
| alter the original statements during phase 3. If one SSA name |
| is scheduled to be replaced, also require all its users in m_vars |
| to be replaced. Add a new phase that performs the scheduled |
| replacements. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * gimple-ssa-backprop.cc: Remove the claim at the head of the file |
| that we only need to revisit a statement once. |
| (backprop::m_worklist, backprop::m_worklist_names): Delete. |
| (backprop::m_worklist1): New member variable. |
| (backprop::m_worklist2, backprop::m_this_worklist): Likewise. |
| (backprop::m_next_worklist, backprop::m_worklist_threshold): Likewise. |
| (backprop::backprop): Update accordingly. |
| (backprop::~backprop): Likewise. |
| (backprop::push_to_worklist): Switch to using bitmap worklists that |
| use m_vars indices instead of SSA_NAME_VERSIONs. Decide which |
| worklist should be used based on m_worklist_threshold. |
| (backprop::pop_from_worklist): Pop the first bit from m_this_worklist. |
| Set m_worklist_threshold. |
| (backprop::execute): Use a double-worklist update in which each |
| iteration makes a post order walk. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * gimple-ssa-backprop.cc (var_info): New structure. |
| (var_info_hasher): Likewise. |
| (backprop::m_info_pool): Replace with... |
| (backprop::m_var_pool): ...this new member variable. |
| (backprop::m_info_map): Replace with... |
| (backprop::m_var_table): ...this new member variable. |
| (backprop::m_worklist): Store var_info pointers instead of SSA names. |
| (backprop::backprop): Update accordingly. |
| (backprop::~backprop): Likewise. |
| (backprop::lookup_operand): Return a var_info pointer instead of |
| a usage_info pointer. |
| (backprop::push_to_worklist): Take a var_info pointer instead |
| of an SSA name. |
| (backprop::pop_from_worklist): Return a var_info pointer instead |
| of an SSA name. |
| (backprop::process_builtin_call_use): Update calls accordingly. |
| (backprop::process_assign_use): Likewise. |
| (backprop::process_phi_use): Likewise. |
| (backprop::reprocess_inputs): Likewise. |
| (backprop::process_var): Take a pointer to the var_info entry |
| as a second parameter. Update for the above data structure changes. |
| (backprop::process_block): Update calls to process_var. |
| (backprop::execute): Likewise. Update for the above data structure |
| changes. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * gimple-ssa-backprop.cc (backprop::process_var): Don't try to |
| optimize SSA names that occur as a phi input for an abnormal edge, |
| moving the restriction from... |
| (backprop::optimize_phi): ...here. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * gimple-iterator.cc (completely_unused): New function. |
| (gsi_replace): Allow changes in lhs if the caller has updated |
| all uses of the old name, including all debug uses. |
| * gimple-fold.cc (gsi_replace_with_seq_vops): Likewise. |
| |
| 2026-06-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.h: Document the complexity of pop_largest aka |
| bitmap_clear_last_set_bit. |
| (bitmap_clear_last_set_bit): Declare. |
| * bitmap.cc (bitmap_last_set_bit_worker): New function, |
| split out from... |
| (bitmap_last_set_bit): ...here. |
| (bitmap_clear_last_set_bit): New function. |
| |
| 2026-06-02 Jonathan Yong <10walls@gmail.com> |
| |
| Revert: |
| 2026-05-27 oltolm <oleg.tolmatcev@gmail.com> |
| |
| PR target/54412 |
| * target.def (overaligned_stack_slot_required): New calls hook. |
| * calls.cc (allocate_call_dynamic_stack_space): New helper. |
| (initialize_argument_information): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| by-reference argument copies. |
| (expand_call): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| hidden return slots. |
| * function.cc (assign_stack_local_aligned): New helper. |
| (assign_parm_setup_block): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| stack parm slots. |
| (assign_parm_setup_reg): Likewise. |
| * config/i386/i386.cc (ix86_overaligned_stack_slot_required): New. |
| (TARGET_OVERALIGNED_STACK_SLOT_REQUIRED): Define for i386. |
| * doc/tm.texi.in: Add hook placement. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125545 |
| * tree-ssa-reassoc.cc (insert_stmt_after): Allow asm goto |
| with a single successor. |
| |
| 2026-06-02 Lino Hsing-Yu Peng <linopeng@andestech.com> |
| |
| * common/config/riscv/riscv-common.cc: Add zvfofp8min support. |
| * config/riscv/riscv-ext.def: Add zvfofp8min entry. |
| * config/riscv/riscv-ext.opt: Add zvfofp8min option. |
| * config/riscv/riscv-vector-builtins.cc: Require zvfofp8min. |
| * config/riscv/riscv-vector-builtins.h: Add zvfofp8min handling. |
| * doc/riscv-ext.texi: Document the new extension. |
| |
| 2026-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125553 |
| * tree-ssa-sccvn.cc (visit_nary_op): Valueize the BIT_FIELD_REF |
| operand before looking at its definition. |
| |
| 2026-06-02 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-cores.def: Switch xt-c9501fdvt tune to |
| xt_c9501_tune_info. |
| * config/riscv/riscv.cc (xt_c9501_vls_vector_cost): New. |
| (xt_c9501_vla_vector_cost): New. |
| (xt_c9501_vector_cost): New. |
| (xt_c9501_tune_info): New. |
| |
| 2026-06-02 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-v.cc (expand_vec_perm): Add missing return |
| after emit_vlmax_gather_insn. |
| |
| 2026-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125502 |
| * tree-ssa-forwprop.cc (optimize_vector_load): Do not |
| move defs of abnormals. |
| |
| 2026-06-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (crotate): Rename to inv_rotate. |
| Update all uses accordingly. |
| |
| 2026-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (TARGET_OS_CPP_BUILTINS): Don't define |
| _XOPEN_SOURCE=600 for C++. |
| |
| 2026-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120702 |
| * gimple-fold.cc (maybe_fold_reference): Only fold |
| register type reads. |
| |
| 2026-06-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/125517 |
| * wide-int.cc (wi::bitreverse_large): Rename LEN argument to XLEN and |
| use it as safe_uhwi argument. Add LEN automatic variable set to |
| BLOCKS_NEEDED (precision). Replace loop clearing val with memset. |
| Remove I automatic variable. |
| |
| 2026-06-02 Jin Ma <jinma@linux.alibaba.com> |
| |
| * common/config/riscv/riscv-common.cc: Fix typos in comments. |
| * config/riscv/andes-25-series.md: Likewise. |
| * config/riscv/autovec-opt.md: Likewise. |
| * config/riscv/autovec.md: Likewise. |
| * config/riscv/bitmanip.md: Likewise. |
| * config/riscv/constraints.md: Likewise. |
| * config/riscv/gen-riscv-ext-opt.cc: Likewise. |
| * config/riscv/gen-riscv-mcpu-texi.cc: Likewise. |
| * config/riscv/generic-vector-ooo.md: Likewise. |
| * config/riscv/multilib-generator: Likewise. |
| * config/riscv/riscv-avlprop.cc: Likewise. |
| * config/riscv/riscv-ext.def: Likewise. |
| * config/riscv/riscv-ext.opt: Likewise. |
| * config/riscv/riscv-modes.def: Likewise. |
| * config/riscv/riscv-opt-popretz.cc: Likewise. |
| * config/riscv/riscv-profiles.def: Likewise. |
| * config/riscv/riscv-protos.h: Likewise. |
| * config/riscv/riscv-selftests.cc: Likewise. |
| * config/riscv/riscv-sr.cc: Likewise. |
| * config/riscv/riscv-string.cc: Likewise. |
| * config/riscv/riscv-subset.h: Likewise. |
| * config/riscv/riscv-target-attr.cc: Likewise. |
| * config/riscv/riscv-v.cc: Likewise. |
| * config/riscv/riscv-vect-permconst.cc: Likewise. |
| * config/riscv/riscv-vector-builtins-bases.cc: Likewise. |
| * config/riscv/riscv-vector-builtins-functions.def: Likewise. |
| * config/riscv/riscv-vector-builtins-shapes.cc: Likewise. |
| * config/riscv/riscv-vector-builtins-types.def: Likewise. |
| * config/riscv/riscv-vector-builtins.cc: Likewise. |
| * config/riscv/riscv-vector-builtins.def: Likewise. |
| * config/riscv/riscv-vector-builtins.h: Likewise. |
| * config/riscv/riscv-vector-costs.cc: Likewise. |
| * config/riscv/riscv-vector-costs.h: Likewise. |
| * config/riscv/riscv-vsetvl.cc: Likewise. |
| * config/riscv/riscv-vsetvl.def: Likewise. |
| * config/riscv/riscv-zicfilp.cc: Likewise. |
| * config/riscv/riscv.cc: Likewise. |
| (riscv_zcmp_valid_stack_adj_bytes_p): Rename misspelled |
| variable additioanl_bytes to additional_bytes. |
| * config/riscv/riscv.h: Likewise. |
| * config/riscv/riscv.md: Likewise. |
| * config/riscv/sifive-vector-builtins-functions.def: Likewise. |
| * config/riscv/sifive_vector.h: Likewise. |
| * config/riscv/spacemit-x60.md: Likewise. |
| * config/riscv/thead.cc: Likewise. |
| * config/riscv/tt-ascalon-d8.md: Likewise. |
| * config/riscv/vector-crypto.md: Likewise. |
| * config/riscv/vector-iterators.md: Likewise. |
| * config/riscv/vector.md: Likewise. |
| * config/riscv/zicond.md: Likewise. |
| * doc/riscv-mcpu.texi: Regenerate. |
| |
| 2026-06-02 Jin Ma <jinma@linux.alibaba.com> |
| |
| * common/config/riscv/riscv-common.cc: Fix formatting. |
| * config/riscv/gen-riscv-mcpu-texi.cc: Likewise. |
| * config/riscv/gen-riscv-mtune-texi.cc: Likewise. |
| * config/riscv/genrvv-type-indexer.cc: Remove unused <assert.h> |
| include. |
| * config/riscv/riscv-string.cc: Fix formatting. |
| * config/riscv/riscv-target-attr.cc: Likewise. |
| * config/riscv/riscv-v.cc: Remove duplicate "targhooks.h" include. |
| Fix formatting. |
| * config/riscv/riscv-v.h: Fix formatting. |
| * config/riscv/riscv-vsetvl.cc: Likewise. |
| * config/riscv/riscv.cc (riscv_pass_by_reference): Remove stray |
| double semicolon. Fix formatting elsewhere. |
| (riscv_output_move): Use gcc_unreachable () instead of abort (). |
| (riscv_save_libcall_count): Use gcc_unreachable () instead of |
| abort (). |
| * config/riscv/riscv.h: Fix formatting. |
| * config/riscv/thead.cc: Likewise. |
| |
| 2026-06-02 Tianle Shi <shitianle@hygon.cn> |
| |
| * config/i386/i386.cc (ix86_vector_costs): Add |
| m_num_avx512_vec_perm. |
| (ix86_vector_costs::ix86_vector_costs): Initialize it. |
| (ix86_count_cross_lane_perm_p): New helper to classify |
| cross-lane vec_perm for AVX256 and AVX512 handling. |
| (ix86_vector_costs::add_stmt_cost): Use the helper for |
| vec_perm accounting, record 256-bit and 512-bit counts, |
| and print detected width as avx%u. |
| (ix86_vector_costs::finish_cost): Reject AVX512 costs |
| when TARGET_AVX512_AVOID_VEC_PERM is set and 512-bit |
| cross-lane vec_perm is present. |
| * config/i386/i386.h (TARGET_AVX512_AVOID_VEC_PERM): |
| New macro. |
| * config/i386/x86-tune.def (X86_TUNE_AVX512_AVOID_VEC_PERM): |
| New tune for c86-4g-m7. |
| |
| 2026-06-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/125558 |
| * common.opt (Wstrict-overflow): Mark as Ignore. |
| (Wstrict-overflow=): Fix up and mark as igore. |
| * gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): |
| Remove OPT_Wstrict_overflow. |
| * opts.cc (common_handle_option): Likewise. |
| |
| 2026-06-01 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/122827 |
| * config/aarch64/aarch64.cc (aarch64_hard_regno_call_part_clobbered): |
| For SVE modes use BYTES_PER_SVE_VECTOR for the per-register size |
| rather than GET_MODE_SIZE. |
| * config/aarch64/aarch64-early-ra.cc (early_ra::get_allocno_subgroup): |
| Classify any SVE mode as FPR_Z. |
| |
| 2026-06-01 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/tuning_models/olympus.h (olympus_scalar_issue_info, |
| olympus_advsimd_issue_info, olympus_sve_issue_info): Set |
| loads_stores_per_cycle to 6. |
| |
| 2026-06-01 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/tuning_models/olympus.h (olympus_tunings): |
| Adjust loop_align, function_align, jump_align. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/arm/arm-mve-builtins-shapes.cc (struct viddup_def): |
| Re-flow comment. |
| (struct vidwdup_def): Likewise. |
| * config/arm/arm.cc (arm_mve_check_reg_origin_is_num_elems): Likewise. |
| * config/loongarch/sync.md: Likewise. |
| * config/microblaze/microblaze.cc (compute_frame_size): Likewise. |
| * config/rs6000/rs6000-call.cc (rs6000_gimplify_va_arg): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/darwin-c.cc (find_subframework_header): Fix typos. |
| * config/darwin-driver.cc (darwin_find_version_from_kernel): Likewise. |
| * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Likewise. |
| (fprintf): Likewise. |
| * config/sol2-stubs.cc: Likewise. |
| * config/sol2.cc (solaris_elf_asm_comdat_section): Likewise. |
| * config/sol2.h: Likewise. |
| * config/vx-common.h: Likewise. |
| * config/vxworks.h (vxworks_asm_out_destructor): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/xtensa/xtensa.cc (xtensa_legitimize_address): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/vms/vms-c.cc (enum extern_model_kind): Fix typos. |
| (vms_pragma_message): Likewise. |
| (vms_c_register_includes): Likewise. |
| * config/vms/vms.cc (vms_function_section): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/visium/visium.h (CASE_VECTOR_PC_RELATIVE): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/vax/vax.cc (vax_expand_addsub_di_operands): Fix typos. |
| * config/vax/vax.h (PRINT_OPERAND_ADDRESS): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/sparc/freebsd.h: Fix typos. |
| * config/sparc/sparc.cc (emit_scc_insn): Likewise. |
| (sparc_emit_membar_for_model): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/sh/sh-mem.cc (sh_expand_cmpstr): Fix typos. |
| * config/sh/sh.cc (sh_option_override): Likewise. |
| (sh_rtx_costs): Likewise. |
| (fixup_addr_diff_vecs): Likewise. |
| (sh_expand_epilogue): Likewise. |
| (sh_legitimize_address_displacement): Likewise. |
| (sh_can_use_simple_return_p): Likewise. |
| (sh_find_equiv_gbr_addr): Likewise. |
| (sh_check_add_incdec_notes): Likewise. |
| * config/sh/sh.md: Likewise. |
| * config/sh/sh4-300.md: Likewise. |
| * config/sh/sh_treg_combine.cc (sh_treg_combine::try_combine_comparisons): Likewise. |
| (sh_treg_combine::try_eliminate_cstores): Likewise. |
| * config/sh/sync.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/rx/rx.cc (rx_print_operand): Fix typos. |
| (rx_expand_epilogue): Likewise. |
| * config/rx/rx.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/s390/2817.md: Fix typos. |
| * config/s390/s390.cc (s390_contiguous_bitmask_nowrap_p): Likewise. |
| (s390_contiguous_bitmask_p): Likewise. |
| (s390_short_displacement): Likewise. |
| (s390_expand_cmpmem): Likewise. |
| (s390_expand_vec_movstr): Likewise. |
| (s390_expand_cstoreti4): Likewise. |
| (s390_expand_int_spaceship): Likewise. |
| (s390_z10_optimize_cmp): Likewise. |
| (s390_support_vector_misalignment): Likewise. |
| * config/s390/s390.h (NO_FUNCTION_CSE): Likewise. |
| * config/s390/s390.md: Likewise. |
| * config/s390/subst.md: Likewise. |
| * config/s390/vx-builtins.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/rs6000/aix.h: Fix typos. |
| * config/rs6000/cell.md: Likewise. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/mmintrin.h: Likewise. |
| * config/rs6000/rs6000-call.cc (rs6000_gimplify_va_arg): Likewise. |
| * config/rs6000/rs6000-internal.h: Likewise. |
| * config/rs6000/rs6000-logue.cc (is_altivec_return_reg): Likewise. |
| (rs6000_output_function_prologue): Likewise. |
| * config/rs6000/rs6000-p8swap.cc (quad_aligned_store_p): Likewise. |
| (const_load_sequence_p): Likewise. |
| (replace_swapped_aligned_store): Likewise. |
| * config/rs6000/rs6000-passes.def: Likewise. |
| * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Likewise. |
| (expand_compare_loop): Likewise. |
| * config/rs6000/rs6000.cc (rs6000_debug_addr_mask): Likewise. |
| (rs6000_setup_reg_addr_masks): Likewise. |
| (darwin_rs6000_override_options): Likewise. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_cost_data::determine_suggested_unroll_factor): Likewise. |
| (rs6000_cannot_force_const_mem): Likewise. |
| (rs6000_emit_le_vsx_move): Likewise. |
| (rs6000_secondary_reload_memory): Likewise. |
| (rs6000_reverse_condition): Likewise. |
| (rs6000_expand_float128_convert): Likewise. |
| (rs6000_adjust_atomic_subword): Likewise. |
| (rs6000_expand_atomic_op): Likewise. |
| (rs6000_xcoff_declare_object_name): Likewise. |
| (output_pcrel_opt_reloc): Likewise. |
| (rs6000_set_up_by_prologue): Likewise. |
| (rs6000_split_logical_inner): Likewise. |
| (rs6000_split_multireg_move): Likewise. |
| * config/rs6000/rs6000.h: Likewise. |
| * config/rs6000/rs6000.md: Likewise. |
| * config/rs6000/sync.md: Likewise. |
| * config/rs6000/vector.md: Likewise. |
| * config/rs6000/vsx.md: Likewise. |
| * config/rs6000/vxworks.h: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/rl78/rl78.cc (rl78_alloc_physical_registers): Fix typos. |
| (set_origin): Likewise. |
| (rl78_remove_unused_sets): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/pdp11/pdp11.cc (pdp11_insn_cost): Fix typo. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common/config/riscv/riscv-common.cc (riscv_subset_list::add): Fix |
| typos. |
| (riscv_subset_list::parse_single_multiletter_ext): Likewise. |
| (riscv_subset_list::set_loc): Likewise. |
| (riscv_arch_str): Likewise. |
| * config/riscv/riscv-avlprop.cc: Likewise. |
| * config/riscv/riscv-bclr-lowest-set-bit.cc (find_later_ctz): Likewise. |
| * config/riscv/riscv-ext-andes.def: Likewise. |
| * config/riscv/riscv-ext.def: Likewise. |
| * config/riscv/riscv-profiles.def: Likewise. |
| * config/riscv/riscv-selftests.cc (run_const_vector_selftests): Likewise. |
| (run_broadcast_selftests): Likewise. |
| (riscv_run_selftests): Likewise. |
| * config/riscv/riscv-string.cc (riscv_expand_strcmp): Likewise. |
| * config/riscv/riscv-v.cc (shuffle_decompress_patterns): Likewise. |
| (vls_mode_valid_p): Likewise. |
| * config/riscv/riscv-vect-permconst.cc (vector_permconst::process_bb): Likewise. |
| * config/riscv/riscv-vector-builtins.cc (riscv_pragma_intrinsic_flags_pollute): Likewise. |
| * config/riscv/riscv-vsetvl.cc: Likewise. |
| * config/riscv/riscv-zicfilp.cc: Likewise. |
| * config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Likewise. |
| (riscv_rtx_costs): Likewise. |
| (riscv_address_cost): Likewise. |
| (riscv_vls_cc_function_abi): Likewise. |
| (riscv_frm_mode_needed): Likewise. |
| (dispatch_function_versions): Likewise. |
| * config/riscv/riscv.h (DWARF_REG_TO_UNWIND_COLUMN): Likewise. |
| * config/riscv/riscv.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/pa/pa.cc (pa_assemble_integer): Fix typos. |
| (pa_can_change_mode_class): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/or1k/or1k.cc (or1k_strict_argument_naming): Fix typos. |
| (or1k_print_operand_address): Likewise. |
| * config/or1k/or1k.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/nvptx/nvptx.cc (nvptx_option_override): Fix typos. |
| (nvptx_assemble_undefined_decl): Likewise. |
| (nvptx_mem_maybe_shared_p): Likewise. |
| (nvptx_discover_pars): Likewise. |
| (verify_neutering_labels): Likewise. |
| (nvptx_condjump_label): Likewise. |
| (nvptx_lockfull_update): Likewise. |
| * config/nvptx/nvptx.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common/config/nds32/nds32-common.cc (nds32_except_unwind_info): Fix |
| typos. |
| * config/nds32/constants.md: Likewise. |
| * config/nds32/constraints.md: Likewise. |
| * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise. |
| * config/nds32/nds32-dspext.md: Likewise. |
| * config/nds32/nds32-e8.md: Likewise. |
| * config/nds32/nds32-fp-as-gp.cc (nds32_fp_as_gp_check_available): Likewise. |
| * config/nds32/nds32-intrinsic.cc (nds32_expand_priority_builtin): Likewise. |
| * config/nds32/nds32-isr.cc (nds32_emit_isr_vector_section): Likewise. |
| (nds32_asm_file_end_for_isr): Likewise. |
| * config/nds32/nds32-md-auxiliary.cc (output_cond_branch): Likewise. |
| (nds32_expand_cbranch): Likewise. |
| (nds32_expand_float_cstore): Likewise. |
| (nds32_expand_movcc): Likewise. |
| (nds32_output_stack_pop): Likewise. |
| (nds32_output_return): Likewise. |
| (nds32_split_sms): Likewise. |
| (nds32_legitimize_tls_address): Likewise. |
| * config/nds32/nds32-memory-manipulation.cc (nds32_expand_cpymemsi_unroll): Likewise. |
| (nds32_expand_load_multiple): Likewise. |
| * config/nds32/nds32-multiple.md: Likewise. |
| * config/nds32/nds32-n7.md: Likewise. |
| * config/nds32/nds32-n8.md: Likewise. |
| * config/nds32/nds32-n9-2r1w.md: Likewise. |
| * config/nds32/nds32-pipelines-auxiliary.cc (extract_nth_access_reg): Likewise. |
| (pbsada_insn_ra_rb_dep_reg_p): Likewise. |
| * config/nds32/nds32-predicates.cc (nds32_can_use_bset_p): Likewise. |
| (nds32_can_use_btgl_p): Likewise. |
| (nds32_symbol_load_store_p): Likewise. |
| * config/nds32/nds32-protos.h (nds32_cond_move_p): Likewise. |
| (nds32_mem_format): Likewise. |
| * config/nds32/nds32-relax-opt.cc (nds32_plus_reg_load_store_p): Likewise. |
| * config/nds32/nds32-utils.cc (extract_offset_rtx): Likewise. |
| * config/nds32/nds32.cc (nds32_compute_stack_frame): Likewise. |
| (nds32_emit_stack_pop_multiple): Likewise. |
| (nds32_emit_stack_v3pop): Likewise. |
| (nds32_can_change_mode_class): Likewise. |
| (nds32_arg_partial_bytes): Likewise. |
| (nds32_function_ok_for_sibcall): Likewise. |
| (nds32_register_move_cost): Likewise. |
| (nds32_print_operand): Likewise. |
| (nds32_merge_decl_attributes): Likewise. |
| (nds32_insert_attributes): Likewise. |
| (nds32_init_libfuncs): Likewise. |
| (nds32_expand_epilogue_v3pop): Likewise. |
| (nds32_can_use_return_insn): Likewise. |
| (nds32_target_alignment): Likewise. |
| (nds32_split_double_word_load_store_p): Likewise. |
| * config/nds32/nds32.h (enum nds32_builtins): Likewise. |
| (CASE_VECTOR_MODE): Likewise. |
| * config/nds32/nds32.md: Likewise. |
| * config/nds32/nds32_intrinsic.h (__attribute__): Likewise. |
| * config/nds32/nds32_isr.h: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/msp430/msp430-opts.h (enum msp430_cpu_types): Fix typos. |
| * config/msp430/msp430.cc (msp430_op_not_in_high_mem): Likewise. |
| * config/msp430/msp430.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/mingw/winnt-cxx.cc (i386_pe_adjust_class_at_definition): Fix |
| typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/microblaze/microblaze.cc (struct microblaze_frame_info): Fix |
| typos. |
| (compute_frame_size): Likewise. |
| * config/microblaze/microblaze.h: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/mcore/mcore.h: Fix typo. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/mips/driver-native.cc (host_detect_local_cpu): Fix typos. |
| * config/mips/mips-cpus.def (MIPS_CPU): Likewise. |
| * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise. |
| (mips_function_ok_for_sibcall): Likewise. |
| (mips_expand_ext_as_unaligned_load): Likewise. |
| (mips_use_ins_ext_p): Likewise. |
| (mips_pop_asm_switch): Likewise. |
| (mips_cfun_has_inflexible_gp_ref_p): Likewise. |
| (mips_set_compression_mode): Likewise. |
| (mips_expand_vec_unpack): Likewise. |
| * config/mips/mips.h (while): Likewise. |
| * config/mips/mips.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/m68k/cf.md: Fix typos. |
| * config/m68k/m68k.cc (m68k_unwrap_symbol): Likewise. |
| (m68k_adjust_decorated_operand): Likewise. |
| (m68k_call_tls_get_addr): Likewise. |
| (m68k_call_m68k_read_tp): Likewise. |
| (m68k_sched_attr_size): Likewise. |
| (m68k_sched_dfa_post_advance_cycle): Likewise. |
| (sched_mem_operand_p): Likewise. |
| (m68k_sched_address_bypass_p): Likewise. |
| * config/m68k/m68kelf.h: Likewise. |
| * config/m68k/netbsd-elf.h (REGISTER_PREFIX): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/loongarch/lasx.md: Fix typos. |
| * config/loongarch/loongarch-builtins.cc: Likewise. |
| * config/loongarch/loongarch-c.cc (loongarch_pragma_target_parse): Likewise. |
| * config/loongarch/loongarch-opts.cc (loongarch_generate_mrecip_scheme): Likewise. |
| * config/loongarch/loongarch-opts.h (loongarch_config_target): Likewise. |
| * config/loongarch/loongarch.cc (loongarch_setup_incoming_varargs): Likewise. |
| (loongarch_build_integer): Likewise. |
| (loongarch_explicit_relocs_p): Likewise. |
| (loongarch_valid_lo_sum_p): Likewise. |
| (loongarch_addu16i_imm12_operand_p): Likewise. |
| (loongarch_rewrite_mem_for_simple_ldst): Likewise. |
| (loongarch_is_elem_duplicate): Likewise. |
| (loongarch_expand_vec_perm_const): Likewise. |
| (loongarch_sched_reassociation_width): Likewise. |
| (loongarch_expand_vec_unpack): Likewise. |
| (dispatch_function_versions): Likewise. |
| (loongarch_option_same_function_versions): Likewise. |
| * config/loongarch/loongarch.h: Likewise. |
| * config/loongarch/loongarch.md: Likewise. |
| * config/loongarch/lsx.md: Likewise. |
| * config/loongarch/predicates.md: Likewise. |
| * config/loongarch/simd.md: Likewise. |
| * config/loongarch/sync.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/lm32/lm32.cc (lm32_compute_frame_size): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/ia64/ia64.cc (ia64_add_bundle_selector_before): Fix typos. |
| * config/ia64/itanium2.md: Likewise. |
| * config/ia64/sync.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/i386/athlon.md: Fix typos. |
| * config/i386/avx512fintrin.h: Likewise. |
| * config/i386/btver2.md: Likewise. |
| * config/i386/c86-4g-m7.md: Likewise. |
| * config/i386/c86-4g.md: Likewise. |
| * config/i386/cygwin.h: Likewise. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Likewise. |
| * config/i386/i386-expand.cc (ix86_expand_branch): Likewise. |
| (ix86_expand_int_sse_cmp): Likewise. |
| (ix86_expand_vec_perm): Likewise. |
| (expand_small_cpymem_or_setmem): Likewise. |
| (ix86_copy_addr_to_reg): Likewise. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_vector_init_interleave): Likewise. |
| (expand_vec_perm_shufps_shufps): Likewise. |
| (ix86_expand_sse2_mulvxdi3): Likewise. |
| (ix86_gen_ccmp_first): Likewise. |
| * config/i386/i386-features.cc (general_scalar_to_vector_candidate_p): Likewise. |
| (pass_x86_cse::x86_cse): Likewise. |
| (ix86_apx_nf_convert): Likewise. |
| (dispatch_function_versions): Likewise. |
| * config/i386/i386-features.h (class scalar_chain): Likewise. |
| * config/i386/i386-options.cc (ix86_function_specific_restore): Likewise. |
| (ix86_valid_target_attribute_tree): Likewise. |
| (ix86_override_options_after_change_1): Likewise. |
| (ix86_option_override_internal): Likewise. |
| * config/i386/i386.cc (ix86_can_inline_p): Likewise. |
| (ix86_function_regparm): Likewise. |
| (construct_container): Likewise. |
| (ix86_return_in_memory): Likewise. |
| (output_indirect_thunk): Likewise. |
| (ix86_compute_frame_layout): Likewise. |
| (choose_basereg): Likewise. |
| (ix86_emit_save_reg_using_mov): Likewise. |
| (pro_epilogue_adjust_stack): Likewise. |
| (ix86_expand_prologue): Likewise. |
| (ix86_emit_restore_sse_regs_using_mov): Likewise. |
| (ix86_memory_address_reg_class): Likewise. |
| (ix86_avx_u128_mode_after): Likewise. |
| (ix86_output_addr_diff_elt): Likewise. |
| (ix86_lea_outperforms): Likewise. |
| (ix86_avoid_lea_for_addr): Likewise. |
| (ix86_cc_modes_compatible): Likewise. |
| (add_parameter_dependencies): Likewise. |
| (ix86_data_alignment): Likewise. |
| (ix86_gimple_fold_builtin): Likewise. |
| (ix86_autovectorize_vector_modes): Likewise. |
| (ix86_max_noce_ifcvt_seq_cost): Likewise. |
| (ix86_vector_costs::add_stmt_cost): Likewise. |
| (ix86_vector_costs::finish_cost): Likewise. |
| (ix86_optab_supported_p): Likewise. |
| (ix86_push_rounding): Likewise. |
| * config/i386/i386.h (host_detect_local_cpu): Likewise. |
| (enum reg_class): Likewise. |
| * config/i386/i386.md: Likewise. |
| * config/i386/i386elf.h: Likewise. |
| * config/i386/predicates.md: Likewise. |
| * config/i386/sse.md: Likewise. |
| * config/i386/x86-tune-costs.h (struct processor_costs): Likewise. |
| * config/i386/x86-tune-sched-atom.cc (swap_top_of_ready_list): Likewise. |
| (ix86_atom_sched_reorder): Likewise. |
| * config/i386/x86-tune-sched-bd.cc (find_constant): Likewise. |
| * config/i386/x86-tune-sched.cc (exact_store_load_dependency): Likewise. |
| * config/i386/x86-tune.def (X86_TUNE_FUSE_MOV_AND_ALU): Likewise. |
| (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Likewise. |
| (X86_TUNE_DOUBLE_WITH_ADD): Likewise. |
| (X86_TUNE_PROMOTE_QIMODE): Likewise. |
| * config/i386/zn4zn5.md: Likewise. |
| * config/i386/znver.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/gcn/constraints.md: Fix typos. |
| * config/gcn/gcn-opts.h (TARGET_ARCHITECTED_FLAT_SCRATCH): Likewise. |
| * config/gcn/gcn-valu.md: Likewise. |
| * config/gcn/gcn.cc (gcn_gen_undef): Likewise. |
| (gcn_addr_space_debug): Likewise. |
| (gcn_expand_prologue): Likewise. |
| (gcn_frame_pointer_rqd): Likewise. |
| * config/gcn/gcn.h (NUM_PARM_REGS): Likewise. |
| (enum gcn_builtin_codes): Likewise. |
| * config/gcn/gcn.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/ft32/ft32.cc (ft32_init_machine_status): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/frv/frv-opts.h: Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/fr30/fr30.cc (fr30_const_double_is_zero): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/epiphany/epiphany.cc (epiphany_expand_epilogue): Fix typos. |
| * config/epiphany/resolve-sw-modes.cc: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/csky/csky.cc (csky_output_inline_const): Fix typos. |
| (emit_csky_regs_pop): Likewise. |
| (csky_return_in_memory): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/c6x/c6x.cc (c6x_file_start): Fix typos. |
| (c6x_print_operand_address): Likewise. |
| (c6x_asm_emit_except_personality): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/bpf/bpf.cc (bpf_asm_named_section): Fix typos. |
| * config/bpf/core-builtins.cc (remove_parser_plugin): Likewise. |
| (make_core_relo): Likewise. |
| (bpf_handle_plugin_finish_type): Likewise. |
| (bpf_output_core_reloc): Likewise. |
| (core_make_builtins): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/bfin/bfin.cc (bfin_function_ok_for_sibcall): Fix typos. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common/config/avr/avr-common.cc: Fix typos. |
| * config/avr/avr-passes.cc (size_to_mode): Likewise. |
| (struct absint_t): Likewise. |
| (plies_t::emit_sets): Likewise. |
| (avr_strict_unsigned_p): Likewise. |
| (avr_redundant_compare): Likewise. |
| (avr_optimize_casesi): Likewise. |
| (struct AVR_LdSt_Props): Likewise. |
| (avr_pass_split_nzb::split_nzb_insns): Likewise. |
| (make_avr_pass_fuse_move): Likewise. |
| * config/avr/avr.cc (avr_option_override): Likewise. |
| (avr_can_inline_p): Likewise. |
| (avr_expand_epilogue): Likewise. |
| (avr_init_cumulative_args): Likewise. |
| (reg_unused_after): Likewise. |
| (avr_out_lpm_no_lpmx): Likewise. |
| (avr_out_compare): Likewise. |
| (avr_out_plus_ext): Likewise. |
| (avr_out_fract): Likewise. |
| (avr_nonzero_bits_lsr_operands_p): Likewise. |
| * config/avr/avr.h (avr_no_devlib): Likewise. |
| (struct machine_function): Likewise. |
| * config/avr/avr.md: Likewise. |
| * config/avr/builtins.def (FLASH_SEGMENT): Likewise. |
| * config/avr/specs.h: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common/config/arm/arm-common.cc (arm_config_default): Fix typos. |
| (arm_canon_arch_option_1): Likewise. |
| * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Likewise. |
| * config/arm/arm-builtins.cc (MAC_LANE_PAIR_QUALIFIERS): Likewise. |
| (USMAC_LANE_QUADTUP_QUALIFIERS): Likewise. |
| * config/arm/arm-modes.def (ADJUST_FLOAT_FORMAT): Likewise. |
| * config/arm/arm-mve-builtins-base.cc: Likewise. |
| * config/arm/arm-mve-builtins-shapes.cc (struct binary_lshift_unsigned_def): Likewise. |
| (struct binary_maxamina_def): Likewise. |
| (struct viddup_def): Likewise. |
| (struct vidwdup_def): Likewise. |
| * config/arm/arm-protos.h (struct tune_params): Likewise. |
| * config/arm/arm.cc (arm_option_override_internal): Likewise. |
| (arm_option_override): Likewise. |
| (optimal_immediate_sequence_1): Likewise. |
| (arm_pcs_from_attribute): Likewise. |
| (aapcs_vfp_advance): Likewise. |
| (aapcs_layout_arg): Likewise. |
| (arm_init_cumulative_args): Likewise. |
| (arm_rtx_costs_internal): Likewise. |
| (mve_bool_vec_to_const): Likewise. |
| (operands_ok_ldrd_strd): Likewise. |
| (emit_multi_reg_push): Likewise. |
| (arm_emit_vfp_multi_reg_pop): Likewise. |
| (thumb2_emit_ldrd_pop): Likewise. |
| (arm_print_condition): Likewise. |
| (get_arm_condition_code): Likewise. |
| (thumb_pop): Likewise. |
| (arm_print_asm_arch_directives): Likewise. |
| (arm_debugger_regno): Likewise. |
| (arm_target_bb_ok_for_lob): Likewise. |
| (arm_mve_load_store_insn_p): Likewise. |
| (arm_mve_check_reg_origin_is_num_elems): Likewise. |
| (arm_mve_dlstp_check_dec_counter): Likewise. |
| (arm_mve_loop_valid_for_dlstp): Likewise. |
| (arm_loop_unroll_adjust): Likewise. |
| * config/arm/arm.h (ROUND_UP_WORD): Likewise. |
| * config/arm/arm.md: Likewise. |
| * config/arm/constraints.md: Likewise. |
| * config/arm/cortex-a17-neon.md: Likewise. |
| * config/arm/cortex-r4f.md: Likewise. |
| * config/arm/crypto.md: Likewise. |
| * config/arm/elf.h: Likewise. |
| * config/arm/fa726te.md: Likewise. |
| * config/arm/iterators.md: Likewise. |
| * config/arm/neon.md: Likewise. |
| * config/arm/thumb1.md: Likewise. |
| * config/arm/uclinuxfdpiceabi.h: Likewise. |
| * config/arm/unspecs.md: Likewise. |
| * config/arm/vec-common.md: Likewise. |
| * config/arm/vxworks.h (STACK_CHECK_PROTECT): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/arc/arc-arch.h (enum base_architecture): Fix typos. |
| * config/arc/arc-cpus.def: Likewise. |
| * config/arc/arc.cc (legitimate_small_data_address_p): Likewise. |
| (legitimate_scaled_address_p): Likewise. |
| (get_arc_condition_code): Likewise. |
| (arc_setup_incoming_varargs): Likewise. |
| (pop_reg): Likewise. |
| (arc_restore_callee_leave): Likewise. |
| (arc_asm_trampoline_template): Likewise. |
| (arc_add_jli_section): Likewise. |
| (arc_invalid_within_doloop): Likewise. |
| (arc_reorg): Likewise. |
| (conditionalize_nonjump): Likewise. |
| (arc_eh_uses): Likewise. |
| (arc_memory_move_cost): Likewise. |
| * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Likewise. |
| (TARGET_PAD_RETURN): Likewise. |
| (arc_select_cc_mode): Likewise. |
| * config/arc/arc.md: Likewise. |
| * config/arc/arc.opt: Likewise. |
| * config/arc/arc700.md: Likewise. |
| * config/arc/elf.h (TARGET_ASM_FILE_END): Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * config/alpha/alpha.cc (alpha_pass_by_reference): Fix typos. |
| (alpha_reorg): Likewise. |
| * config/alpha/predicates.md: Likewise. |
| |
| 2026-06-01 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common/config/aarch64/aarch64-common.cc (aarch64_parse_cpu): Fix |
| typos. |
| * common/config/aarch64/cpuinfo.h: Likewise. |
| * config/aarch64/aarch64-builtins.cc: Likewise. |
| * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Likewise. |
| * config/aarch64/aarch64-modes.def (FLOAT_MODE): Likewise. |
| * config/aarch64/aarch64-simd.md: Likewise. |
| * config/aarch64/aarch64-speculation.cc: Likewise. |
| * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc (struct binary_za_m_def): Likewise. |
| * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise. |
| * config/aarch64/aarch64-sve.md: Likewise. |
| * config/aarch64/aarch64-sve2.md: Likewise. |
| * config/aarch64/aarch64.cc (aarch64_init_sysregs): Likewise. |
| (aarch64_load_symref_appropriately): Likewise. |
| (aarch64_output_sve_cnt_immediate): Likewise. |
| (aarch64_replace_reg_mode): Likewise. |
| (aarch64_pass_by_reference_1): Likewise. |
| (aarch64_layout_arg): Likewise. |
| (aarch64_allocate_and_probe_stack_space): Likewise. |
| (aarch64_legitimize_address_displacement): Likewise. |
| (aarch64_output_casesi): Likewise. |
| (aarch64_stp_sequence_cost): Likewise. |
| (aarch64_vector_costs::add_stmt_cost): Likewise. |
| (aarch64_override_options): Likewise. |
| (aarch64_functions_b_resolvable_from_a): Likewise. |
| (dispatch_function_versions): Likewise. |
| (aarch64_can_inline_p): Likewise. |
| (aarch64_classify_symbol): Likewise. |
| (aarch64_build_builtin_va_list): Likewise. |
| (aarch64_sve_pred_valid_immediate): Likewise. |
| (aarch64_simd_lane_bounds): Likewise. |
| (aarch64_expand_vector_init_fallback): Likewise. |
| (aarch64_modes_compatible_p): Likewise. |
| (aarch64_ldrstr_offset_compare): Likewise. |
| (aarch64_speculation_safe_value): Likewise. |
| * config/aarch64/aarch64.h (DEFAULT_PCC_STRUCT_RETURN): Likewise. |
| (struct GTY): Likewise. |
| * config/aarch64/aarch64.md: Likewise. |
| * config/aarch64/aarch64.opt: Likewise. |
| * config/aarch64/arm_bf16.h: Likewise. |
| * config/aarch64/arm_neon.h (vbslq_u64): Likewise. |
| * config/aarch64/cortex-a57-fma-steering.cc: Likewise. |
| * config/aarch64/driver-aarch64.cc (get_cpu_from_id): Likewise. |
| (host_detect_local_cpu): Likewise. |
| * config/aarch64/iterators.md: Likewise. |
| * config/aarch64/thunderx.md: Likewise. |
| * config/aarch64/thunderx3t110.md: Likewise. |
| |
| 2026-06-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure: Regenerate. |
| |
| 2026-06-01 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.h (TARGET_ENABLE_NDD_MEM): New. |
| * config/i386/x86-tune.def (X86_TUNE_ENABLE_NDD_MEM): New. |
| * config/i386/i386.md (*add<dwi>3_doubleword): Split NDD rm |
| to r,m and add preferred_for_speed for NDD memory alternatives. |
| (*add<dwi>3_doubleword_zext): Likewise. |
| (*add<mode>_1<nf_name>): Likewise. |
| (addsi_1_zext): Likewise. |
| (*addhi_1<nf_name>): Likewise. |
| (*addqi_1<nf_name>): Likewise. |
| (*add<mode>_2): Likewise. |
| (*addsi_2_zext): Likewise. |
| (*add<mode>_3): Likewise. |
| (*addsi_3_zext): Likewise. |
| (*add<mode>_5): Likewise. |
| (*addv<mode>4): Likewise. |
| (addv<mode>4_1): Likewise. |
| (*addv<dwi>4_doubleword_1): Likewise. |
| (*addv<mode>4_overflow_1): Likewise. |
| (*addv<mode>4_overflow_2): Likewise. |
| (*sub<dwi>3_doubleword): Likewise. |
| (*sub<dwi>3_doubleword_zext): Likewise. |
| (*sub<mode>_1<nf_name>): Likewise. |
| (*subsi_1_zext): Likewise. |
| (*sub<mode>_2): Likewise. |
| (*subsi_2_zext): Likewise. |
| (*subv<mode>4): Likewise. |
| (subv<mode>4_1): Likewise. |
| (*subv<dwi>4_doubleword_1): Likewise. |
| (*subv<mode>4_overflow_1): Likewise. |
| (*subv<mode>4_overflow_2): Likewise. |
| (*sub<mode>_3): Likewise. |
| (*subsi_3_zext): Likewise. |
| (@add<mode>3_carry): Likewise. |
| (*add<mode>3_carry_2): Likewise. |
| (*addsi3_carry_zext): Likewise. |
| (*addsi3_carry_zext_0): Likewise. |
| (*addsi3_carry_zext_0r): Likewise. |
| (addcarry<mode>): Likewise. |
| (*addcarry<mode>_1): Likewise. |
| (@sub<mode>3_carry): Likewise. |
| (*sub<mode>3_carry_2): Likewise. |
| (*subsi3_carry_zext): Likewise. |
| (*subsi3_carry_zext_0): Likewise. |
| (*subsi3_carry_zext_0r): Likewise. |
| (subborrow<mode>): Likewise. |
| (*subborrow<mode>_1): Likewise. |
| (*add<mode>3_cconly_overflow_1): Likewise. |
| (@add<mode>3_cc_overflow_1): Likewise. |
| (*addsi3_zext_cc_overflow_1): Likewise. |
| (*add<mode>3_cconly_overflow_2): Likewise. |
| (*add<mode>3_cc_overflow_2): Likewise. |
| (*addsi3_zext_cc_overflow_2): Likewise. |
| (*mul<mode>3_1<nf_name>): Likewise. |
| (*mulsi3_1_zext<nf_name>): Likewise. |
| (*mulv<mode>4): Likewise. |
| (*mulvhi4): Likewise. |
| (*and<dwi>3_doubleword): Likewise. |
| (*anddi_1<nf_name>): Likewise. |
| (*andsi_1_zext): Likewise. |
| (*andqi_1<nf_name>): Likewise. |
| (*anddi_2): Likewise. |
| (*andsi_2_zext): Likewise. |
| (*andqi_2_maybe_si): Likewise. |
| (*and<mode>_2): Likewise. |
| (*<code><dwi>3_doubleword): Likewise. |
| (*<code><mode>_1<nf_name>): Likewise. |
| (*notxor<mode>_1): Likewise. |
| (*<code>si_1_zext): Likewise. |
| (*<code>si_1_zext_imm): Likewise. |
| (*<code>qi_1<nf_name>): Likewise. |
| (*notxorqi_1): Likewise. |
| (*<code><mode>_2): Likewise. |
| (*<code>si_2_zext): Likewise. |
| (*<code>si_2_zext_imm): Likewise. |
| (*neg<dwi>2_doubleword): Likewise. |
| (*neg<mode>_1<nf_name>): Likewise. |
| (*negsi_1_zext): Likewise. |
| (*neg<mode>_2): Likewise. |
| (*negsi_2_zext): Likewise. |
| (*neg<mode>_ccc_1): Likewise. |
| (*neg<mode>_ccc_2): Likewise. |
| (*one_cmpl<dwi>2_doubleword): Likewise. |
| (*one_cmpl<mode>2_1): Likewise. |
| (*one_cmplsi2_1_zext): Likewise. |
| (*one_cmplqi2_1): Likewise. |
| (*one_cmpl<mode>2_2): Likewise. |
| (*one_cmplsi2_2_zext): Likewise. |
| (*ashl<dwi>3_doubleword_highpart): Likewise. |
| (*ashl<mode>3_1<nf_name>): Likewise. |
| (*ashlsi3_1_zext): Likewise. |
| (*ashlhi3_1<nf_name>): Likewise. |
| (*ashlqi3_1<nf_name>): Likewise. |
| (*ashl<mode>3_cmp): Likewise. |
| (*ashlsi3_cmp_zext): Likewise. |
| (*ashl<mode>3_cconly): Likewise. |
| (ashr<mode>3_cvt<nf_name>): Likewise. |
| (*ashrsi3_cvt_zext): Likewise. |
| (*ashr<mode>3_1<nf_name>): Likewise. |
| (*highpartdisi2): Likewise. |
| (*lshr<mode>3_1<nf_name>): Likewise. |
| (*<insn>si3_1_zext): Likewise. |
| (*lshrqi3_1<nf_name>): Likewise. |
| (*lshrhi3_1<nf_name>): Likewise. |
| (*<insn><mode>3_cmp): Likewise. |
| (*<insn>si3_cmp_zext): Likewise. |
| (*<insn><mode>3_cconly): Likewise. |
| (*<insn><mode>3_1<nf_name>): Likewise. |
| (*<insn>si3_1_zext): Likewise. |
| (rcrsi2): Likewise. |
| (rcrdi2): Likewise. |
| (<insn><mode>3_carry): Likewise. |
| (*mov<mode>cc_noc): Likewise. |
| (*movsicc_noc_zext): Likewise. |
| (*movsicc_noc_zext_1): Likewise. |
| (*addqi3_carry_zext<mode>_0): Likewise. |
| (*addhi3_carry_zext<mode>_0): Likewise. |
| (*addqi3_carry_zext<mode>_0r): Likewise. |
| (*addhi3_carry_zext<mode>_0r): Likewise. |
| (*subqi3_carry_zext<mode>_0): Likewise. |
| (*subhi3_carry_zext<mode>_0): Likewise. |
| (*subqi3_carry_zext<mode>_0r): Likewise. |
| (*subhi3_carry_zext<mode>_0r): Likewise. |
| (*negqi_1_zext<mode><nf_name>): Likewise. |
| (*neghi_1_zext<mode><nf_name>): Likewise. |
| (*one_cmplqi2_1_zext<mode>): Likewise. |
| (*one_cmplhi2_1_zext<mode>): Likewise. |
| (x86_64_shld_ndd<nf_name>): Likewise. |
| (x86_64_shld_ndd_1<nf_name>): Likewise. |
| (x86_shld_ndd<nf_name>): Likewise. |
| (x86_shld_ndd_1<nf_name>): Likewise. |
| (*ashlqi3_1_zext<mode><nf_name>): Likewise. |
| (*ashlhi3_1_zext<mode><nf_name>): Likewise. |
| (x86_64_shrd_ndd<nf_name>): Likewise. |
| (x86_64_shrd_ndd_1<nf_name>): Likewise. |
| (x86_shrd_ndd<nf_name>): Likewise. |
| (x86_shrd_ndd_1<nf_name>): Likewise. |
| (*<insn>qi3_1_zext<mode><nf_name>): Likewise. |
| (*<insn>hi3_1_zext<mode><nf_name>): Likewise. |
| * config/i386/sse.md |
| (*kortest_cmp<mode>_mov<mode>cc): Add |
| preferred_for_speed for NDD memory alternatives. |
| |
| 2026-06-01 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_DISABLE_SETZUCC): New. |
| Enable for m_DIAMONDRAPIDS | m_NOVALAKE. |
| * config/i386/i386.h (TARGET_DISABLE_SETZUCC): New define. |
| * config/i386/i386.md (*setcc_<mode>_zu): Guard with |
| TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC. |
| (*setcc_di_1, *setcc_<mode>_1_movzbl): Guard with |
| (!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC). |
| (*setcc_qi, *setcc_qi_slp): Emit setzucc only when |
| TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC. |
| |
| 2026-06-01 Martin Liska <martin.liska@hey.com> |
| |
| * configure.ac: Declare Wild as capable of LTO bootstrap. |
| * configure: Regenerate. |
| |
| 2026-05-31 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/23471 |
| PR tree-optimization/125513 |
| * range-op-mixed.h (operator_mult): Add op1_op2_relation_effect |
| for 2xirange. |
| * range-op.cc (operator_mult::op1_op2_relation_effect): New function. |
| |
| 2026-05-31 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/123313 |
| * ifcvt.cc (noce_try_store_flag_logical): New function. |
| (noce_process_if_block): Call it. |
| |
| 2026-05-31 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options): Fix overly long URLs. |
| * doc/extend.texi (Specifying the size of an asm on AVR): Dito. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * common.opt: Updated Wstrict-overflow entries to indicate that |
| they do nothing now. |
| * coretypes.h (enum warn_strict_overflow_code): Enum removed. |
| * doc/invoke.texi: Updated Wstrict-overflow entries to indicate |
| that they do nothing now. Also removed the option from the |
| "Warning Options" list. |
| * opts.cc (common_handle_option): Removed OPT_Wstrict_overflow |
| logic. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * flags.h (issue_strict_overflow_warning): Removed. |
| * fold-const.cc (fold_defer_overflow_warnings): Removed. |
| (fold_undefer_overflow_warnings): Removed. |
| (fold_undefer_and_ignore_overflow_warnings): Removed. |
| (fold_deferring_overflow_warnings_p): Removed. |
| * fold-const.h (fold_defer_overflow_warnings): Removed. |
| (fold_undefer_overflow_warnings): Removed. |
| (fold_undefer_and_ignore_overflow_warnings): Removed. |
| (fold_deferring_overflow_warnings_p): Removed. |
| * gimple-fold.cc (fold_stmt_1): Removed |
| fold_*_overflow_warnings uses and all related logic. |
| * passes.cc (verify_interpass_invariants): Likewise. |
| (execute_one_ipa_transform_pass): Likewise. |
| (execute_one_pass): Likewise. |
| * tree-cfgcleanup.cc (cleanup_control_expr_graph): Likewise. |
| * tree-data-ref.cc (create_runtime_alias_checks): Likewise. |
| * tree-ssa-ccp.cc (evaluate_stmt): Likewise. |
| * tree-ssa-forwprop.cc (combine_cond_expr_cond): Likewise. |
| * tree-ssa-loop-niter.cc (expand_simple_operations): Likewise. |
| (number_of_iterations_exit_assumptions): Likewise. |
| (loop_niter_by_eval): Likewise. |
| (estimate_numbers_of_iterations): Likewise. |
| (loop_exits_before_overflow): Likewise. |
| * tree-ssa-threadedge.cc: Likewise. |
| * tree-vrp.cc (compare_values): Likewise. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * tree-ssa-loop-ch.cc (ch_base::copy_headers): Removed |
| warn_strict_overflow logic. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * expr.cc (maybe_optimize_sub_cmp_0): Removed warning_at () call |
| for Wstrict-overflow comparison. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * tree-vrp.cc (compare_values_warnv): Removed. |
| (compare_values): Changed to do the same thing as the former |
| compare_values_warn but without the strict_overflow_p logic. |
| * tree-vrp.h (compare_values_warnv): Removed. |
| * vr-values.cc (test_for_singularity): Removed the |
| supress_warning logic that was used by compare_values_warnv. |
| |
| 2026-05-31 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * tree-ssa-reassoc.cc (init_range_entry): Removed |
| strict_overflow_p use. |
| (force_into_ssa_name): Likewise. |
| (update_range_test): Removed strict_overflow_p from function |
| signature, along with the flag associated logic and the |
| warning_at call. |
| (optimize_range_tests_xor): Removed strict_overflow_p use. |
| (optimize_range_tests_diff): Likewise. |
| (optimize_range_tests_to_bit_test): Likewise. |
| (optimize_range_tests_cmp_bitwise): Likewise. |
| (optimize_range_tests_var_bound): Removed strict_overflow_p from |
| function signature, along with the flag associated logic and the |
| warning_at call. |
| (optimize_range_tests): Removed strict_overflow_p use. |
| * tree-ssa-reassoc.h (struct range_entry): Removed |
| strict_overflow_p flag. |
| |
| 2026-05-31 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_length_of_asm): Support "nl" as |
| the number of lines in the code template. |
| * doc/extend.texi (Size of an asm): Document [[len=nl]]. |
| Simplify the description of the default length. |
| |
| 2026-05-31 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.cc (pa_trampoline_init): Rework to use |
| clear_cache pattern. |
| * config/pa/pa.md (dcacheflush): Use "<<" condition instead |
| of "<<=". |
| (icacheflush): Remove. |
| (icacheflush1, icacheflush2, icacheflush3): New flush patterns |
| for PA 1.x targets, PA 2.0 targets, and PA 1.x no space |
| register targets. |
| (clear_cache): Rework to flush data and instruction caches. |
| Skip flush if the start address is greater than or equal to |
| the end address. Don't align the end address to a cacheline |
| boundary. Handle instruction flushes for PA 1.x targets, |
| PA 2.0 targets, and PA 1.x no space register targets. |
| |
| 2026-05-30 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Avoid |
| constant-logical diagnostic. |
| |
| 2026-05-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (insvsi_intermal): |
| Rename from 'insvsi'. |
| (insvsi): New expansion pattern that also addresses situations |
| where the DEPBITS machine instruction is unavailable. |
| |
| 2026-05-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (*splice_bits): |
| Remove. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * builtins.def: Reflow long line. |
| * graphite-isl-ast-to-gimple.cc (graphite_copy_stmts_from_block): Likewise. |
| * lto-streamer.h: Likewise. |
| * prime-paths.cc (struct xpair): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Fix typos. |
| (vect_preserves_scalar_order_p): Likewise. |
| (vect_slp_analyze_instance_dependence): Likewise. |
| (vect_enhance_data_refs_alignment): Likewise. |
| (vect_check_gather_scatter): Likewise. |
| (vect_grouped_store_supported): Likewise. |
| * tree-vect-generic.cc (type_for_widest_vector_mode): Likewise. |
| * tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors_avx512): Likewise. |
| (get_live_virtual_operand_on_edge): Likewise. |
| (vect_can_peel_nonlinear_iv_p): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-loop.cc (vec_init_loop_exit_info): Likewise. |
| (vect_verify_full_masking_avx512): Likewise. |
| (vect_verify_loop_lens): Likewise. |
| (vect_analyze_loop_costing): Likewise. |
| (vect_analyze_loop_2): Likewise. |
| (vect_analyze_loop): Likewise. |
| (vect_is_simple_reduction): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_lane_reducing): Likewise. |
| (vectorizable_reduction): Likewise. |
| (vectorizable_live_operation): Likewise. |
| (vect_record_loop_len): Likewise. |
| (scale_profile_for_vect_loop): Likewise. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise. |
| * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Likewise. |
| (vect_recog_build_binary_gimple_stmt): Likewise. |
| (vect_recog_sat_sub_pattern_transform): Likewise. |
| (vect_recog_sat_sub_pattern): Likewise. |
| (add_code_for_floorceilround_divmod): Likewise. |
| (vect_recog_bool_pattern): Likewise. |
| (struct vect_recog_func): Likewise. |
| * tree-vect-slp-patterns.cc (class complex_pattern): Likewise. |
| (compatible_complex_nodes_p): Likewise. |
| * tree-vect-slp.cc (vect_slp_tree_uniform_p): Likewise. |
| (vect_def_types_match): Likewise. |
| (vect_record_max_nunits): Likewise. |
| (vect_analyze_slp_instance): Likewise. |
| (vect_lower_load_permutations): Likewise. |
| (vect_optimize_slp_pass::is_compatible_layout): Likewise. |
| * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Likewise. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_early_exit): Likewise. |
| * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost): Likewise. |
| * tree-vectorizer.h (enum vect_reduction_type): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * tree-ssa-alias-compare.h: Fix typos. |
| * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Likewise. |
| (ao_ref_alignment): Likewise. |
| (component_ref_to_zero_sized_trailing_array_p): Likewise. |
| (access_path_may_continue_p): Likewise. |
| (nonoverlapping_component_refs_p_1): Likewise. |
| (nonoverlapping_array_refs_p): Likewise. |
| (refs_may_alias_p_2): Likewise. |
| (ref_maybe_used_by_call_p_1): Likewise. |
| (stmt_kills_ref_p): Likewise. |
| * tree-ssa-ccp.cc: Likewise. |
| * tree-ssa-dce.cc (mark_all_reaching_defs_necessary_1): Likewise. |
| (propagate_necessity): Likewise. |
| (propagate_counts): Likewise. |
| (eliminate_unnecessary_stmts): Likewise. |
| * tree-ssa-dom.cc (pass_dominator::execute): Likewise. |
| * tree-ssa-dse.cc: Likewise. |
| * tree-ssa-forwprop.cc (new_src_based_on_copy): Likewise. |
| (optimize_agr_copyprop_1): Likewise. |
| (pass_forwprop::execute): Likewise. |
| * tree-ssa-ifcombine.cc (tree_ssa_ifcombine_bb_1): Likewise. |
| (pass_tree_ifcombine::execute): Likewise. |
| * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise. |
| * tree-ssa-loop-ch.cc (loop_combined_static_and_iv_p): Likewise. |
| (should_duplicate_loop_header_p): Likewise. |
| * tree-ssa-loop-im.cc (get_coldest_out_loop): Likewise. |
| (determine_max_movement): Likewise. |
| (execute_sm_exit): Likewise. |
| (hoist_memory_references): Likewise. |
| * tree-ssa-loop-ivcanon.cc (constant_after_peeling): Likewise. |
| (loop_edge_to_cancel): Likewise. |
| (unloop_loops): Likewise. |
| (try_unroll_loop_completely): Likewise. |
| (adjust_loop_info_after_peeling): Likewise. |
| (tree_unroll_loops_completely_1): Likewise. |
| * tree-ssa-loop-ivopts.cc (struct iv_inv_expr_ent): Likewise. |
| (dump_cand): Likewise. |
| (group_compare_offset): Likewise. |
| (split_address_groups): Likewise. |
| (get_computation_aff_1): Likewise. |
| (iv_ca_dump): Likewise. |
| * tree-ssa-loop-niter.cc (number_of_iterations_ne): Likewise. |
| (number_of_iterations_popcount): Likewise. |
| (idx_infer_loop_bounds): Likewise. |
| (infer_loop_bounds_from_signedness): Likewise. |
| (discover_iteration_bound_by_body_walk): Likewise. |
| (loop_exits_before_overflow): Likewise. |
| * tree-ssa-loop-niter.h: Likewise. |
| * tree-ssa-loop-prefetch.cc (should_issue_prefetch_p): Likewise. |
| (schedule_prefetches): Likewise. |
| * tree-ssa-loop-split.cc (split_loop): Likewise. |
| (find_vdef_in_loop): Likewise. |
| (get_cond_branch_to_split_loop): Likewise. |
| * tree-ssa-math-opts.cc (powi_as_mults): Likewise. |
| (expand_pow_as_sqrts): Likewise. |
| (gimple_expand_builtin_pow): Likewise. |
| (convert_mult_to_widen): Likewise. |
| (convert_plusminus_to_widen): Likewise. |
| * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Likewise. |
| (factor_out_conditional_operation): Likewise. |
| (cond_if_else_store_replacement_1): Likewise. |
| (execute_over_cond_phis): Likewise. |
| * tree-ssa-phiprop.cc (can_handle_load): Likewise. |
| (propagate_with_phi): Likewise. |
| * tree-ssa-pre.cc (get_or_alloc_expr_for_nary): Likewise. |
| (sorted_array_from_bitmap_set): Likewise. |
| (value_dies_in_block_x): Likewise. |
| (compute_antic_aux): Likewise. |
| * tree-ssa-propagate.cc (substitute_and_fold_engine::substitute_and_fold): Likewise. |
| * tree-ssa-reassoc.cc (get_rank): Likewise. |
| (remove_visited_stmt_chain): Likewise. |
| * tree-ssa-sccvn.cc (vn_reference_eq): Likewise. |
| (vn_reference_lookup_call): Likewise. |
| (vn_nary_op_eq): Likewise. |
| (vn_nary_op_insert_into): Likewise. |
| (visit_reference_op_call): Likewise. |
| (visit_phi): Likewise. |
| (eliminate_dom_walker::eliminate_stmt): Likewise. |
| (eliminate_dom_walker::eliminate_cleanup): Likewise. |
| (process_bb): Likewise. |
| * tree-ssa-scopedtables.cc (hashable_expr_equal_p): Likewise. |
| * tree-ssa-structalias.cc (determine_global_memory_access): Likewise. |
| (clear_dependence_clique): Likewise. |
| * tree-ssa-threadbackward.cc (back_threader_profitability::profitable_path_p): Likewise. |
| * tree-ssa-threadedge.cc (propagate_threaded_block_debug_into): Likewise. |
| * tree-ssa-uninit.cc (warn_uninit): Likewise. |
| (execute_late_warn_uninitialized): Likewise. |
| * tree-ssanames.cc (range_info_get_range): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * tree-assume.cc (assume_query::calculate_phi): Fix typos. |
| * tree-cfg.cc (assign_discriminators): Likewise. |
| (stmt_starts_bb_p): Likewise. |
| (move_stmt_op): Likewise. |
| (ifconvertable_edge): Likewise. |
| * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Likewise. |
| (cleanup_tree_cfg_noloop): Likewise. |
| * tree-chrec.cc (scev_is_linear_expression): Likewise. |
| * tree-complex.cc (expand_complex_div_wide): Likewise. |
| * tree-core.h (enum built_in_class): Likewise. |
| * tree-data-ref.cc (dump_alias_pair): Likewise. |
| (create_ifn_alias_checks): Likewise. |
| * tree-data-ref.h (struct data_dependence_relation): Likewise. |
| * tree-eh.cc (lower_try_finally_fallthru_label): Likewise. |
| (lower_eh_dispatch): Likewise. |
| * tree-if-conv.cc (idx_within_array_bound): Likewise. |
| (base_object_writable): Likewise. |
| (ifcvt_memrefs_wont_trap): Likewise. |
| (get_loop_body_in_if_conv_order): Likewise. |
| (predicate_scalar_phi): Likewise. |
| * tree-inline.cc (remap_type_1): Likewise. |
| (declare_return_variable): Likewise. |
| (inline_forbidden_p): Likewise. |
| (estimate_num_insns): Likewise. |
| (copy_decl_for_dup_finish): Likewise. |
| * tree-into-ssa.cc (get_ssa_name_ann): Likewise. |
| (clear_ssa_name_info): Likewise. |
| (insert_updated_phi_nodes_compare_uids): Likewise. |
| (update_ssa): Likewise. |
| * tree-loop-distribution.cc (enum partition_kind): Likewise. |
| (struct partition): Likewise. |
| (class loop_distribution): Likewise. |
| (loop_distribution::classify_partition): Likewise. |
| (loop_distribution::pg_add_dependence_edges): Likewise. |
| (add_partition_graph_edge): Likewise. |
| (free_partition_graph_vdata): Likewise. |
| (pg_unmark_merged_alias_ddrs): Likewise. |
| (version_loop_by_alias_check): Likewise. |
| * tree-object-size.cc (gimplify_size_expressions): Likewise. |
| (object_sizes_execute): Likewise. |
| * tree-parloops.cc (parloops_is_simple_reduction): Likewise. |
| (transform_to_exit_first_loop_alt): Likewise. |
| * tree-predcom.cc (pcom_worker::suitable_component_p): Likewise. |
| (pcom_worker::determine_roots_comp): Likewise. |
| (prepare_initializers_chain_store_elim): Likewise. |
| (pcom_worker::tree_predictive_commoning_loop): Likewise. |
| * tree-profile.cc (condition_uid): Likewise. |
| (cov_length): Likewise. |
| (tree_profiling): Likewise. |
| * tree-scalar-evolution.cc (scev_dfs::add_to_evolution_1): Likewise. |
| (scev_reset): Likewise. |
| (expression_expensive_p): Likewise. |
| * tree-sra.cc (struct access): Likewise. |
| (build_access_from_call_arg): Likewise. |
| (path_comparable_for_same_access): Likewise. |
| (child_would_conflict_in_acc): Likewise. |
| (sra_modify_call_arg): Likewise. |
| * tree-switch-conversion.cc (can_log2): Likewise. |
| (switch_conversion::exp_index_transform): Likewise. |
| * tree-switch-conversion.h (enum cluster_type): Likewise. |
| * tree-vrp.cc (remove_unreachable::handle_early): Likewise. |
| * tree.cc (build5): Likewise. |
| (get_file_function_name): Likewise. |
| (build_opaque_vector_type): Likewise. |
| (array_ref_flexible_size_p): Likewise. |
| (verify_type_variant): Likewise. |
| (gimple_canonical_types_compatible_p): Likewise. |
| * tree.h (decl_debug_args_insert): Likewise. |
| (strip_pointer_types): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * rtl-ssa/access-utils.h (drop_memory_access): Fix typos. |
| * rtl-ssa/accesses.cc (clobber_info::recompute_group): Likewise. |
| * rtl-ssa/accesses.h: Likewise. |
| * rtl-ssa/blocks.cc (function_info::add_artificial_accesses): Likewise. |
| * rtl-ssa/functions.h: Likewise. |
| * rtl-ssa/insns.cc (function_info::record_use): Likewise. |
| * rtl-ssa/insns.h: Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * lto-cgraph.cc (get_alias_symbol): Fix typos. |
| (input_node): Likewise. |
| (input_varpool_node): Likewise. |
| * lto-ltrans-cache.cc: Likewise. |
| * lto-streamer-in.cc (lto_location_cache::revert_location_cache): Likewise. |
| (lto_location_cache::input_location_and_block): Likewise. |
| (lto_location_cache::input_location): Likewise. |
| (lto_input_location): Likewise. |
| * lto-streamer-out.cc (lto_variably_modified_type_p): Likewise. |
| (lto_is_streamable): Likewise. |
| (DFS::DFS): Likewise. |
| (cmp_symbol_files): Likewise. |
| (lto_output): Likewise. |
| * lto-streamer.h (enum LTO_tags): Likewise. |
| * lto-wrapper.cc (merge_flto_options): Likewise. |
| (run_gcc): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * ipa-comdats.cc: Fix typos. |
| * ipa-cp.cc (good_cloning_opportunity_p): Likewise. |
| (dump_profile_updates): Likewise. |
| (update_counts_for_self_gen_clones): Likewise. |
| (update_profiling_info): Likewise. |
| (adjust_refs_in_act_callers): Likewise. |
| (struct cloning_opportunity_ranking): Likewise. |
| * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Likewise. |
| (unmodified_parm_or_parm_agg_item): Likewise. |
| (guards_builtin_unreachable): Likewise. |
| (analyze_function_body): Likewise. |
| (estimate_edge_devirt_benefit): Likewise. |
| * ipa-fnsummary.h (cross_module_call_p): Likewise. |
| * ipa-free-lang-data.cc (fld_simplified_type_name): Likewise. |
| (free_lang_data_in_decl): Likewise. |
| * ipa-icf-gimple.cc (func_checker::compare_decl): Likewise. |
| (func_checker::compatible_types_p): Likewise. |
| (func_checker::compare_gimple_asm): Likewise. |
| * ipa-icf.cc (sem_function::hash_stmt): Likewise. |
| (sem_item_optimizer::subdivide_classes_by_equality): Likewise. |
| (sem_item_optimizer::traverse_congruence_split): Likewise. |
| (sem_item_optimizer::process_cong_reduction): Likewise. |
| * ipa-inline-transform.cc (mark_all_inlined_calls_cdtor): Likewise. |
| (preserve_function_body_p): Likewise. |
| * ipa-inline.cc (enum can_inline_edge_by_limits_flags): Likewise. |
| (can_early_inline_edge_p): Likewise. |
| (early_inliner): Likewise. |
| * ipa-locality-cloning.cc (edge_redirectable_p): Likewise. |
| (clone_node_as_needed): Likewise. |
| (partition_callchain): Likewise. |
| * ipa-modref.cc (modref_eaf_analysis::merge_with_ssa_name): Likewise. |
| * ipa-param-manipulation.cc (ipa_param_adjustments::get_surviving_params): Likewise. |
| (purge_all_uses): Likewise. |
| (ipa_param_body_adjustments::mark_dead_statements): Likewise. |
| (replace_with_mapped_expr): Likewise. |
| (ipa_param_body_adjustments::get_new_param_chain): Likewise. |
| (record_argument_state): Likewise. |
| (ipa_param_body_adjustments::perform_cfun_body_modifications): Likewise. |
| * ipa-param-manipulation.h (struct ipa_replace_map): Likewise. |
| * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::combine_with): Likewise. |
| * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Likewise. |
| (noted_fnptr_hasher::equal): Likewise. |
| (ipa_set_ancestor_jf): Likewise. |
| (check_stmt_for_type_change): Likewise. |
| (param_type_may_change_p): Likewise. |
| (find_dominating_aa_status): Likewise. |
| (parm_ref_data_pass_through_p): Likewise. |
| (build_agg_jump_func_from_list): Likewise. |
| (analyze_agg_content_value): Likewise. |
| (ipa_single_noted_fnptr_in_record): Likewise. |
| (ipa_make_edge_direct_to_target): Likewise. |
| (combine_controlled_uses_counters): Likewise. |
| (ipa_duplicate_jump_function): Likewise. |
| (ipa_write_jump_function): Likewise. |
| (useful_ipcp_transformation_info_p): Likewise. |
| * ipa-prop.h (struct GTY): Likewise. |
| * ipa-reference.cc (ipa_reference_var_uid): Likewise. |
| (ipa_reference_get_written_global): Likewise. |
| (union_static_var_sets): Likewise. |
| * ipa-split.cc (split_function): Likewise. |
| * ipa-sra.cc (isra_track_scalar_value_uses): Likewise. |
| (process_scan_results): Likewise. |
| (flip_all_hints_pessimistic): Likewise. |
| (flip_all_param_hints_pessimistic): Likewise. |
| * ipa-strub.cc (get_strub_mode_attr_parm): Likewise. |
| (compute_strub_mode): Likewise. |
| * ipa-utils.cc (ipa_merge_profiles): Likewise. |
| (recursive_call_p): Likewise. |
| (stmt_may_terminate_function_p): Likewise. |
| (find_always_executed_bbs): Likewise. |
| * ipa-utils.h (type_with_linkage_p): Likewise. |
| (lto_streaming_expected_p): Likewise. |
| * ipa-visibility.cc (varpool_node::externally_visible_p): Likewise. |
| * ipa.cc (update_inlined_to_pointer): Likewise. |
| (enqueue_node): Likewise. |
| (process_references): Likewise. |
| (set_readonly_bit): Likewise. |
| (clear_addressable_bit): Likewise. |
| (BOTTOM): Likewise. |
| (propagate_single_user): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * gimple-array-bounds.cc (trailing_array): Fix typos. |
| * gimple-crc-optimization.cc (crc_optimization::set_defs): Likewise. |
| * gimple-fold.cc (get_range_strlen): Likewise. |
| (can_refer_decl_in_current_unit_p): Likewise. |
| (gimple_fold_builtin_bcopy): Likewise. |
| (get_range_strlen_tree): Likewise. |
| (gimple_fold_builtin_stpcpy): Likewise. |
| (fold_stmt_1): Likewise. |
| (fold_truth_andor_for_ifcombine): Likewise. |
| (gimple_fold_stmt_to_constant): Likewise. |
| (fold_const_aggregate_ref): Likewise. |
| (gimple_get_virt_method_for_vtable): Likewise. |
| (rewrite_to_defined_unconditional): Likewise. |
| (gimple_build): Likewise. |
| (gimple_convert): Likewise. |
| * gimple-harden-control-flow.cc (pass_harden_control_flow_redundancy::execute): Likewise. |
| * gimple-loop-interchange.cc (loop_cand::can_interchange_p): Likewise. |
| (loop_cand::analyze_lcssa_phis): Likewise. |
| (should_interchange_loops): Likewise. |
| * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Likewise. |
| * gimple-low.cc (find_assumption_locals_r): Likewise. |
| * gimple-match-exports.cc (try_conditional_simplification): Likewise. |
| * gimple-predicate-analysis.cc (find_matching_predicate_in_rest_chains): Likewise. |
| (uninit_analysis::func_t::phi_arg_set): Likewise. |
| (predicate::dump): Likewise. |
| * gimple-predicate-analysis.h (class uninit_analysis): Likewise. |
| * gimple-range-cache.cc (sbr_vector::bb_range_p): Likewise. |
| (block_range_cache::set_bb_range): Likewise. |
| * gimple-range-gori.cc (gori_compute::compute_operand_range): Likewise. |
| (gori_stmt_info::gori_stmt_info): Likewise. |
| (gori_calc_operands): Likewise. |
| (gori_on_edge): Likewise. |
| (gori_name_helper): Likewise. |
| * gimple-range-infer.h: Likewise. |
| * gimple-range-phi.cc (phi_group::phi_group): Likewise. |
| (phi_group::calculate_using_modifier): Likewise. |
| (phi_analyzer::operator[]): Likewise. |
| * gimple-range-phi.h: Likewise. |
| * gimple-range.cc (dom_ranger::range_of_stmt): Likewise. |
| * gimple-ssa-isolate-paths.cc (is_addr_local): Likewise. |
| (warn_return_addr_local): Likewise. |
| * gimple-ssa-pta-constraints.cc (get_constraint_for_ssa_var): Likewise. |
| (find_func_clobbers): Likewise. |
| (create_variable_info_for): Likewise. |
| (associate_varinfo_to_alias): Likewise. |
| * gimple-ssa-sccopy.cc: Likewise. |
| * gimple-ssa-split-paths.cc (count_stmts_in_block): Likewise. |
| (poor_ifcvt_pred): Likewise. |
| (is_feasible_trace): Likewise. |
| * gimple-ssa-sprintf.cc (get_int_range): Likewise. |
| (handle_printf_call): Likewise. |
| * gimple-ssa-store-merging.cc (get_location_for_stmts): Likewise. |
| * gimple-ssa-strength-reduction.cc: Likewise. |
| * gimple-ssa-warn-access.cc (call_arg): Likewise. |
| * gimple-ssa-warn-restrict.cc (builtin_memref::offset_out_of_bounds): Likewise. |
| (builtin_access::overlap_size): Likewise. |
| (maybe_diag_access_bounds): Likewise. |
| * gimple.def (GIMPLE_PHI): Likewise. |
| * gimple.h (gimple_goto_dest): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * genattrtab.cc (min_fn): Fix typos. |
| (get_attr_order): Likewise. |
| (optimize_attrs): Likewise. |
| * genautomata.cc (struct unit_usage): Likewise. |
| * gengtype-state.cc (s_expr_writer::write_any_indent): Likewise. |
| (write_state): Likewise. |
| * gengtype.cc (struct file_rule_st): Likewise. |
| (walk_type): Likewise. |
| (write_roots): Likewise. |
| * genmatch.cc (expr::gen_transform): Likewise. |
| (usage): Likewise. |
| * genopinit.cc (open_outfile): Likewise. |
| (handle_overloaded_code_for): Likewise. |
| (main): Likewise. |
| * genoutput.cc (operand_data_hasher::equal): Likewise. |
| * genpreds.cc (FOR_ALL_CONSTRAINTS): Likewise. |
| * genrecog.cc (prune_invalid_results): Likewise. |
| (split_out_patterns): Likewise. |
| * gensupport.cc (parse_section): Likewise. |
| (convert_syntax): Likewise. |
| (mark_operands_from_match_dup): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * sanopt.cc: Fix typos. |
| * sched-deps.cc (sched_analyze_2): Likewise. |
| * sel-sched-ir.cc (alloc_target_context): Likewise. |
| (av_set_union_and_live): Likewise. |
| (make_regions_from_loop_nest): Likewise. |
| * sel-sched-ir.h (struct _list_iterator): Likewise. |
| (struct succs_info): Likewise. |
| (SUCCS_ALL): Likewise. |
| * sel-sched.cc (moveup_expr): Likewise. |
| (moveup_expr_cached): Likewise. |
| (get_spec_check_type_for_insn): Likewise. |
| (get_expr_cost): Likewise. |
| (find_place_for_bookkeeping): Likewise. |
| (update_and_record_unavailable_insns): Likewise. |
| (move_op_at_first_insn): Likewise. |
| (calculate_new_fences): Likewise. |
| * shrink-wrap.cc (live_edge_for_reg): Likewise. |
| (try_shrink_wrapping): Likewise. |
| * simplify-rtx.cc |
| (simplify_context::simplify_logical_relational_operation): Likewise. |
| (simplify_const_vector_subreg): Likewise. |
| * spellcheck.cc (assert_not_suggested_for): Likewise. |
| * stringpool.h: Likewise. |
| * sym-exec/sym-exec-state.cc (state::do_shift_right): Likewise. |
| (state::get_parent_with_const_child): Likewise. |
| (state::add_numbers): Likewise. |
| (state::add_equal_cond): Likewise. |
| (state::add_not_equal_cond): Likewise. |
| * sym-exec/sym-exec-state.h (class state): Likewise. |
| * symbol-summary.h: Likewise. |
| * symtab.cc (symtab_node::noninterposable_alias): Likewise. |
| (symtab_node::equal_address_to): Likewise. |
| * system.h (gcc_stablesort_r): Likewise. |
| * target-hooks-macros.h: Likewise. |
| * target.def: Likewise. |
| * targhooks.cc (default_floatn_mode): Likewise. |
| (default_floatn_builtin_p): Likewise. |
| (default_builtin_vector_alignment_reachable): Likewise. |
| (default_addr_space_for_artificial_rodata): Likewise. |
| * text-art/ruler.cc (x_ruler::update_layout): Likewise. |
| * text-art/ruler.h (class x_ruler): Likewise. |
| * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): Likewise. |
| * trans-mem.cc (ipa_tm_scan_irr_block): Likewise. |
| (ipa_tm_execute): Likewise. |
| * typed-splay-tree.h (class typed_splay_tree): Likewise. |
| * ubsan.cc (instrument_bool_enum_load): Likewise. |
| * value-prof.cc: Likewise. |
| * value-range.cc (irange::union_append): Likewise. |
| (irange::snap): Likewise. |
| (irange::snap_subranges): Likewise. |
| (irange::get_bitmask): Likewise. |
| * value-range.h (irange_bitmask::get_precision): Likewise. |
| * value-relation.cc (dom_oracle::next_relation): Likewise. |
| (block_relation_iterator::block_relation_iterator): Likewise. |
| * var-tracking.cc (shared_hash_find): Likewise. |
| (emit_note_insn_var_location): Likewise. |
| * varasm.cc (mergeable_constant_section): Likewise. |
| (finish_tm_clone_pairs): Likewise. |
| (default_binds_local_p_3): Likewise. |
| * vr-values.cc (simplify_using_ranges::simplify): Likewise. |
| * vtable-verify.cc: Likewise. |
| * warning-control.cc (has_warning_spec): Likewise. |
| * wide-int.cc (wi::from_mpz): Likewise. |
| (wi::force_to_size): Likewise. |
| (wi::divmod_internal): Likewise. |
| * wide-int.h (wi::bitreverse): Likewise. |
| (wi::umin): Likewise. |
| (wi::mul_high): Likewise. |
| (wi::div_trunc): Likewise. |
| (wi::sdiv_trunc): Likewise. |
| (wi::udiv_trunc): Likewise. |
| (wi::div_floor): Likewise. |
| (wi::sdiv_floor): Likewise. |
| (wi::udiv_floor): Likewise. |
| (wi::div_ceil): Likewise. |
| (wi::udiv_ceil): Likewise. |
| (wi::div_round): Likewise. |
| (wi::gcd): Likewise. |
| (wi::mod_trunc): Likewise. |
| (wi::smod_trunc): Likewise. |
| (wi::umod_trunc): Likewise. |
| (wi::mod_floor): Likewise. |
| (wi::umod_floor): Likewise. |
| (wi::mod_ceil): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * omp-expand.cc (expand_oacc_collapse_vars): Likewise. |
| (expand_omp_for_init_vars): Likewise. |
| (expand_omp_for): Likewise. |
| (expand_omp_atomic_fetch_op): Likewise. |
| (build_omp_regions_1): Likewise. |
| * omp-general.cc (omp_is_allocatable_or_ptr): Likewise. |
| * omp-low.cc (lower_rec_input_clauses): Likewise. |
| (lower_omp): Likewise. |
| * omp-offload.cc (oacc_validate_dims): Likewise. |
| (oacc_loop_process): Likewise. |
| (oacc_loop_fixed_partitions): Likewise. |
| (oacc_loop_auto_partitions): Likewise. |
| (execute_oacc_device_lower): Likewise. |
| * omp-simd-clone.cc (simd_clone_clauses_extract): Likewise. |
| (ipa_simd_modify_stmt_ops): Likewise. |
| * optabs-query.cc (lshift_cheap_p): Likewise. |
| * optabs-query.h (trapv_binoptab_p): Likewise. |
| (get_vec_cmp_icode): Likewise. |
| * optabs.cc (expand_binop): Likewise. |
| (expand_vec_perm_var): Likewise. |
| (expand_compare_and_swap_loop): Likewise. |
| (expand_atomic_load): Likewise. |
| (maybe_optimize_fetch_op): Likewise. |
| (can_reuse_operands_p): Likewise. |
| * opts-global.cc (init_options_once): Likewise. |
| * opts.h (struct cl_option): Likewise. |
| * pair-fusion.cc (pair_fusion_bb_info::try_fuse_pair): Likewise. |
| * pair-fusion.h (enum class): Likewise. |
| * passes.cc (account_profile_1): Likewise. |
| * path-coverage.cc (instrument_prime_paths): Likewise. |
| * plugin.cc (get_event_last): Likewise. |
| * pointer-query.cc (handle_min_max_size): Likewise. |
| (handle_array_ref): Likewise. |
| (handle_ssa_name): Likewise. |
| * poly-int.h (struct if_lossless): Likewise. |
| (POLY_POLY_COEFF): Likewise. |
| * postreload-gcse.cc (gcse_after_reload_main): Likewise. |
| * predict.cc (expr_expected_value_1): Likewise. |
| (is_exit_with_zero_arg): Likewise. |
| (predict_paths_for_bb): Likewise. |
| (estimate_bb_frequencies): Likewise. |
| (rebuild_frequencies): Likewise. |
| (make_pass_rebuild_frequencies): Likewise. |
| * pretty-print-format-impl.h: Likewise. |
| * pretty-print.h: Likewise. |
| * prime-paths.cc (struct xpair): Likewise. |
| (edge_matrix): Likewise. |
| (test_build_ccfg): Likewise. |
| * print-rtl.cc (rtx_writer::print_rtx_operand_code_r): Likewise. |
| * profile-count.h (class profile_probability): Likewise. |
| * pta-andersen.cc (merge_node_constraints): Likewise. |
| (add_graph_edge): Likewise. |
| * range-op.cc (bool): Likewise. |
| (operator_cast::op1_range): Likewise. |
| (operator_bitwise_and::wi_fold): Likewise. |
| (operator_bitwise_and::op1_range): Likewise. |
| * range-op.h: Likewise. |
| * read-md.h (class md_reader): Likewise. |
| * read-rtl-function.cc (lookup_reg_by_dump_name): Likewise. |
| * real.cc: Likewise. |
| * recog.h: Likewise. |
| * ree.cc (find_and_remove_re): Likewise. |
| * reg-notes.def (REG_CFA_NOTE): Likewise. |
| * reginfo.cc (reg_allocno_class): Likewise. |
| * reload1.cc (will_delete_init_insn_p): Likewise. |
| (emit_reload_insns): Likewise. |
| * resource.cc (mark_referenced_resources): Likewise. |
| (mark_target_live_regs): Likewise. |
| * rtl.def (DEFINE_SPECIAL_PREDICATE): Likewise. |
| (COND): Likewise. |
| (DEFINE_SUBST): Likewise. |
| * rtl.h (const_vec_series_p_1): Likewise. |
| (const_vec_series_p): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * emit-rtl.h (struct rtl_data): Fix typos. |
| (struct address_reload_context): Likewise. |
| * explow.cc (anti_adjust_stack_and_probe): Likewise. |
| * explow.h (anti_adjust_stack_and_probe_stack_clash): Likewise. |
| * expmed.cc (store_bit_field_using_insv): Likewise. |
| (expand_mult): Likewise. |
| (emit_store_flag_force): Likewise. |
| (equivalent_cmp_code): Likewise. |
| * expr.cc (class op_by_pieces_d): Likewise. |
| (op_by_pieces_d::run): Likewise. |
| (use_group_regs): Likewise. |
| (get_def_for_expr): Likewise. |
| (emit_move_insn): Likewise. |
| (expand_expr_real): Likewise. |
| (expand_expr_real_gassign): Likewise. |
| * ext-dce.cc (ext_dce_process_uses): Likewise. |
| (ext_dce_process_bb): Likewise. |
| (ext_dce_rd_confluence_n): Likewise. |
| * fibonacci_heap.h (fibonacci_heap::cut): Likewise. |
| * fold-const.cc (combine_comparisons): Likewise. |
| (operand_compare::operand_equal_p): Likewise. |
| (fold_view_convert_vector_encoding): Likewise. |
| (fold_truth_andor): Likewise. |
| * fold-const.h: Likewise. |
| * function.cc (temp_address_hasher::equal): Likewise. |
| (gen_call_used_regs_seq): Likewise. |
| * gcc-diagnostic-spec.cc (GTY): Likewise. |
| (warning_suppressed_at): Likewise. |
| * gcc.cc (driver::maybe_run_linker): Likewise. |
| * gcov.cc (print_usage): Likewise. |
| (strip_extention): Likewise. |
| * gdbhooks.py: Likewise. |
| * gimplify.cc (gimplify_decl_expr): Likewise. |
| (gimplify_modify_expr): Likewise. |
| (oacc_default_clause): Likewise. |
| (omp_notice_variable): Likewise. |
| * graph.cc (draw_cfg_nodes): Likewise. |
| * graphite-dependences.cc (scop_get_reads_and_writes): Likewise. |
| * graphite-isl-ast-to-gimple.cc (graphite_copy_stmts_from_block): Likewise. |
| * haifa-sched.cc (model_set_excess_costs): Likewise. |
| (analyze_set_insn_for_autopref): Likewise. |
| (autopref_multipass_dfa_lookahead_guard): Likewise. |
| * hash-map-traits.h (HASH_MAP_TRAITS_H): Likewise. |
| * hosthooks.h (struct host_hooks): Likewise. |
| * ifcvt.cc (noce_try_sign_bit_splat): Likewise. |
| * input.cc (line_table_test::line_table_test): Likewise. |
| * internal-fn.def (PHI): Likewise. |
| * internal-fn.h (enum ifn_goacc_loop_kind): Likewise. |
| * ira-build.cc (create_insn_allocnos): Likewise. |
| * ira-color.cc (ira_mark_new_stack_slot): Likewise. |
| * ira-int.h: Likewise. |
| * ira.cc (struct sloc): Likewise. |
| * json-parsing.cc (parser::require_one_of): Likewise. |
| * langhooks.h (struct lang_hooks_for_decls): Likewise. |
| * libgdiagnostics.cc: Likewise. |
| * libgdiagnostics.h (diagnostic_manager_write_patch): Likewise. |
| * loop-invariant.cc (MAX_CANON_ADDR_PARTS): Likewise. |
| * lra-assigns.cc (reload_pseudo_compare_func): Likewise. |
| * lra-constraints.cc (match_reload): Likewise. |
| (process_alt_operands): Likewise. |
| (process_address_1): Likewise. |
| (lra_constraints): Likewise. |
| (inherit_in_ebb): Likewise. |
| * lra-eliminations.cc (init_elim_table): Likewise. |
| * lra-remat.cc: Likewise. |
| * machmode.h (struct int_n_data_t): Likewise. |
| * mem-stats.h (mem_alloc_description::register_descriptor): Likewise. |
| (mem_alloc_description::unregister_descriptor): Likewise. |
| * mode-switching.cc (optimize_mode_switching): Likewise. |
| * modulo-sched.cc (schedule_reg_moves): Likewise. |
| (optimize_sc): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * adjust-alignment.cc (pass_adjust_alignment::execute): Fix typos. |
| * alias.cc (alias_set_subset_of): Likewise. |
| (alias_ptr_types_compatible_p): Likewise. |
| (get_alias_set): Likewise. |
| (record_component_aliases): Likewise. |
| (base_alias_check): Likewise. |
| * alloc-pool.h: Likewise. |
| * asan.cc (insert_if_then_before_iter): Likewise. |
| (asan_expand_check_ifn): Likewise. |
| (hwasan_expand_check_ifn): Likewise. |
| * asan.h (sanitize_flags_p): Likewise. |
| * asm-toplevel.cc (analyze_toplevel_extended_asm): Likewise. |
| * attr-fnspec.h: Likewise. |
| * attribs.cc (decl_attributes): Likewise. |
| * auto-profile.cc (function_instance::match): Likewise. |
| (function_instance::remove_icall_target): Likewise. |
| (autofdo_source_profile::offline_external_functions): Likewise. |
| (afdo_set_bb_count): Likewise. |
| (scale_bbs): Likewise. |
| (afdo_adjust_guessed_profile): Likewise. |
| * basic-block.h (find_fallthru_edge): Likewise. |
| * bbitmap.h: Likewise. |
| * bitmap.cc (bitmap_list_find_element): Likewise. |
| * bitmap.h: Likewise. |
| * btfout.cc (BTF_INFO_SECTION_FLAGS): Likewise. |
| (btf_asm_type): Likewise. |
| (output_btf_vars): Likewise. |
| (btf_add_used_type_1): Likewise. |
| * builtins.cc (string_length): Likewise. |
| (expand_builtin_setjmp_setup): Likewise. |
| (inline_expand_builtin_bytecmp): Likewise. |
| * builtins.def: Likewise. |
| * ccmp.cc (get_compare_parts): Likewise. |
| (expand_ccmp_next): Likewise. |
| * ccmp.h: Likewise. |
| * cfg.cc (update_bb_profile_for_threading): Likewise. |
| * cfganal.cc (post_order_compute): Likewise. |
| * cfgbuild.cc (find_many_sub_basic_blocks): Likewise. |
| * cfgexpand.cc (vars_ssa_cache::dump): Likewise. |
| (add_scope_conflicts_1): Likewise. |
| (set_parm_rtl): Likewise. |
| (expand_one_ssa_partition): Likewise. |
| (expand_one_var): Likewise. |
| (discover_nonconstant_array_refs_r): Likewise. |
| (pass_expand::execute): Likewise. |
| * cfgloop.cc (get_estimated_loop_iterations): Likewise. |
| * cfgloopanal.cc (loop_count_in): Likewise. |
| * cfgloopmanip.cc (loop_exit_for_scaling): Likewise. |
| (update_loop_exit_probability_scale_dom_bbs): Likewise. |
| * cgraph.cc (add_detected_attribute_1): Likewise. |
| (cgraph_edge::maybe_hot_p): Likewise. |
| * cgraph.h (struct cgraph_node): Likewise. |
| * cif-code.def (ORIGINALLY_INDIRECT_CALL): Likewise. |
| * collect2.cc (main): Likewise. |
| * combine.cc (simplify_comparison): Likewise. |
| (distribute_notes): Likewise. |
| * configure.ac: Likewise. |
| * coretypes.h (enum pad_direction): Likewise. |
| * coroutine-passes.cc (make_pass_coroutine_lower_builtins): Likewise. |
| * coverage.cc (coverage_compute_profile_id): Likewise. |
| * cse.cc (struct set): Likewise. |
| (try_back_substitute_reg): Likewise. |
| (count_stores): Likewise. |
| * cselib.cc (struct cselib_hasher): Likewise. |
| * ctfc.cc (ctfc_get_num_ctf_vars): Likewise. |
| (ctf_add_string): Likewise. |
| (ctf_add_function_arg): Likewise. |
| * ctfc.h (GTY): Likewise. |
| (CTF_AUX_STRTAB): Likewise. |
| (ctfc_get_num_ctf_vars): Likewise. |
| * ctfout.cc (ctf_asm_sou_lmember): Likewise. |
| (output_ctf_header): Likewise. |
| * debug.h: Likewise. |
| * defaults.h: Likewise. |
| * df-problems.cc (df_simulate_fixup_sets): Likewise. |
| (df_simulate_finalize_backwards): Likewise. |
| * diagnostic-context-rich-location.cc |
| (lazy_diagnostic_context_path::make_inner_path): Likewise. |
| * diagnostics/color.cc (auto_enable_urls): Likewise. |
| * diagnostics/context.h: Likewise. |
| * diagnostics/sarif-sink.cc (get_message_from_result): Likewise. |
| * double-int.cc (double_int::lrotate): Likewise. |
| * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise. |
| * dwarf2cfi.cc (dwarf2out_frame_debug_expr): Likewise. |
| * dwarf2ctf.cc (ctf_get_AT_data_member_location): Likewise. |
| (handle_ctf_type_tags): Likewise. |
| * dwarf2out.cc (cst_pool_loc_descr): Likewise. |
| (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise. |
| (resolve_args_picking_1): Likewise. |
| (typed_binop_from_tree): Likewise. |
| (gen_array_type_die): Likewise. |
| * dwarf2out.h (struct dw_val_node): Likewise. |
| (dw_loc_dtprel): Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * doc/analyzer.texi: Fix typos. |
| * doc/cpp.texi: Likewise. |
| * doc/extend.texi: Likewise. |
| * doc/gcov.texi: Likewise. |
| * doc/gm2.texi: Likewise. |
| * doc/gty.texi: Likewise. |
| * doc/install.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * doc/libgdiagnostics/topics/compatibility.rst: Likewise. |
| * doc/libgdiagnostics/topics/physical-locations.rst: Likewise. |
| * doc/libgdiagnostics/tutorial/07-execution-paths.rst: Likewise. |
| * doc/libgdiagnostics/tutorial/08-message-buffers.rst: Likewise. |
| * doc/match-and-simplify.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * doc/optinfo.texi: Likewise. |
| * doc/params.texi: Likewise. |
| * doc/poly-int.texi: Likewise. |
| * doc/riscv-ext.texi: Likewise. |
| * doc/rtl.texi: Likewise. |
| * doc/sourcebuild.texi: Likewise. |
| * doc/tm.texi: Likewise. |
| * doc/tm.texi.in: Likewise. |
| * doc/tree-ssa.texi: Likewise. |
| |
| 2026-05-30 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * Makefile.in: Fix typos. |
| |
| 2026-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (BITINT_TYPE_P): Return true also for ENUMERAL_TYPE with |
| BITINT_TYPE as underlying type. |
| * stor-layout.cc (finish_bitfield_representative): Use BITINT_TYPE_P |
| macro. |
| (layout_type): Likewise. Lay out ENUMERAL_TYPEs with BITINT_TYPE as |
| underlying type the same as BITINT_TYPEs. |
| * gimple-lower-bitint.cc (maybe_cast_middle_bitint): Use BITINT_TYPE_P |
| macro. |
| (mergeable_op, optimizable_arith_overflow, comparison_op, |
| bitint_large_huge::handle_cast, bitint_large_huge::lower_shift_stmt, |
| bitint_large_huge::lower_muldiv_stmt, |
| bitint_large_huge::lower_mul_overflow, |
| bitint_large_huge::lower_bit_query, |
| bitint_large_huge::lower_call, bitint_large_huge::lower_asm, |
| bitint_large_huge::lower_stmt, build_bitint_stmt_ssa_conflicts, |
| arith_overflow_arg_kind, gimple_lower_bitint): Likewise. |
| * gimple-expr.cc (useless_type_conversion_p): Likewise. |
| * fold-const.cc (make_range_step): Likewise. |
| (range_check_type): For ENUMERAL_TYPEs with BITINT_TYPE as underlying |
| type use the underlying type. |
| (extract_muldiv_1): Use BITINT_TYPE_P macro. |
| (native_encode_wide_int): Likewise. |
| (native_interpret_int): Likewise. |
| * vr-values.cc |
| (simplify_using_ranges::simplify_float_conversion_using_ranges): |
| Likewise. |
| * cfgexpand.cc (expand_debug_expr): Likewise. |
| * convert.cc (convert_to_integer_1): Add special case for ENUMERAL_TYPE |
| with underlying BITINT_TYPE. |
| * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use |
| BITINT_TYPE_P macro. |
| (vn_reference_lookup_3): Likewise. |
| (eliminate_dom_walker::eliminate_stmt): Likewise. |
| * match.pd (ctz(ext(X)) == ctz(X), popcount(zext(X)) == popcount(X), |
| parity(zext(X)) == parity(X), a != 0 ? CLZ(a) : CST -> .CLZ(a), |
| a != 0 ? CTZ(a) : CST -> .CTZ(a), ffs(ext(X)) == ffs(X)): Likewise. |
| * builtins.cc (fold_builtin_bit_query): Likewise. |
| * explow.cc (promote_function_mode): Handle ENUMERAL_TYPE with |
| BITINT_TYPE as underlying type like BITINT_TYPE. |
| (promote_mode): Likewise. |
| * expr.cc (EXTEND_BITINT): Use BITINT_TYPE_P macro. |
| (expand_expr_real_1): Likewise. |
| * fold-const-call.cc (fold_const_call_ss): Likewise. |
| * gimple-fold.cc (gimple_fold_builtin_memset): Likewise. |
| (clear_padding_type_may_have_padding_p): Handle ENUMERAL_TYPE |
| with BITINT_TYPE as underlying type like BITINT_TYPE. |
| (type_has_padding_at_level_p): Likewise. |
| (clear_padding_type): Likewise. |
| * gimple-match-exports.cc (build_call_internal): Use BITINT_TYPE_P |
| macro. |
| * internal-fn.cc (expand_ubsan_result_store): Likewise. |
| * tree-sra.cc (create_access): Likewise. |
| (analyze_access_subtree): Likewise. |
| * tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Likewise. |
| * tree-ssa.cc (maybe_optimize_var): Likewise. |
| * tree-switch-conversion.cc (switch_conversion::array_value_type): |
| Likewise. |
| (switch_conversion::build_arrays): Likewise. |
| (jump_table_cluster::emit): Likewise. |
| * ubsan.cc (ubsan_encode_value): Likewise. |
| (ubsan_type_descriptor): Handle ENUMERAL_TYPE with BITINT_TYPE as |
| underlying type like BITINT_TYPE. |
| (instrument_si_overflow): Use BITINT_TYPE_P macro. |
| * varasm.cc (output_constant): Handle ENUMERAL_TYPE with BITINT_TYPE |
| as underlying type like BITINT_TYPE. |
| * config/aarch64/aarch64.cc (aarch64_return_in_memory_1): Use |
| BITINT_TYPE_P macro. |
| (bitint_or_aggr_of_bitint_p): Likewise. |
| (aarch64_composite_type_p): Likewise. |
| * config/arm/arm.cc (arm_return_in_memory): Likewise. |
| (arm_needs_doubleword_align): Likewise. |
| * config/i386/i386.cc (classify_argument): Handle ENUMERAL_TYPE with |
| BITINT_TYPE as underlying type like BITINT_TYPE. |
| * config/loongarch/loongarch.h: Use BITINT_TYPE_P macro. |
| |
| 2026-05-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-switch-conversion.cc (case_bit_test::cmp): Stability |
| based on the index of the target bb instead. |
| (bit_test_cluster::emit): Remove setting of the label field |
| of case_bit_test. |
| * tree-switch-conversion.h (case_bit_test): Remove the label |
| field. |
| |
| 2026-05-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125475 |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Don't call |
| gimple_stmt_nonnegative_p. Instead set the varying range to |
| `[type_min, type_max]` if not the same as the precision. |
| |
| 2026-05-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121343 |
| * config/avr/avr.md (FMUL): New int iterator. |
| (fmul, fmul_X, fmul_1, fmul_2): New int attributes. |
| (fmul, fmuls, fmulsu): Turn from expander to insn_and_split. |
| (fmul_insn, fmuls_insn, fmulsu_insn): Remove. |
| |
| 2026-05-29 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR c/122892 |
| * gimplify.cc (gimplify_scan_omp_clauses): Update for removed |
| plural -S in GOMP_OMP_PREDEF_ALLOC_THREAD. |
| |
| 2026-05-29 Nathan Sidwell <nathan@acm.org> |
| |
| * config/riscv/sync.md: Move & rename atomic unspec enums to unspecv |
| enum. Use renamed UNSPECV_$NAME enums. |
| * config/riscv/sync-rvwmo.md: Use renamed UNSPECV_$NAME enums. |
| * config/riscv/sync-ztso.md: Use renamed UNSPECV_$NAME enums. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Emit definitions for __ARM_FEATURE_{SVE,SME}2p2. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svmul): Define new |
| SVE function variant. |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve_<optab><mode>): New |
| instruction pattern. |
| (@aarch64_sve_<optab><mode>_single): Likewise. |
| * config/aarch64/aarch64.h (TARGET_STREAMING_SME2p2): New macro. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc (class svexpand_impl): |
| Define new SVE function base. |
| * config/aarch64/aarch64-sve-builtins-base.def (svcompact): Allow |
| execution in streaming mode when SME2p2 is enabled. |
| * config/aarch64/aarch64-sve-builtins-base.h (svexpand): Declare |
| new SVE function base. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svcompact): Define |
| new SVE function. |
| (svexpand): Likewise. |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_compact<mode>): |
| Enable 32- and 64-bit element variants under SME2p2. New |
| insn pattern for 8- and 16-bit elements. |
| (@aarch64_sve_expand<mode>): New insn pattern. |
| * config/aarch64/aarch64.h (TARGET_SVE_OR_SME2p2): New macro. |
| * config/aarch64/aarch64.md (UNSPEC_SVE_EXPAND): New UNSPEC. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sve2.cc |
| (class svfirst_lastp_impl): Define new SVE function base class. |
| (svfirstp): Define new SVE function base. |
| (svlastp): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svfirstp): Define |
| new SVE function. |
| (svlastp): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.h (svfirstp): Declare |
| new SVE function base. |
| * config/aarch64/aarch64-sve2.md (@aarch64_pred_firstp<mode>): New |
| insn pattern. |
| (@aarch64_pred_lastp<mode>): Likewise. |
| * config/aarch64/iterators.md (UNSPEC_FIRSTP): New UNSPEC. |
| (UNSPEC_LASTP): Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (svrint32x): Define |
| new function base. |
| (svrint32z): Likewise. |
| (svrint64x): Likewise. |
| (svrint64z): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svrint32x): |
| Define new SVE function. |
| (svrint32z): Likewise. |
| (svrint64x): Likewise. |
| (svrint64z): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.h (svrint32x): Declare |
| new function base. |
| (svrint32z): Likewise. |
| (svrint64x): Likewise. |
| (svrint32z): Likewise. |
| * config/aarch64/aarch64-sve-builtins.cc (TYPES_sd_float): New |
| type set. |
| (sd_float): New SVE type array. |
| * config/aarch64/aarch64-sve2.md (@cond_<frintnzs_op><mode>): New |
| insn pattern. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins-base.cc (class svcvtnt_impl): |
| Remove. |
| (svcvtnt): Redefine using narrowing_top_convert. |
| * config/aarch64/aarch64-sve-builtins-functions.h |
| (class narrowing_top_convert): New SVE function base class. |
| (NARROWING_TOP_CONVERT0): New function-like macro for specializing |
| narrowing_top_convert. |
| (NARROWING_TOP_CONVERT1): Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.cc (class svcvtxnt_impl): |
| Remove. |
| (svcvtxnt): Redefine using narrowing_top_convert. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svcvtlt): Allow |
| zeroing predication. |
| (svcvtnt): Likewise. |
| (svcvtxnt): Likewise. |
| * config/aarch64/aarch64-sve.md (@aarch64_sve_cvtnt<mode>): |
| Convert to compact syntax. Add operand 4 for values of |
| inactive lanes. New alternative for zeroing predication. |
| * config/aarch64/aarch64-sve2.md |
| (*cond_<sve_fp_op><mode>_relaxed): Convert to compact syntax. |
| New alternative for zeroing predication. |
| (*cond_<sve_fp_op><mode>_strict): Likewise. |
| (@aarch64_sve_cvtnt<mode>): Convert to compact syntax. Add |
| operand 4 for values of inactive lanes. New alternative for |
| zeroing predication. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| (*cond_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>_relaxed): |
| Likewise. |
| (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict): |
| Likewise. |
| (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): |
| Likewise. |
| (*cond_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>): |
| Likewise. |
| (*cond_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>): |
| Likewise. |
| (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): |
| Likewise. |
| (*cond_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>): |
| Likewise. |
| (*cond_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>_relaxed): |
| Likewise. |
| * config/aarch64/aarch64-sve2.md |
| (*cond_<sve_fp_op><mode>_any_relaxed): Likewise. |
| (*cond_<sve_fp_op><mode>_any_strict): Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| (*cond_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>_relaxed): |
| Likewise. |
| (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict): |
| Likewise. |
| (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): |
| Likewise. |
| (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx2SI_ONLY:mode>_relaxed): |
| Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_any_relaxed): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| (*cond_<optab><mode>_any_strict): Likewise. |
| * config/aarch64/aarch64-sve2.md (*cond_<sve_fp_op><mode>): |
| Likewise. |
| (*cond_<sve_fp_op><mode>_strict): Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (@cond_<optab><mode>): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| * config/aarch64/aarch64-sve2.md (@aarch64_pred_<optab><mode>): |
| Use zeroing predication variant for PRED_X. |
| (@cond_<optab><mode>): Accept constant zero as operand 3. New |
| alternative for zeroing predication. Add `arch` attribute to |
| every alternative. |
| * config/aarch64/predicates.md (aarch64_simd_reg_or_direct_zero): |
| New predicate. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| (*cond_uxt<mode>_any): Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_any): |
| New alternative for zeroing predication. Add `arch` attribute |
| to every alternative. |
| (*cond_cnot<mode>_any): Likewise. |
| * config/aarch64/aarch64-sve2.md: (*cond_<sve_int_op><mode>): |
| Likewise. |
| |
| 2026-05-29 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_SVE2p2): New macro. |
| (TARGET_SME2p2): Likewise. |
| (TARGET_SVE2p2_OR_SME2p2): Likewise. |
| * config/aarch64/aarch64.md (arches): Add sve2p2_or_sme2p2 enum |
| constant. |
| (arch): Add test for sve2p2_or_sme2p2. |
| * doc/invoke.texi: Document sve2p2 and sme2p2 extensions. |
| |
| 2026-05-29 LIU Hao <lh_mouse@126.com> |
| |
| * config/i386/i386.cc (ix86_decompose_address): Add a special case where |
| there's no base, there's an index, and the scale is 1. |
| |
| 2026-05-28 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-loop-im.cc (ref_always_accessed_p): Rename to... |
| (ref_always_stored_p): New function specialized to determine if |
| REF is a store that is always executed in LOOP. |
| (execute_sm): Use ref_always_stored_p instead of |
| ref_always_accessed_p. |
| (class ref_always_accessed): Rename to.. |
| (class ref_always_stored): Remove (always true) stored_p field. |
| (ref_always_stored::operator ()): Always check for a store. |
| Move hash table lookup, get_lim_data, after store test. |
| (can_sm_ref_p): Use ref_always_stored_p insead of |
| ref_always_accessed_p. |
| |
| 2026-05-28 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-features.cc (compute_convert_gain): Tweak |
| the cost of a 128-bit rotation to be 4 (or 5) instructions. |
| |
| 2026-05-28 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.cc (scalar_chain::add_insn): Don't |
| call analyze_register_chain if the USE is a SUBREG. |
| (scalar_chain::convert_op): Call gen_lowpart to convert |
| scalar (TImode) SUBREGs to vector (V1TImode) SUBREGs. |
| (convertible_comparison_p): We can now handle all general_operands |
| of *cmp<dwi>_doubleword. |
| (timode_remove_non_convertible_regs): We only need to check TImode |
| uses that aren't TImode SUBREGs of registers in other modes. |
| |
| 2026-05-28 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (inv_insn): New define_code_attr. |
| * config/i386/sse.md (<plusminus><mode>3): Accept a CONST_VECTOR |
| as the second operand. If the second operand is CONST1_RTX, |
| canonicalize to use CONSTM1_RTX instead. |
| (*add<mode>3_one): New define_insn_and_split to convert padd +1 |
| to psub -1. |
| (*sub<mode>3_one): Likewise, a new define_insn_and_split to |
| convert psub +1 to padd -1. |
| |
| 2026-05-28 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_regno_to_class): Use the minimal |
| class containing each FP hard register: FP_REGS for f0-f7 and |
| f16-f31, RVC_FP_REGS for f8-f15. |
| (riscv_secondary_memory_needed): Use reg_class_subset_p to |
| detect FP classes. |
| |
| 2026-05-28 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| |
| * config/riscv/riscv-vector-costs.cc (get_lmul_cost_scaling): |
| Enable scaling for all vector modes (VLA and VLS). |
| |
| 2026-05-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.opt.urls (-masm-len-notes, -Wasm-len-notes): Add. |
| |
| 2026-05-28 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*aarch64_vec_duplicate_subvector<vconsv><vconq><mode>): |
| New pattern. |
| * config/aarch64/iterators.md (VCONSV): New mode attribute. |
| (vconsv): Likewise. |
| |
| 2026-05-28 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>): |
| New insn pattern. |
| (*aarch64_combine_internal_be<mode>): Likewise. |
| (*aarch64_combinez<mode>): Likewise. |
| (*aarch64_combinez_be<mode>): Likewise. |
| (@aarch64_vec_concat<mode>): Support smaller vector and scalar modes. |
| * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): |
| Handle the case of two scalar elements. |
| * config/aarch64/iterators.md (SSUB64): New mode iterator. |
| (VSSUB64): Likewise. |
| (VSSUB32_I) : Likewise. |
| (VSSUB64_F): Likewise. |
| (VS32_I_SUB64_F): Likewise. |
| (single_wx): Define attribute for sub-64-bit vector and scalar modes. |
| (bitsize): Likewise. |
| (VDBL): Likewise. |
| (single_dwx): New mode attribute. |
| |
| 2026-05-28 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_dup_subvector<vconq><mode>): |
| New insn pattern. |
| (*aarch64_simd_dup_subvector<vcond><mode>): Likewise. |
| (@aarch64_simd_vec_set<mode>): Likewise. |
| (vec_set<mode>): Handle 16- and 32-bit vector modes in the expander. |
| * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Add |
| logic to initialize vector from starting subsequence. Make static. |
| (scalar_move_insn_p): Consider sub-64-bit vector moves scalar. |
| * config/aarch64/iterators.md (VDDUP): New iterator. |
| (VQDUP): Likewise. |
| (elem_bits): Define attribute for sub-64-bit vector modes. |
| (Vetype): Likewise. |
| (VEL): Likewise. |
| (single_wx): Define attribute for sub-64-bit vector and scalar modes. |
| (single_type): Likewise. |
| (VCOND): Likewise. |
| (VCONQ): Likewise. |
| (Vqduptype): New mode attribute. |
| (Vdduptype): Likewise. |
| (vcond): Likewise. |
| (vconq): Likewise. |
| (vstype): Define attribute for 64-bit vector and sub-128-bit scalar |
| modes. |
| |
| 2026-05-28 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| * config/aarch64/aarch64-modes.def (VECTOR_MODE): Remove V2HF. |
| (VECTOR_MODES): Define V2QI, V4QI, V2HI, V2HF, V2BF. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_advsimd_sub_dword_mode_p): Declare new predicate. |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): New |
| define_insn_and_split pattern. |
| (mov<mode>): Add sub-64-bit vector modes to the VALL_F16 expander. |
| Forego const vector expansion for those modes. |
| * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): |
| Handle 16- and 32-bit vector modes. |
| (aarch64_advsimd_sub_dword_mode_p): Define new predicate. |
| (aarch64_vectorize_vec_perm_const): Refuse for partial vector modes. |
| * config/aarch64/constraints.md (Da): New constraint. |
| * config/aarch64/iterators.md (VSUB64): New iterator. |
| (VALL_F16_SUB64): Likewise. |
| (size): Define attribute for sub-64-bit vector modes. |
| (VSC): New mode attribute. |
| (vstype): Likewise. |
| |
| 2026-05-28 Kewen Lin <linkewen@hygon.cn> |
| Xin Liu <liulxx@hygon.cn> |
| |
| * config/i386/c86-4g-m7.md (c86_4g_m7_fpu): Remove automaton. |
| (c86_4g_m7_fpu02): New automaton. |
| (c86_4g_m7_fpu13): Ditto. |
| (c86-4g-m7-fpu0): Move to c86_4g_m7_fpu02 automaton. |
| (c86-4g-m7-fpu1): Move to c86_4g_m7_fpu13 automaton. |
| (c86-4g-m7-fpu2): Move to c86_4g_m7_fpu02 automaton. |
| (c86-4g-m7-fpu3): Move to c86_4g_m7_fpu13 automaton. |
| (c86-4g-m7-fdiv): Remove cpu unit. |
| (c86-4g-m7-fdiv1): New cpu unit. |
| (c86-4g-m7-fdiv3): Ditto. |
| (c86-4g-m7-fpu_0_3): New reservation. |
| (c86-4g-m7-fpu_1_3x2): Ditto. |
| (c86-4g-m7-fpu_1_3x3): Ditto. |
| (c86-4g-m7-fpu_1_3x6): Ditto. |
| (c86-4g-m7-fpux2): Ditto. |
| (c86-4g-m7-fpux4): Ditto. |
| (c86-4g-m7-fpux6): Ditto. |
| (c86-4g-m7-fpux8): Ditto. |
| (c86-4g-m7-fpux16): Ditto. |
| (c86-4g-m7-fp1fdiv1x4): Ditto. |
| (c86-4g-m7-fp3fdiv3x4): Ditto. |
| (c86-4g-m7-fdiv13): Ditto. |
| (c86-4g-m7-fp13div13): Ditto. |
| (c86-4g-m7-fp13div13x4): Ditto. |
| (c86-4g-m7-fp1div1_fp3div3_x4x8): Ditto. |
| (c86-4g-m7-fp1div1_fp3div3_x4x9): Ditto. |
| (c86-4g-m7-fp1div1_fp3div3_x4x11): Ditto. |
| (c86-4g-m7-fp1div1_fp3div3_x4x15): Ditto. |
| (c86-4g-m7-fp1div1_fp3div3_x4x18): Ditto. |
| (c86_4g_m7_idiv): New reservation. |
| (c86_4g_m7_idiv_QI): Adjust reservation latency and unit occupancy. |
| (c86_4g_m7_idiv_load): New reservation. |
| (c86_4g_m7_idiv_QI_load): Adjust reservation latency and unit |
| occupancy. |
| (c86_4g_m7_idiv_DI): Remove reservation. |
| (c86_4g_m7_idiv_SI): Ditto. |
| (c86_4g_m7_idiv_HI): Ditto. |
| (c86_4g_m7_idiv_DI_load): Ditto. |
| (c86_4g_m7_idiv_SI_load): Ditto. |
| (c86_4g_m7_idiv_HI_load): Ditto. |
| (c86_4g_m7_sse_insertimm): Adjust reservation units and unit |
| occupancy. |
| (c86_4g_m7_sse_insert): Ditto. |
| (c86_4g_m7_fp_sqrt): Adjust reservation. |
| (c86_4g_m7_fp_div): Ditto. |
| (c86_4g_m7_fp_div_load): Ditto. |
| (c86_4g_m7_fp_idiv_load): Ditto. |
| (c86_4g_m7_sse_pinsr_reg): Adjust reservation units and unit |
| occupancy. |
| (c86_4g_m7_sse_pinsr_reg_load): Ditto. |
| (c86_4g_m7_avx_vpinsr_reg): Ditto. |
| (c86_4g_m7_avx_vpinsr_reg_load): Ditto. |
| (c86_4g_m7_avx512_perm_xmm): Delete the prefix condition. |
| (c86_4g_m7_avx512_perm_xmm_opload): Ditto. |
| (c86_4g_m7_avx512_permi2_ymm): Adjust reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_permi2_zmm): Ditto. |
| (c86_4g_m7_avx512_permi2_ymm_load): Ditto. |
| (c86_4g_m7_avx512_permi2_zmm_load): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_imm): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_imm_load): Ditto. |
| (c86_4g_m7_avx512_perm_zmm_noimm): Ditto. |
| (c86_4g_m7_sse_perm_zmm_noimm_load): Ditto. |
| (c86_4g_m7_avx_perm_ymm): Remove. |
| (c86_4g_m7_avx_perm_ymem): Ditto. |
| (c86_4g_m7_avx512_shuf_zmm): Adjust reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_shuf_zmem): Ditto. |
| (c86_4g_m7_avx512_cmpestr): Ditto. |
| (c86_4g_m7_avx512_cmpestr_load): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_zmm): Ditto. |
| (c86_4g_m7_avx512_vdbpsadbw_zmem): Ditto. |
| (c86_4g_m7_avx_ssecomi_comi): Ditto. |
| (c86_4g_m7_avx_ssecomi_comi_load): Ditto. |
| (c86_4g_m7_avx512_expand): Ditto. |
| (c86_4g_m7_avx512_expand_load): Ditto. |
| (c86_4g_m7_avx512_expand_z): Ditto. |
| (c86_4g_m7_avx512_expand_z_load): Ditto. |
| (c86_4g_m7_sse_movnt_xy): Rename to c86_4g_m7_sse_movnt. |
| (c86_4g_m7_avx512_sseadd_xy): Adjust reservation units. |
| (c86_4g_m7_avx512_sseadd_xy_load): Ditto. |
| (c86_4g_m7_sse_sseiadd_hplus): Adjust reservation units and unit |
| occupancy. |
| (c86_4g_m7_sse_sseiadd_hplus_load): Ditto. |
| (c86_4g_m7_avx512_ssemul): Adjust reservation units. |
| (c86_4g_m7_avx512_ssemul_load): Ditto. |
| (c86_4g_m7_avx512_ssediv): Remove. |
| (c86_4g_m7_avx512_ssediv_mem): Remove. |
| (c86_4g_m7_avx512_ssediv_x): New. |
| (c86_4g_m7_avx512_ssediv_xmem): New. |
| (c86_4g_m7_avx512_ssediv_y): New. |
| (c86_4g_m7_avx512_ssediv_ymem): New. |
| (c86_4g_m7_avx512_ssediv_z): Adjust reservation units. |
| (c86_4g_m7_avx512_ssediv_zmem): Ditto. |
| (c86_4g_m7_avx512_ssecmp_z): Add reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_ssecmp_z_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_vp_z): New reservation. |
| (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. |
| (c86_4g_m7_avx512_ssecmp_test_z): Remove reservation. |
| (c86_4g_m7_avx512_ssecmp_test_z_load): Ditto. |
| (c86_4g_m7_avx512_muladd): Broaden matching condition. |
| (c86_4g_m7_avx512_muladd_load): Ditto. |
| (c86_4g_m7_fma_muladd): Remove reservation. |
| (c86_4g_m7_fma_muladd_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_x): Add reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_sse_conflict_x_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_y): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_y_load): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_z): Ditto. |
| (c86_4g_m7_avx512_sse_conflict_z_load): Ditto. |
| (c86_4g_m7_avx512_sse_class_z): Add reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_sse_class_z_load): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt): Remove. |
| (c86_4g_m7_avx512_sse_sqrt_load): Remove. |
| (c86_4g_m7_avx512_sse_sqrt_sf_x): New. |
| (c86_4g_m7_avx512_sse_sqrt_sf_xload): New. |
| (c86_4g_m7_avx512_sse_sqrt_sf_y): New. |
| (c86_4g_m7_avx512_sse_sqrt_sf_yload): New. |
| (c86_4g_m7_avx512_sse_sqrt_sf_z): New. |
| (c86_4g_m7_avx512_sse_sqrt_sf_zload): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_x): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_xload): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_y): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_yload): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_z): New. |
| (c86_4g_m7_avx512_sse_sqrt_df_zload): New. |
| (c86_4g_m7_avx512_msklog_vector): Add reservation units and unit |
| occupancy. |
| (c86_4g_m7_avx512_mskmov_z_k): Ditto. |
| (c86_4g_m7_avx512_mskmov_k_reg): Ditto. |
| * config/i386/c86-4g.md (c86_4g_fp): Remove automaton. |
| (c86_4g_fp024): New automaton. |
| (c86_4g_fp1): Ditto. |
| (c86-4g-fp0): Move to c86_4g_fp024 automaton. |
| (c86-4g-fp1): Move to c86_4g_fp1 automaton. |
| (c86-4g-fp2): Move to c86_4g_fp024 automaton. |
| (c86-4g-fp3): Ditto. |
| (c86-4g-fp1fdivx4): New reservation. |
| (c86_4g_fp_sqrt): Adjust reservation. |
| (c86_4g_sse_sqrt_sf): Ditto. |
| (c86_4g_sse_sqrt_sf_mem): Ditto. |
| (c86_4g_sse_sqrt_df): Ditto. |
| (c86_4g_sse_sqrt_df_mem): Ditto. |
| (c86_4g_fp_op_div): Ditto. |
| (c86_4g_fp_op_div_load): Ditto. |
| (c86_4g_fp_op_idiv_load): Adjust reservation latency. |
| (c86_4g_ssediv_ss_ps): Adjust reservation. |
| (c86_4g_ssediv_ss_ps_load): Ditto. |
| (c86_4g_ssediv_sd_pd): Ditto. |
| (c86_4g_ssediv_sd_pd_load): Ditto. |
| (c86_4g_ssediv_avx256_ps): Ditto. |
| (c86_4g_ssediv_avx256_ps_load): Ditto. |
| (c86_4g_ssediv_avx256_pd): Ditto. |
| (c86_4g_ssediv_avx256_pd_load): Ditto. |
| |
| 2026-05-28 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| |
| * config/riscv/riscv-vector-costs.cc |
| (estimated_loop_iters): New function. |
| (compare_loop_overhead): New function. |
| (costs::better_main_loop_than_p): Compare RVV loop overhead after |
| inside-loop cost. |
| |
| 2026-05-28 Alex Coplan <alex.coplan@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_strip_extend): Replace |
| (unsigned HOST_WIDE_INT) INVAL (x) with UINTVAL (x). |
| * config/aarch64/predicates.md (aarch64_shift_imm_si): Likewise. |
| (aarch64_shift_imm_di): Likewise. |
| (aarch64_shift_imm64_di): Likewise. |
| (aarch64_imm3): Likewise. |
| |
| 2026-05-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (avr_read_number, avr_length_of_asm) |
| (avr_maybe_length_of_asm): New static functions. |
| (avr_adjust_insn_length): Call avr_maybe_length_of_asm on |
| unrecognized insns. |
| * config/avr/avr.opt (-masm-len-notes, -Wasm-len-notes): New |
| options. |
| * doc/invoke.texi (AVR Options): Add -masm-len-notes, |
| -Wasm-len-notes. |
| * doc/extend.texi (Size of an asm): Add @subsubheading |
| "Specifying the size of an asm on AVR". |
| |
| 2026-05-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121343 |
| * config/avr/avr.md (divmod<mode>4, udivmod<mode>4): Use |
| hard-reg constraints instead of explicit hard-regs. |
| (*divmodqi4_call_split, *udivmodqi4_call_split): Remove. |
| (*divmodhi4_call_split, *udivmodhi4_call_split): Remove. |
| (*divmodpsi4_call_split, *udivmodpsi4_call_split): Remove. |
| (*divmodsi4_call_split, *udivmodsi4_call_split): Remove. |
| |
| 2026-05-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125469 |
| * config/i386/i386.md (*add<mode>_1<nf_name>): Don't return "#" for |
| the lea non-TARGET_APX_NDD case, instead emit a lea directly. |
| |
| 2026-05-27 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * ext-dce.cc (ext_dce_try_optimize_extension): Handle |
| SIGN_EXTEND of MEM by replacing with ZERO_EXTEND of MEM |
| when upper bits are dead. |
| |
| 2026-05-27 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * ext-dce.cc (ext_dce_process_uses): Fix off-by-one: use |
| size > 32 instead of size >= 32 for group 3 liveness. |
| |
| 2026-05-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.md (movdi_aarch64): Use aarch64_output_move_imm |
| to select w-regs. |
| * config/aarch64/aarch64.cc (aarch64_output_move_imm): New function. |
| * config/aarch64/aarch64-protos.h (aarch64_output_move_imm): Add |
| declaration. |
| |
| 2026-05-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120164 |
| * tree-if-conv.cc (if_convertible_stmt_p): Detect prefetches. |
| (predicate_statements): Drop them during predication. |
| |
| 2026-05-27 oltolm <oleg.tolmatcev@gmail.com> |
| |
| PR target/54412 |
| * target.def (overaligned_stack_slot_required): New calls hook. |
| * calls.cc (allocate_call_dynamic_stack_space): New helper. |
| (initialize_argument_information): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| by-reference argument copies. |
| (expand_call): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| hidden return slots. |
| * function.cc (assign_stack_local_aligned): New helper. |
| (assign_parm_setup_block): Use |
| targetm.calls.overaligned_stack_slot_required for over-aligned |
| stack parm slots. |
| (assign_parm_setup_reg): Likewise. |
| * config/i386/i386.cc (ix86_overaligned_stack_slot_required): New. |
| (TARGET_OVERALIGNED_STACK_SLOT_REQUIRED): Define for i386. |
| * doc/tm.texi.in: Add hook placement. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-05-27 oltolm <oleg.tolmatcev@gmail.com> |
| |
| PR target/89597 |
| * config/i386/i386.cc (function_value_ms_64): Handle 32-byte and |
| 64-byte vector returns in registers when supported. |
| (ix86_return_in_memory): Do not force 32-byte/64-byte eligible |
| vector returns to memory for MS ABI. |
| |
| 2026-05-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120352 |
| * tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_NEEDS_EPILOG): New. |
| (class _loop_vec_info): Add early_break_needs_epilogue. |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Detect |
| usage of stores. |
| * tree-vect-loop-manip.cc (vect_do_peeling): Use them. |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Likewise. |
| (vect_create_loop_vinfo): Likewise. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise. |
| * tree-vect-stmts.cc (vect_stmt_relevant_p): Likewise. |
| |
| 2026-05-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/120352 |
| * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Add |
| redirect_exits. |
| (vect_do_peeling): Use it. |
| * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): Update |
| prototype. |
| |
| 2026-05-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/125148 |
| * config/aarch64/aarch64-sve.md |
| (*aarch64_vec_shl_insert_into_zero_<mode>, |
| *aarch64_vec_shl_insert_into_zero_vnx16qi, |
| *aarch64_vec_shl_insert_from_load_<mode>): New. |
| * config/aarch64/aarch64.cc (aarch64_emit_load_store_through_mode): |
| Replace paradoxical subreg with zero-extend. |
| |
| 2026-05-27 Evgeny Karpov <evgeny.karpov@arm.com> |
| |
| * config/aarch64/aarch64-coff.h (SUPPORTS_INIT_PRIORITY): |
| Enable SUPPORTS_INIT_PRIORITY by default. |
| |
| 2026-05-27 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable |
| for m_DIAMONDRAPIDS. |
| (X86_TUNE_USE_GATHER_4PARTS): Likewise. |
| |
| 2026-05-26 Sergei Trofimovich <siarheit@google.com> |
| |
| PR bootstrap/125318 |
| * tree-vect-stmts.cc (vectorizable_load): Explicitly |
| initialize stride_step to work around |
| -Werror=maybe-uninitialized build failure. |
| |
| 2026-05-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125396 |
| * tree-cfgcleanup.cc (bb_phis_references_abnormal_uses): New function. |
| (maybe_remove_forwarder_block): Check to make sure the |
| forwarder block does not have a phi that references ssa name that has |
| abnormal uses. |
| |
| 2026-05-26 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-fusion.cc (riscv_fusion_same_dest_p): |
| New function. |
| (riscv_set_is_add_p): Rename from riscv_set_is_add. |
| (riscv_set_is_addi_p): Rename from riscv_set_is_addi. |
| (riscv_set_is_adduw_p): Rename from riscv_set_is_adduw. |
| (riscv_set_is_shNadd_p): Rename from riscv_set_is_shNadd. |
| (riscv_set_is_shNadduw_p): Rename from riscv_set_is_shNadduw. |
| (riscv_fuse_zextws): New function. |
| (riscv_fuse_zexth): Likewise. |
| (riscv_fuse_ldindexed): Likewise. |
| (riscv_fuse_expanded_ld): Likewise. |
| (riscv_fuse_ldpreincrement): Likewise. |
| (riscv_fuse_lui_addi): Likewise. |
| (riscv_fuse_auipc_addi): Likewise. |
| (riscv_fuse_lui_ld): Likewise. |
| (riscv_fuse_auipc_ld): Likewise. |
| (riscv_fuse_cache_aligned_std): Likewise. |
| (riscv_fuse_aligned_std): Likewise. |
| (riscv_fuse_bfext): Likewise. |
| (riscv_fuse_b_alui): Likewise. |
| (struct riscv_fusion_entry): New struct. |
| (riscv_fusion_table): New table. |
| (riscv_macro_fusion_pair_p): Refactor to use table-driven |
| dispatch loop with simplified checker interface. |
| |
| 2026-05-26 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv-fusion.cc (riscv_macro_fusion_pair_p): |
| Fix XINT to access SET_SRC (prev_set) in AUIPC_LD case. |
| Fix base register comparison from != to == in |
| CACHE_ALIGNED_STD case. Remove redundant CONST_INT_P |
| check in B_ALUI sub+smax case. Remove duplicate REG_P |
| check in LDINDEXED case. Fix typo in comment. Fix dump |
| output name for CACHE_ALIGNED_STD. |
| |
| 2026-05-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125453 |
| * match.pd (`(smaller)a ==/!= (smaller) b`): Reject |
| non integral types. |
| |
| 2026-05-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/125409 |
| * config/avr/avr-fixed.md (FIXED_A, FIXED_B): Add PSI to iterators. |
| |
| 2026-05-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121343 |
| * config/avr/avr.md (load_<mode>_libgcc): Rewrite to use |
| a hard-reg constraint for operand 0. |
| (gen_load<mode>_libgcc): Remove expander. |
| (mov<mode>): No more special handling needed for sources that |
| satisfy avr_load_libgcc_p. |
| |
| 2026-05-25 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR c/125377 |
| * omp-general.cc (omp_check_for_duplicate_variant): Fix used |
| tree for 'inform' part of the error message. |
| |
| 2026-05-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (fstack-usage): Document new second field. |
| * toplev.cc (output_stack_usage_1): Revert latest changes and add |
| the mangled name as the second field. |
| |
| 2026-05-25 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * bitmap.cc (bitmap_last_set_bit): Fix handling of index 0. |
| |
| 2026-05-25 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/124630 |
| * match.pd (popcount (x ^ (x - 1))): Fold to ctz (x) + 1 when |
| x is nonzero and CTZ is directly supported. |
| |
| 2026-05-24 Raven Hallsby <karl@hallsby.com> |
| |
| PR tree-optimization/125104 |
| * match.pd (`(~y & x) ^ y`): New Pattern. |
| |
| 2026-05-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * toplev.cc (output_stack_usage_1): Print out the human readable |
| name in quotes. |
| |
| 2026-05-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125419 |
| * tree-if-conv.cc (factor_out_operators): Change |
| asserts about abnormals into a conditional to reject |
| it. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (fold_overflow_warning): Removed. |
| (pointer_may_wrap_p): Removed. |
| (fold_comparison): Removed fold_overflow_warning and |
| pointer_may_wrap_up calls. |
| (fold_binary_loc): Likewise. |
| * fold-const.h (fold_overflow_warning): Removed. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (fold_binary_loc): Likewise. |
| (tree_expr_nonnegative_warnv_p): Renamed to |
| tree_expr_nonnegative_p. Argument strict_overflow_p removed. |
| (tree_expr_nonnegative_p): Removed. |
| (RECURSE): Removed strict_overflow_p argument. |
| (tree_unary_nonnegative_p): Local strict_overflow_p variable |
| added to support the RECURSE() macro was removed. |
| (tree_binary_nonnegative_p): Likewise. |
| (tree_single_nonnegative_p): Likewise. |
| (tree_call_nonnegative_p): Likewise. |
| (tree_invalid_nonnegative_p): Likewise. |
| (tree_binary_nonzero_p): Removed sub_strict_overflow_p variable |
| from tree_expr_nonnegative_p call. |
| * fold-const.h (tree_expr_nonnegative_p): Removed. |
| (tree_expr_nonnegative_warnv_p): Renamed to |
| tree_expr_nonnegative_p, removed strict_overflow_p argument. |
| * tree-ssa-loop-manip.cc (create_iv): Removed ovf variable from |
| tree_expr_nonnegative_p call. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_call_nonnegative_warnv_p): Renamed to |
| tree_call_nonnegative_warnv_p. |
| (tree_call_nonnegative_p): Removed strict_overflow_p flag. |
| (tree_invalid_nonnegative_warnv_p): Renamed to |
| tree_invalid_nonnegative_p. |
| (tree_invalid_nonnegative_p): Removed strict_overflow_p flag. |
| (tree_expr_nonnegative_warnv_p): Added ATTRIBUTE_UNUSED tag in |
| the now unused strict_overflow_p argument. Removed |
| strict_overflow_p call from tree_invalid_nonnegative_p. |
| * fold-const.h (tree_call_nonnegative_warnv_p): Renamed to |
| tree_call_nonnegative_p. |
| (tree_call_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-fold.cc (gimple_call_nonnegative_warnv_p): Renamed to |
| gimple_call_nonnegative_p. |
| (gimple_call_nonnegative_p): Removed strict_overflow_p flag. |
| (gimple_stmt_nonnegative_warnv_p): Renamed to |
| gimple_stmt_nonnegative_p. |
| (gimple_stmt_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-fold.h (gimple_stmt_nonnegative_warnv_p): Renamed to |
| gimple_stmt_nonnegative_p. |
| (gimple_stmt_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Removed |
| strict_overflow_p flag from gimple_stmt_nonnegative_p. |
| (fold_using_range::range_of_call): Likewise. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_single_nonnegative_warnv_p): Renamed to |
| tree_single_nonnegative_p. |
| (tree_single_nonnegative_p): Removed strict_overflow_p flag. |
| (tree_expr_nonnegative_warnv_p): Removed strict_overflow_p flag |
| from tree_single_nonnegative_p call. |
| * fold-const.h (tree_single_nonnegative_warnv_p): Renamed to |
| tree_single_nonnegative_p. |
| (tree_single_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Renamed to |
| gimple_assign_nonnegative_p. |
| (gimple_assign_nonnegative_p): Removed strict_overflow_p flag. |
| (gimple_phi_nonnegative_warnv_p): Renamed to |
| gimple_phi_nonnegative_p. |
| (gimple_phi_nonnegative_p): Removed strict_overflow_p flag. |
| (gimple_stmt_nonnegative_warnv_p): Removed strict_overflow_p |
| flag from gimple_phi_nonnegative_p and gimple_assign_nonnegative_p |
| calls. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_unary_nonnegative_warnv_p): Renamed to |
| tree_unary_nonnegative_p. |
| (tree_unary_nonnegative_p): Removed strict_overflow_p flag. |
| (tree_expr_nonnegative_warnv_p): Removed strict_overflow_flag |
| from tree_unary_nonnegative_p calls. |
| * fold-const.h (tree_unary_nonnegative_warnv_p): Renamed to |
| tree_unary_nonnegative_p. |
| (tree_unary_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Removed |
| strict_overflow_flag from tree_unary_nonnegative_p calls. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_binary_nonnegative_warnv_p): Renamed to |
| tree_binary_nonnegative_p. |
| (tree_binary_nonnegative_p): Removed strict_overflow_p flag. Add |
| a local variable with the same name for RECURSE() that we'll |
| remove later. |
| (tree_expr_nonnegative_warnv_p): Removed strict_overflow_p flag |
| from tree_binary_nonnegative_p call. |
| * fold-const.h (tree_binary_nonnegative_warnv_p): Renamed to |
| tree_binary_nonnegative_p. |
| (tree_binary_nonnegative_p): Removed strict_overflow_p flag. |
| * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Likewise. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (maybe_canonicalize_comparison_1): Removed |
| strict_overflow_p flag. |
| (maybe_canonicalize_comparison): Removed strict_overflow_p |
| flag and all fold_overflow_warning calls. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_expr_nonzero_warnv_p): Renamed to |
| tree_expr_nonzero_p and removed the strict_overflow_p flag. |
| (tree_expr_nonzero_p): Removed it since it's now redundant with |
| tree_expr_nonzero_warnv_p. |
| (tree_unary_nonzero_p): Removed the local sub_strict_overflow_p |
| flag from the tree_expr_nonzero_p call. |
| (tree_binary_nonzero_p): Likewise. |
| (tree_single_nonzero_p): Likewise. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_expr_nonzero_warnv_p): Removed |
| strict_overflow_p flag. |
| (tree_single_nonzero_warnv_p): Renamed to tree_single_nonzero_p. |
| (tree_single_nonzero_p): Removed strict_overflow_p flag. |
| * fold-const.h (tree_single_nonzero_warnv_p): Renamed to |
| tree_single_nonzero_p. |
| (tree_single_nonzero_p): Removed strict_overflow_p flag. |
| * gimple-range-fold.cc (fold_using_range::range_of_address): |
| Removed strict_overflow_p flag. |
| (range_from_readonly_load): Likewise. |
| * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise. |
| * tree-ssa-phiopt.cc (absorbing_element_p): Likewise. |
| * value-query.cc (range_query::get_tree_range): Likewise. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (tree_expr_nonzero_warnv_p): Removed |
| strict_overflow_p flag from tree_binary_nonzero_p call. |
| (tree_binary_nonzero_warnv_p): Renamed to tree_binary_nonzero_p. |
| (tree_binary_nonzero_p): Removed strict_overflow_p flag. |
| * fold-const.h (tree_binary_nonzero_warnv_p): Renamed to |
| tree_binary_nonzero_p. |
| (tree_binary_nonzero_p): Removed strict_overflow_p flag. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (mask_with_tz): Changed comment that describes |
| tree_expr_nonzero_warnv_p warn on overflow behavior. |
| (tree_expr_nonzero_warnv_p): Removed strict_overflow_p flag. |
| (tree_unary_nonzero_warnv_p): Renamed to tree_unary_nonzero_p. |
| (tree_unary_nonzero_p): Removed strict_overflow_p flag. |
| * fold-const.h (tree_unary_nonzero_warnv_p): Renamed to |
| tree_unary_nonzero_p. |
| (tree_unary_nonzero_p): Removed strict_overflow_p flag. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (extract_muldiv): Removed strict_overflow_p |
| references, including temporary variables and comments. |
| (extract_muldiv_1): Likewise. |
| (fold_binary_loc): Likewise. |
| |
| 2026-05-23 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * fold-const.cc (make_range_step): Likewise. |
| (make_range): Likewise. |
| (fold_range_test): Likewise. |
| * fold-const.h (make_range): Likewise. |
| (make_range_step): Likewise. |
| * tree-ssa-reassoc.cc (init_range_entry): Likewise. |
| |
| 2026-05-23 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/riscv/bitmanip.md (slli_slli_uw): New pattern. |
| (plus+and+ashift splitter): Turn into define_insn_and_split. |
| (riscv_slli_uw): Renamed from *slliuw. |
| |
| 2026-05-23 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/constraints.md (MULDST_REGS): Remove constraint. |
| (MULSRC0_REGS): Ditto. |
| (MULSRC1_REGS): Ditto. |
| * config/pru/predicates.md (pru_muldst_operand): Compare |
| register number directly. |
| (pru_mulsrc0_operand): Ditto. |
| (pru_mulsrc1_operand): Ditto. |
| * config/pru/pru.h (enum reg_class): Remove single-reg classes. |
| (REG_CLASS_NAMES): Ditto. |
| (REGNO_REG_CLASS): Ditto. |
| * config/pru/pru.md (mulsi3): Switch to hard register constraints. |
| (umulsidi3): Ditto. |
| |
| 2026-05-23 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/constraints.md: Prevent allocating r27 as |
| SImode destination for mulsi3 pattern. |
| * config/pru/pru.h (enum reg_class): Expand MULDST_REGS |
| to allow fitting DImode. |
| * config/pru/pru.md (umulsidi3): New pattern. |
| (muldi3): Ditto. |
| |
| 2026-05-22 Disservin <disservin.social@gmail.com> |
| |
| PR target/50481 |
| * config/aarch64/aarch64.md (bitreverse<mode>2, bitreverseqi2, |
| bitreversehi2): New expanders. |
| * config/aarch64/aarch64-simd.md (bitreverse<mode>2): New expander. |
| |
| 2026-05-22 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-protos.h (common_vector_cost): Add |
| reduc_i8_cost through reduc_f64_cost and |
| reduc_f{16,32,64}_ordered_cost. |
| * config/riscv/riscv.cc: Set costs in rvv_vls_vector_cost and |
| rvv_vla_vector_cost. |
| * config/riscv/riscv-vector-costs.cc (is_reduction): New helper. |
| (get_reduction_cost): New helper. |
| (costs::adjust_stmt_cost): Use them for vec_to_scalar kind. |
| |
| 2026-05-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/125375 |
| * cfgrtl.cc (flow_active_insn_p): Return true for clobbers. |
| |
| 2026-05-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/125399 |
| * match.pd (BITREVERSE): Add BUILT_IN_BITREVERSE8. |
| |
| 2026-05-22 Steve Markgraf <steve@steve-m.de> |
| |
| * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Add PROCESSOR_MPCCORE. |
| |
| 2026-05-22 Avinal Kumar <avinal.xlvii@gmail.com> |
| |
| PR tree-optimization/125050 |
| * match.pd: (X != C1 ? -X : C2): Handle C1 being INT_MIN |
| by emitting (signed)(-(unsigned)X) instead of bailing out. |
| |
| 2026-05-21 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::avoid_store_forwarding): Replace |
| return with flush-and-continue for complex memory operations. |
| |
| 2026-05-21 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * avoid-store-forwarding.cc: Include regs.h. |
| (record_hard_reg_clobbers): New callback. |
| (store_forwarding_analyzer::m_bb_live_after): New cache. |
| (store_forwarding_analyzer::compute_bb_live_after): New helper. |
| (store_forwarding_analyzer::process_store_forwarding): Add |
| liveness check for hard registers clobbered by bit-insert |
| sequences, using the cached per-BB live-out information, and |
| evict the load_insn entry from the cache before delete_insn |
| in the load-elim path. |
| (store_forwarding_analyzer::avoid_store_forwarding): Clear the |
| per-BB liveness cache on entry. |
| |
| 2026-05-21 Konstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu> |
| |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::avoid_store_forwarding): Remove |
| store_exprs_del vector and all associated tracking. Remove the |
| same_range_as_removed check from the forwarding loop. Update |
| block comment. |
| |
| 2026-05-21 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Prerequisites): The C++ front end also does |
| not use extensions. |
| |
| 2026-05-21 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/123791 |
| * config/aarch64/aarch64.cc (aarch64_cannot_force_const_mem): Remove |
| forcing symbol references to const mem. |
| (aarch64_can_use_per_function_literal_pools_p): Return false for |
| large model. |
| (aarch64_use_blocks_for_constant_p): Update comment. |
| (initialize_aarch64_code_model): Allow PIC/PIE. |
| (aarch64_classify_symbol): Use SYMBOL_SMALL_ABSOLUTE for constant |
| references and SYMBOL_SMALL_GOT_4G for writeable data. |
| |
| 2026-05-21 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125320 |
| * config/riscv/riscv.md (stack_protect_test_<mode>): Call |
| riscv_output_move() instead of hard coding <load>. |
| (stack_protect_set_<mode>): Call riscv_output_move() instead of |
| hard coding <load> and <store>. |
| |
| 2026-05-21 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.cc (get_max_overall_size): Remove parameter CUR_SWEEP and |
| its use. |
| (decide_about_value): Adjust the call to get_max_overall_size. |
| (decide_whether_version_node): Likewise. |
| * params.opt (param_ipa_cp_eval_threshold): Initialize to 1100. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/riscv.opt.urls: Regenerate. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * common/config/riscv/riscv-common.cc (riscv_handle_option): |
| Handle Zilsd alignment options and clear the Zilsd-specific |
| explicit marker for -mstrict-align. |
| * config/riscv/riscv-opts.h (riscv_zilsd_align_type): New enum. |
| * config/riscv/riscv-protos.h |
| (riscv_expand_zilsd_misaligned_move): Declare as void. |
| (riscv_zilsd_valid_mem_p): Declare. |
| * config/riscv/riscv.cc (riscv_zilsd_required_align): New |
| functions. |
| (riscv_zilsd_valid_mem_p): New function. |
| (riscv_rtx_costs): Honor Zilsd alignment policy. |
| (riscv_split_64bit_move_p): Split invalid Zilsd GPR accesses. |
| (riscv_expand_zilsd_misaligned_move): New function. |
| (riscv_can_inline_p): Check effective Zilsd alignment policy. |
| (riscv_override_options_internal): Reject explicit Zilsd |
| alignment options for RV64. |
| * config/riscv/riscv.md (movmisaligndi): New expander. |
| (movmisaligndf): New expander. |
| * config/riscv/riscv.opt: Add -mzilsd-word-align and |
| -mzilsd-strict-align. |
| * config/riscv/riscv.opt.urls: Regenerate. |
| * doc/invoke.texi: Document the new options. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/andes_vector.h: Define intrinsic detection macros. |
| * config/riscv/riscv_bitmanip.h: Likewise. |
| * config/riscv/riscv_crypto.h: Likewise. |
| * config/riscv/riscv_vector.h: Likewise. |
| * config/riscv/sifive_vector.h: Likewise. |
| * doc/extend.texi: Document RISC-V intrinsic detection macros. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * common/config/riscv/riscv-ext-bitmask.def: Add zicfiss. |
| * config/riscv/riscv-ext.def: Add C API bit position for |
| zicfiss. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * common/config/riscv/riscv-ext-bitmask.def: Add supm, |
| zicntr, zihpm, zfbfmin, zvfbfmin, zvfbfwma, zicbom, |
| zaamo, zalrsc, zabha, zalasr, zicbop, and zicfilp. |
| * config/riscv/riscv-ext.def: Add C API bit positions for |
| supm, zicntr, zihpm, zfbfmin, zvfbfmin, zvfbfwma, |
| zicbom, zaamo, zalrsc, zabha, zalasr, zicbop, and |
| zicfilp. |
| |
| 2026-05-21 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * common/config/riscv/riscv-ext-bitmask.def: Add b, e, h, |
| zilsd, zclsd, zcmp, zifencei, and zmmul. |
| |
| 2026-05-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/121343 |
| * config/avr/avr.md (ctz_ffs, cxz_ffs): New code iterators. |
| (clzhi2, ctzhi2, ffshi2, clzsi2, ctzsi2, ffssi2, bswapsi2): New |
| insn-and-split's from former expanders. |
| |
| 2026-05-21 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/50481 |
| * config/loongarch/loongarch.md (@rbit<GPR:mode>2): Rename to |
| ... |
| (@bitreverse<mode>2): ... this. |
| (rbithi2): Rename to ... |
| (bitreversehi2): ... this. |
| (rbitqi2): Rename to ... |
| (bitreverseqi2): ... this. |
| (rbitsi_extended): Rename to ... |
| (bitreversesi2_extended): ... this. |
| |
| 2026-05-20 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| PR tree-optimization/112533 |
| * match.pd: Add integral narrowing eq/ne to XOR-against-zero |
| rule for (T)(x) == (T)(y) where precision(T) < precision(x). |
| |
| 2026-05-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * cselib.h (references_value_p): Remove only_useless parameter. |
| * cselib.cc (references_value_p): Likewise. Use rtx iterators. |
| (invariant_or_equiv_p): Update accordingly. |
| * postreload.cc (reload_cse_simplify_set): Likewise. |
| * var-tracking.cc (reverse_op): Likewise. |
| |
| 2026-05-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * cselib.h (cselib_val::HASH_MASK): New static constant. |
| (cselib_val::hash): Turn into a 30-bit bitfield. |
| (cselib_val::in_preserved_table_p): New bitfield. |
| (cselib_val::all_locs_preserved_p): Likewise. |
| * cselib.cc: Include rtl-iter.h. |
| (cselib_preserved_prune_list): New variable. |
| (cselib_clear_all_locs_preserved): New function. |
| (new_elt_loc_list): Call it when modifying a value's location list. |
| (preserve_constants_and_equivs): Set in_preserved_table_p when |
| moving a value to the preserved hash table. Also push such values |
| onto cselib_preserved_prune_list. |
| (cselib_find_slot): Mask out the upper 2 bits of the hash. |
| (discard_useless_locs): New overload, split out from original |
| hash table traverse callback. Use an inline rtl iteration |
| instead of calling references_value_p. Record whether the |
| retained location only reference preserved value. |
| (remove_useless_values): Iterate over cselib_preserved_prune_list |
| instead of the hash table itself. Remove a value from the list |
| if all remaining locations only reference preserved value. |
| (new_cselib_val): Initialize the new bitfields. |
| (cselib_finish): Free cselib_preserved_prune_list. |
| |
| 2026-05-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * cselib.cc (new_elt_loc_list): Cache CSELIB_VAL_PTR. |
| |
| 2026-05-20 Nathan Sidwell <nathan@acm.org> |
| |
| * config/riscv/riscv-builtins.cc (enum riscv_builtin_type): Delete. |
| (struct riscv_builtin_description): Replace builtin_type by bool. |
| Reorder fields for better packing. |
| (RISCV_BUILTIN_NO_PREFIX): Remove BUILTIN_TYPE arg. |
| (RISCV_BUILTIN): Likewise, call RISCV_BUILTIN_NO_PREFIX. |
| (DIRECT_BUILTIN): Adjust RISCV_BUILTIN invocation. |
| (DIRECT_NO_TARGET_BUILTIN): Delete. |
| (riscv_builtins): Make non-constant. Adjust initializers. |
| (riscv_init_builtins): Compute no_target from function type. |
| (riscv_expand_builtin): Simplify. |
| * config/riscv/andes.def: Adjust. |
| * config/riscv/corev.def: Adjust. |
| * config/riscv/riscv-cmo.def: Adjust. |
| * config/riscv/riscv-scalar-crypto.def: Adjust. |
| |
| 2026-05-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_SHIFT1): Remove. |
| * config/i386/i386.h (TARGET_SHIFT1): Remove. |
| * config/i386/i386.md (*ashl<mode>3_1<nf_name>): Remove |
| TARGET_SHIFT1-gated implicit-1 encoding and simplify |
| length_immediate attribute. |
| (*ashlsi3_1_zext): Likewise. |
| (*ashlhi3_1<nf_name>): Likewise. |
| (*ashlqi3_1<nf_name>): Likewise. |
| (*ashl<mode>3_1_slp): Likewise. |
| (*ashl<mode>3_cmp): Likewise. |
| (*ashlsi3_cmp): Likewise. |
| (*<any_shiftrt:insn><mode>3_1<nf_name>): Likewise. |
| (*<any_shiftrt:insn>si3_1_zext): Likewise. |
| (*<any_shiftrt:insn><mode>3_1_slp): Likewise. |
| (*<any_shiftrt:insn><mode>3_cconly): Likewise. |
| (*<any_shiftrt:insn>qi_ext<mode>_1): Likewise. |
| (<any_shiftrt:insn><mode>3_carry): Likewise. |
| |
| 2026-05-20 Michiel Derhaeg <michiel@synopsys.com> |
| |
| PR target/115650 |
| * config/arc/arc.cc (legitimate_small_data_address_p): Check |
| offset size. |
| |
| 2026-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125373 |
| * config/i386/i386.md |
| (Convert imul by three, five and nine into lea define_peephole2s): Use |
| index_reg_operand instead of register_operand. |
| |
| 2026-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125357 |
| * config/i386/i386-expand.cc (ix86_expand_vec_perm): For TARGET_AVX |
| one_operand_shuffle handle also V2DImode and V2DFmode using |
| vpaddq and vpermilpd. |
| |
| 2026-05-20 liuhongt <hongtao.liu@intel.com> |
| |
| * tree-ssa-loop-unswitch.cc (estimate_loop_insns): New function. |
| (init_loop_unswitch_info): Do not select an outer loop for |
| unswitching when the duplicated outer-body size exceeds |
| param_max_unswitch_insns. |
| |
| 2026-05-20 Zhou Qiankang <wszqkzqk@qq.com> |
| |
| PR target/125362 |
| * config/loongarch/t-loongarch (TM_H): Add |
| common/config/loongarch/cpu-features.h. |
| |
| 2026-05-19 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR target/123748 |
| * config/aarch64/aarch64-simd.md (vec_packs_float_v2di): New pattern. |
| |
| 2026-05-19 Christopher Bazley <chris.bazley@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_call_scalar_result_in_simd_reg_p): |
| New function to determine probabilistically whether a gcall |
| produces a scalar result in a SIMD/FP register. |
| (aarch64_scalar_op_to_vec_p): New function to determine |
| whether or not to add scalar_to_vec_cost per scalar operand |
| from which a vector is to be constructed. |
| (aarch64_external_adjust_stmt_cost): New function to adjust the |
| cost of an SLP tree node for a vec_construct that is fed by |
| values defined outside the vectorized region. |
| (aarch64_vector_costs::add_stmt_cost): Call the new |
| aarch64_external_adjust_stmt_cost function if we have an SLP |
| node and a vector type. |
| |
| 2026-05-19 Paul-Antoine Arras <parras@baylibre.com> |
| Chung-Lin Tang <cltang@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * fold-const.cc (operand_compare::operand_equal_p): Handle |
| OMP_ARRAY_SECTION. |
| * gimplify.cc (gimplify_scan_omp_clauses): Call |
| omp_remove_duplicate_maps after partial clause expansion. |
| * omp-general.cc (omp_remove_duplicate_maps): New function. |
| * omp-general.h (omp_remove_duplicate_maps): Declare. |
| * omp-low.cc (install_var_field): Add new 'tree key_expr = NULL_TREE' |
| default parameter. Set splay-tree lookup key to key_expr instead of |
| var if key_expr is non-NULL. Adjust call to install_parm_decl. |
| Update comments. |
| (scan_sharing_clauses): Use clause tree expression as splay-tree key |
| for map/to/from and OpenACC firstprivate cases when installing the |
| variable field into the send/receive record type. |
| (lower_oacc_reductions): Adjust to find map-clause of reduction |
| variable, then create receiver-ref. |
| (lower_omp_target): Adjust to lookup var field using clause expression. |
| |
| 2026-05-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/125348 |
| * config/i386/i386-expand.cc (ix86_expand_builtin): Fix diagnostic |
| typo, forth -> fourth. |
| |
| 2026-05-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50481 |
| * config/avr/avr.md (bitreverseqi2): New insn-and-split. |
| (*bitreverseqi2): New insn. |
| |
| 2026-05-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/90483 |
| PR libstdc++/118416 |
| * config/i386/i386-expand.cc (ix86_expand_sse_ptest): Refactor |
| with optimizations for PTESTZ*, PTESTC* and PTESTNZC*, including |
| transforming ptestz(x,-1) into ptestz(x,x). |
| |
| 2026-05-19 Christophe Lyon <christophe.lyon@arm.com> |
| |
| PR target/124870 |
| * config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl) |
| (vldrq_gather_base_impl): Fix call_properties. |
| |
| 2026-05-19 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cfgrtl.cc: Don't include gimplify.h or gimplify-me.h. |
| * cgraphbuild.cc: Likewise. |
| * emit-rtl.cc: Likewie. |
| * tree-ssa-dom.cc: Likewise. |
| * tree-ssa-dse.cc: Likewise. |
| * tree-ssa-loop-im.cc: Likewise. |
| * tree-ssa-loop-niter.cc: Likewise. |
| * tree-ssa-loop-unswitch.cc: Likewise. |
| * tree-ssa-math-opts.cc: Likewise. |
| * tree-ssa-phiopt.cc: Likewise. |
| * tree-ssa-phiprop.cc: Likewise. |
| * tree-ssa-pre.cc: Likewise. |
| * tree-ssa-propagate.cc: Likewise. |
| * tree-ssa-sccvn.cc: Likewise. |
| * gimplify.h (unshare_expr): Remove. |
| (unshare_expr_without_location): Remove. |
| (copy_if_shared): Remove. |
| * tree.h (unshare_expr): New decl. |
| (unshare_expr_without_location): Likewise. |
| (copy_if_shared): Likewise. |
| * gimplify.cc (mostly_copy_tree_r): Moved to tree.cc. |
| (copy_if_shared_r): Likewise. |
| (copy_if_shared): Likewise. |
| (unshare_expr): Likewise. |
| (prune_expr_location): Likewise. |
| (unshare_expr_without_location): Likewise. |
| * tree.cc (mostly_copy_tree_r): Moved from gimplify.cc |
| (copy_if_shared_r): Likewise. |
| (copy_if_shared): Likewise. |
| (unshare_expr): Likewise. |
| (prune_expr_location): Likewise. |
| (unshare_expr_without_location): Likewise. |
| |
| 2026-05-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125357 |
| * config/i386/i386-expand.cc (ix86_expand_vec_perm): For |
| one_operand_shuffle if TARGET_AVX and not TARGET_AVX512F use |
| vpermilps for V4SImode/V4SFmode. Formatting fix. |
| |
| 2026-05-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (bitreversehi2, bitreversesi2): New insn_and_split. |
| (*bitreversehi2.libgcc, *bitreversesi2.libgcc): New insns. |
| |
| 2026-05-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * optabs.cc (widen_bswap): Add UNOPTAB argument and use it instead |
| of hardcoded bswap_optab. Rename to ... |
| (widen_bswap_or_bitreverse): ... this. |
| (expand_doubleword_bswap): Add UNOPTAB argument and use it instead |
| of hardcoded bswap_optab. Rename to ... |
| (expand_doubleword_bswap_or_bitreverse): ... this. |
| (expand_bitreverse): Use widen_bswap_or_bitreverse and |
| expand_doubleword_bswap_or_bitreverse. |
| (expand_unop): Adjust widen_bswap and expand_doubleword_bswap callers |
| to use new names and add an extra bswap_optab argument. |
| |
| 2026-05-19 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125355 |
| * config/i386/i386-expand.cc (ix86_expand_movmem): Replace |
| optimize_function_for_size_p with optimize_insn_for_size_p. |
| |
| 2026-05-19 Robin Dapp <robin.dapp@oss.qualcomm.com> |
| |
| PR target/125097 |
| * config/riscv/riscv.cc (riscv_legitimize_move): Emit 32-bit |
| vec_extracts right away. |
| |
| 2026-05-19 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| * config/riscv/autovec.md (<cbranch_optab><mode>): Remove. |
| * config/riscv/riscv-protos.h (expand_vec_cmp_float): Add mask |
| and else arguments. |
| * config/riscv/riscv-v.cc (expand_vec_cmp): Add mask and else |
| arguments. |
| (expand_vec_cmp_float): Ditto. |
| * config/riscv/vector-iterators.md: Remove iterators. |
| |
| 2026-05-19 Peter Bergner <bergner@linux.ibm.com> |
| Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| * config/rs6000/amo.h: Add missing atomic memory operations. |
| * doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document |
| new functions. |
| |
| 2026-05-19 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR target/125351 |
| * config/i386/i386.md: Use alternative to handle masm ptwrite |
| syntax. |
| |
| 2026-05-18 Xin Wang <yw987194828@gmail.com> |
| |
| * tree-ssa-loop-split.cc (fix_loop_bb_probability): Rename |
| parameters from true_edge/false_edge to loop1_edge/loop2_edge |
| and scale both loops directly from their semantic edge |
| probabilities. |
| (split_loop): Derive loop1_edge and loop2_edge from initial_true. |
| Use them for loop1_prob, fix_loop_bb_probability, and iteration |
| estimate scaling. |
| |
| 2026-05-18 Wang Yaduo <wangyaduo@linux.alibaba.com> |
| |
| * config/riscv/riscv-cores.def: Add xt-c9501fdvt tune and core. |
| * doc/riscv-mcpu.texi: Regenerated. |
| * doc/riscv-mtune.texi: Regenerated. |
| |
| 2026-05-18 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_rtx_costs): Properly cost pack insns |
| for Zbkb. |
| * config/riscv/riscv.md (zero_extendsidi2): Expand into shift pairs |
| when the appropriate instructions are not available. |
| (zero_extendhi<GPR:mode>2): Simlarly. |
| (*zero_extendsidi2_internal): Make a simple define_insn. Only handle |
| MEM sources. |
| (*zero_extendhi<GPR2:mode>2): Similarly. |
| (zero_extendsidi2_shifted): Turn into a define_split and generalize |
| to handle more constants. |
| * config/riscv/predicates.md (dimode_shift_operand): New predicate. |
| |
| 2026-05-18 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * ext-dce.cc (carry_backpropagate): Handle AND and IOR with a constant argument. |
| |
| 2026-05-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/analyzer.texi: Update for change in param name. |
| * doc/params.texi: Likewise. Clarify wording. |
| |
| 2026-05-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * dump-context.h (dump_context::emit_optinfo): "info" is non-null, |
| so pass it by reference. |
| * dumpfile.cc (dump_context::end_any_optinfo): Update for above |
| change. |
| (dump_context::emit_optinfo): Likewise. |
| * optinfo-emit-json.cc: Update throughout to eliminate naked "new" |
| and "delete" in favor of std::make_unique and unique_ptr. Drop |
| redundant dtor. Use nullptr rather than NULL. Pass by |
| const-reference rather than by const-pointer in the places that |
| require non-null. |
| * optinfo-emit-json.h: Likewise. |
| * optinfo.cc (optinfo::emit_for_opt_problem): Update for above |
| changes. |
| |
| 2026-05-18 Yoshinori Sato <yoshinori.sato@nifty.com> |
| |
| * config/rx/rx.cc (rx_gen_move_template): Select the mode with the smallest size |
| for the mov instruction. |
| |
| 2026-05-18 Kito Cheng <kito.cheng@sifive.com> |
| |
| * expr.cc (calculate_reversed_crc): New function. |
| (assemble_reversed_crc_table): New function. |
| (generate_reversed_crc_table): New function. |
| (calculate_table_based_reversed_CRC): New function. |
| (expand_reversed_crc_table_based): Remove gen_reflecting_code |
| parameter. Use calculate_table_based_reversed_CRC. |
| * expr.h (expand_reversed_crc_table_based): Update prototype. |
| * builtins.cc (expand_builtin_crc_table_based): Update call. |
| * internal-fn.cc (expand_crc_optab_fn): Update call. |
| * config/aarch64/aarch64.md (crc_rev<ALLI:mode><ALLX:mode>4): |
| Update call. |
| * config/i386/i386.md (crc_rev<SWI124:mode>si4): Update call. |
| * config/loongarch/loongarch.md (crc_rev<mode>si4): Update call. |
| Remove local rbit lambda. |
| * config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): |
| Update call. Remove TARGET_ZBKB case. |
| * config/riscv/riscv.cc (generate_reflecting_code_using_brev): |
| Remove. |
| * config/riscv/riscv-protos.h (generate_reflecting_code_using_brev): |
| Remove declaration. |
| |
| 2026-05-18 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Remove else. |
| |
| 2026-05-18 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_check_target_clone_version): Fix |
| format specifier. |
| |
| 2026-05-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * config/i386/i386-protos.h (ix86_expand_gfni_bitreverse): Declare. |
| * config/i386/i386-expand.cc (ix86_expand_gfni_bitreverse): New |
| function. |
| * config/i386/i386.md (bitreverse<mode>2): New expander. |
| |
| 2026-05-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125355 |
| * config/i386/i386-expand.cc (ix86_expand_movmem): Return false |
| for -Os. |
| |
| 2026-05-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-uncprop.cc (associate_equivalences_with_edges): For switches |
| info only store the case low value to be recorded as |
| the only value. Add comments. |
| |
| 2026-05-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * ipa-icf-gimple.cc (func_checker::compare_gimple_switch): Remove |
| the check on CASE_LABEL_EXPR since it is redundant. |
| |
| 2026-05-17 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-dom.cc (record_edge_info): For switches |
| info only store the case low value to be recorded as |
| the only value. Add comments. |
| |
| 2026-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * match.pd (BITREVERSE): New define_operator_list. Use it next to |
| BSWAP for a subset of bswap simplifications. |
| |
| 2026-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * doc/extend.texi (__builtin_bitreverse32, __builtin_bitreverse64): |
| Tweak wording for consistency with __builtin_bswap*. |
| (__builtin_bitreverse128): Document. |
| * builtins.def (BUILT_IN_BITREVERSE128): New. |
| * builtins.cc (expand_builtin): Handle also BUILT_IN_BITREVERSE128. |
| (is_inexpensive_builtin): Likewise. |
| * fold-const-call.cc (fold_const_call_ss): Handle also |
| CFN_BUILT_IN_BITREVERSE128. |
| * fold-const.cc (tree_call_nonnegative_warnv_p): Likewise. |
| * tree-ssa-ccp.cc (evaluate_stmt): Handle also BUILT_IN_BITREVERSE128. |
| * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p): Handle also |
| CFN_BUILT_IN_BITREVERSE128. |
| (cond_removal_in_builtin_zero_pattern): Likewise. |
| |
| 2026-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * tree-ssa-ccp.cc (evaluate_stmt): Fix up |
| BUILT_IN_BITREVERSE{8,16,32,64} handling. |
| |
| 2026-05-16 Roger Sayle <roger@nextmovesoftware.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.cc (scalar_chain): If the chain |
| starts with a register-to-register move from a hard register, |
| then the hard register's defs don't need to converted. |
| (timode_scalar_chain::compute_convert_gain): Provide costs |
| for hard_reg-to-pseudo and pseudo-to-hard_reg moves. |
| Tweak speed cost of timode_concatdi_p moves. |
| (timode_scalar_chain::convert_insn): Add support for |
| hard_reg-to-pseudo and pseudo-to-hard_reg TImode transfers. |
| (timode_scalar_to_vector_candidate_p): Likewise. |
| |
| 2026-05-16 Shivam Gupta <shivam98.tkg@gmail.com> |
| |
| PR tree-optimization/112095 |
| * match.pd: Simplify ((~x) & y) ^ (x | y) |
| to x and ((~x) | y) ^ (x & y) to ~x. |
| |
| 2026-05-16 Timo Rothenpieler <timo@rothenpieler.org> |
| |
| * config/i386/mingw-pthread.h: |
| rename to generic config/mingw/mingw-pthread.h |
| * config.gcc [aarch64-*-mingw*]: |
| Fix support for posix threading on aarch64 mingw targets. |
| * config/mingw/mingw-pthread.h: New file. |
| |
| 2026-05-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-operands.cc (operands_scanner::parse_ssa_operands): |
| Process index of the gswitch only. |
| |
| 2026-05-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125290 |
| * tree-cfg.cc (group_case_labels_stmt): Remove code that was |
| added to remove `cases` that goto blocks of unreachable. |
| * tree-ssa-forwprop.cc (optimize_unreachable): Remove the |
| comment about switch cases being handled. |
| |
| 2026-05-15 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.h (ASM_PREFERRED_EH_DATA_FORMAT): Use |
| DW_EH_PE_aligned encoding on 64-bit HP-UX. |
| |
| 2026-05-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR rtl-optimization/125321 |
| * function-abi.cc (function_abi_aggregator::caller_save_regs): |
| Return the enabled registers. |
| |
| 2026-05-15 Xi Ruoyao <xry111@xry111.site> |
| |
| PR tree-optimization/125291 |
| * tree-scalar-evolution.cc (simplify_peeled_chrec): Sign-extend |
| the step for peeled converted IV. |
| |
| 2026-05-15 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (spaceship<mode>4): New |
| define_expand. |
| |
| 2026-05-15 Abhishek Kaushik <abhishek.kaushik@arm.com> |
| |
| PR target/123924 |
| * match.pd: Allow conversions in FMA-to-FNMA fold. |
| |
| 2026-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vector_costs::add_slp_cost): New. |
| * tree-vectorizer.cc (vector_costs::add_slp_cost): New |
| default version. |
| * tree-vect-slp.cc (add_slp_costs): Helper for dispatching |
| a cost vector in SLP chunks. |
| (vect_slp_analyze_operations): Adjust. |
| (li_cost_vec_cmp): Likewise. |
| (vect_bb_vectorization_profitable_p): Likewise. |
| |
| 2026-05-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125296 |
| * tree-ssa-forwprop.cc (forward_propagate_addr_expr_1): |
| Preserve alignment of the original access. |
| |
| 2026-05-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125308 |
| * config/i386/sse.md (*minmax<mode>3_4): Force also |
| operands[2] into a REG. |
| |
| 2026-05-15 Disservin <disservin.social@gmail.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50481 |
| * builtin-types.def (BT_FN_UINT8_UINT8): New. |
| * builtins.def (BUILT_IN_BITREVERSE8, BUILT_IN_BITREVERSE16, |
| BUILT_IN_BITREVERSE32, BUILT_IN_BITREVERSE64): New builtins. |
| * builtins.cc (expand_builtin, is_inexpensive_builtin): Handle |
| bitreverse builtins. |
| * fold-const-call.cc (fold_const_call_ss): Fold bitreverse builtins. |
| * fold-const.cc (tree_call_nonnegative_warnv_p): Handle |
| bitreverse builtins. |
| * optabs.def (bitreverse_optab): New. |
| * optabs.cc (expand_bitreverse): New function. |
| (expand_unop): Use it for bitreverse_optab. |
| * tree-ssa-ccp.cc (evaluate_stmt): Handle bitreverse builtins. |
| * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p, |
| cond_removal_in_builtin_zero_pattern): Likewise. |
| * doc/extend.texi: Document __builtin_bitreverse{8,16,32,64}. |
| * doc/md.texi (bitreverse<mode>2): Document. |
| |
| 2026-05-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/125081 |
| * doc/invoke.texi (Wconstant-logical-operand): Document. |
| |
| 2026-05-14 Andi Kleen <ak@gcc.gnu.org> |
| |
| PR target/124316 |
| * config/i386/i386.md (ptwrite): Add explicit mode to |
| instruction. |
| |
| 2026-05-14 Xi Ruoyao <xry111@xry111.site> |
| |
| PR rtl-optimization/96692 |
| * config/loongarch/loongarch.md (define_split): New splitters |
| turning a ^ b ^ (a | c) => (c &~ a) ^ b. |
| |
| 2026-05-14 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv-v.cc (expand_const_vector_stepped): Drop unused |
| SRC parameter. All callers changed. |
| (expand_const_vector_interleaved_stepped_npatterns): Likewise. |
| (expand_const_vector): Corresponding changes. |
| |
| 2026-05-14 Alex Coplan <alex.coplan@arm.com> |
| |
| * doc/rtl.texi (Machine Modes): Update description of |
| GET_MODE_MASK to use HOST_BITS_PER_WIDE_INT instead of |
| HOST_BITS_PER_INT as the upper limit of the input mode's bitsize. |
| |
| 2026-05-14 Tobias Burnus <tburnus@baylibre.com> |
| |
| * langhooks.cc (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt, |
| lhd_omp_deep_mapping): Improve interface comment. |
| * langhooks.h (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt, |
| lhd_omp_deep_mapping): Likewise |
| |
| 2026-05-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/125194 |
| * config/avr/avr.cc (avr_no_call_main_p): Remove variable... |
| (avr_file_end): ...and code that uses it. |
| (avr_insert_attributes): Same. Add "used" to main attributes |
| when -mno-call-main. |
| * config/avr/gen-avr-mmcu-specs.cc (print_mcu): Emit code |
| for link_no_call_main specs. |
| * config/avr/specs.h (LINK_SPEC): Add %(link_no_call_main). |
| |
| 2026-05-13 Zhongyao Chen <chen.zhongyao@zte.com.cn> |
| |
| PR target/125215 |
| * config/riscv/riscv-v.cc (expand_const_vector_interleaved_stepped_npatterns): |
| Remove hi/lo optimization and always use the merge fallback. |
| |
| 2026-05-13 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-chrec.cc (chrec_convert_1): Fold unsigned CHREC converts. |
| |
| 2026-05-13 Roger Sayle <roger@nextmovesoftware.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/32803 |
| * config/i386/i386.md (peephole2): Don't transform xorl;movb into |
| movzb with -Oz. |
| (peephole2): Convert movl into xorl;movb (strict_low_part) with -Oz. |
| (peephole2): Likewise, convert movl into xorl;movb [abcd]h with -Oz. |
| |
| 2026-05-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Record ls_type |
| for VMAT_STRIDED_SLP. |
| (vectorizable_load): Likewise. |
| |
| 2026-05-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_store): Set slp_node->data |
| and SLP_TREE_TYPE only on success. |
| (vectorizable_load): Likewise. Move one validity check early. |
| |
| 2026-05-13 Jeevitha Palanisamy <jeevitha@linux.ibm.com> |
| |
| PR target/122665 |
| * config/rs6000/vsx.md (smul<mode>3_highpart, umul<mode>3_highpart): |
| Replace shift-based patterns with smul_highpart and umul_highpart RTL |
| codes and use altivec_register_operand. |
| |
| 2026-05-13 Reshma Roy <Reshma.Roy@amd.com> |
| |
| * match.pd: Add new popcount pattern variants from Hacker's Delight. |
| |
| 2026-05-13 H.J. Lu <hjl.tools@gmail.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/120870 |
| * config/i386/i386.cc (ix86_save_reg): Return true for DRAP |
| register early at entry. |
| (find_drap_reg): Use R11_REG in preserve_none functions in |
| 64-bit mode. |
| |
| 2026-05-13 Tobias Burnus <tburnus@baylibre.com> |
| |
| * omp-general.cc (omp_runtime_api_procname): Add omp_control_tool. |
| |
| 2026-05-12 Heiko Eißfeldt <heiko.Eissfeldt@hexco.de> |
| |
| PR middle-end/124651 |
| * gimple-warn-recursion.cc (find_function_exit): |
| replace recursive calls with iteration for lower stack usage |
| |
| 2026-05-12 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa64-hpux.h (MD_EXEC_PREFIX): Define to empty |
| string. |
| |
| 2026-05-12 Christopher Bazley <chris.bazley@arm.com> |
| |
| * common.opt: Add Wzero-init-padding-bits=. |
| * common.opt.urls: Regenerated. |
| * doc/invoke.texi: Document Wzero-init-padding-bits=. |
| * expr.cc (categorize_ctor_elements_1): Update new struct type |
| ctor_completeness instead of an integer to indicate presence of |
| padding or missing fields in a constructor. Instead of setting -1 |
| upon discovery of padding bits in both structs and unions, |
| set separate flags to indicate the type of padding bits. |
| (categorize_ctor_elements): Update the type and documentation of |
| the p_complete parameter. |
| (mostly_zeros_p): Use new struct type ctor_completeness when |
| calling categorize_ctor_elements. |
| (all_zeros_p): Use new struct type ctor_completeness when |
| calling categorize_ctor_elements. |
| * expr.h (struct ctor_completeness): New struct type to replace an |
| an integer that could take the value -1 ('all fields are |
| initialized, but there's padding'), 0 ('fields are missing') or |
| 1 ('all fields are initialized, and there's no padding'). Named |
| bool members make the code easier to understand and make room to |
| disambiguate struct padding bits from union padding bits. |
| (categorize_ctor_elements): Update the function declaration to use |
| the new struct type in the last parameter declaration. |
| * gimplify.cc (gimplify_init_constructor): Replace use of |
| complete_p != 0 ('all fields are initialized') with !sparse, |
| replace use of complete == 0 ('fields are missing') with sparse, and |
| replace use of complete <= 0 ('fields are missing' or 'all fields are |
| initialized, but there's padding') with sparse || padded_union or |
| padded_non_union. Trigger new warnings if storage for the object |
| is not zeroed but padded_union or padded_non_union is set |
| (because this combination implies possible non-zero padding bits). |
| |
| 2026-05-12 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/124151 |
| * tree-sra.cc (build_user_friendly_ref_for_offset): Added parameters |
| CUR_SIZE and EXP_SIZE. Added code passing the correct CUR_SIZE and |
| checking it against EXP_SIZE. Removed unused code for the case when |
| EXP_TYPE was NULL_TREE. |
| (create_artificial_child_access): Adjusted the call to |
| build_user_friendly_ref_for_offset. |
| (propagate_subaccesses_from_rhs): Likewise. |
| (propagate_subaccesses_from_rhs): Removed a check that the size of |
| lchild is a multiple of BITS_PER_UNIT. |
| (propagate_subaccesses_from_lhs): Likewise. |
| |
| 2026-05-12 Yoshinori Sato <yoshinori.sato@nifty.com> |
| |
| PR target/113948 |
| * config/rx/rx-protos.h (rx_split_double_move): New helper prototype. |
| (rx_relax_double_operands): Likewise. |
| * config/rx/rx.cc (rx_legitimize_address): Add expand complex case. |
| (rx_is_legitimate_address): Add double word case. |
| (rx_gen_move_template): Fix operation size in unsigned extend. |
| (rx_gen_move_template): Remove DImode and DFmode. |
| (rx_get_stack_layout): Fix for frame size calculation. |
| (rx_initial_elimination_offset): The calculation method has been |
| changed to one that supports LRA. |
| (rx_hard_regno_nregs): Use CEIL. |
| (rx_hard_regno_mode_ok): Add ATTRIBUTE_UNUSED. |
| (rx_get_subword): New. Double word move helper. |
| (rx_split_double_move): Likewise. |
| (rx_relax_double_operands): Likewise. |
| * config/rx/rx.h (reg_class): Add CC for all regsisters. |
| (CLASS_MAX_NREGS): Remove. |
| * config/rx/rx.md (mov<register_modes:mode>): |
| Replace copy_to_mode_reg to force_reg. |
| (movdi): Limit the arguments to make register allocation easier. |
| (movdf): Likewise. |
| (movdi_internal): New. |
| (movdf_internal): New. |
| (addsi3_pid): New. Handling UNSPEC_PID_ADDR. |
| (addsi3_lra): New. alternative addptrsi3. |
| (ashlsi3_lra): Likewise. |
| |
| 2026-05-12 Lili Cui <lili.cui@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * tree-vect-slp.cc (vect_analyze_slp_reduction): Don't bail out |
| early when SLP discovery limit is exhausted; only guard the chain |
| analysis which may build multi-lane trees. Single-lane fallback |
| does not consume limit and should always be attempted. |
| |
| 2026-05-12 Lili Cui <lili.cui@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| * tree-vect-slp.cc (vect_build_slp_tree_1): Use unified |
| first_commutative_argument interface to allow commutative |
| operand swap for both tree codes and internal functions |
| (e.g. .COND_ADD) in SLP reduction matching. |
| |
| 2026-05-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (get_load_store_type): Pass |
| temporary to vect_use_grouped_gather, only set ls_type |
| when that succeeded. |
| |
| 2026-05-12 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR middle-end/125259 |
| * match.pd: Fix the view_convert (BIT_FIELD_REF) pattern. |
| |
| 2026-05-12 Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc [aarch64*-wrs-vxworks*] (tm_file): Add |
| aarch64/aarch64-errata.h. |
| * config/aarch64/aarch64-vxworks.h (LINK_SPEC): Add |
| AARCH64_ERRATA_LINK_SPEC. |
| (CC1_SPEC, CC1PLUS_SPEC): Add AARCH64_ERRATA_COMPILE_SPEC. |
| |
| 2026-05-12 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| * fold-const-call.cc (fold_internal_fn_sat_add): New function. |
| (fold_const_call): Handle CFN_SAT_ADD. |
| * match.pd: Add simplifications for x SAT_ADD 0 == x. |
| * genmatch.cc (commutative_op): Add CFN_SAT_ADD. |
| |
| 2026-05-12 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_imm_low): |
| Change return type to const char *. |
| * config/aarch64/aarch64.cc (aarch64_output_simd_mov_imm_low): Likewise. |
| |
| 2026-05-11 William D. Jones <thor0505@comcast.net> |
| |
| PR target/120077 |
| * config/lm32/lm32.cc: Enable LRA after diff testing showed minimal issues. |
| |
| 2026-05-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
| |
| * flag-types.h (gfc_fcoarray): Add GFC_FCOARRAY_SHARED. |
| |
| 2026-05-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (FPreg_neg_scaled_simm12b, convert_SF_const, constantsynth_pass1, |
| litpool_set_src_1, litpool_set_src): |
| Change each call to validate_change() and apply_change_group() to |
| trigger an ICE if the result is not true. |
| |
| 2026-05-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (xtensa_can_eliminate_callee_saved_reg_p): |
| Change the arguments that return values from being passed by pointer |
| to C++ reference. |
| (xtensa_expand_prologue): |
| Adjust the call to xtensa_can_eliminate_callee_saved_reg_p() to |
| match the above changes. |
| |
| 2026-05-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (HONOR_REG_ALLOC_ORDER): |
| New macro definition. |
| |
| 2026-05-11 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-tuning-flags.def |
| (AARCH64_EXTRA_TUNE_BASE): Add AARCH64_EXTRA_TUNE_NARROW_GP_WRITES. |
| |
| 2026-05-11 Pan Li <pan2.li@intel.com> |
| |
| * Makefile.in: Add match-sat-alu.pd as dependency. |
| * match.pd: Remove saturation alu related patterns. |
| * match-sat-alu.pd: Add new file for saturation alu patterns. |
| |
| 2026-05-11 Oleg Tolmatcev <oleg.tolmatcev@gmail.com> |
| |
| * config/i386/cygming.h (TARGET_SEH): Keep SEH enabled for all |
| 64-bit Windows functions when unwind tables are requested. |
| |
| 2026-05-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125250 |
| * tree-ssa-loop-im.cc (execute_sm): For modes that cannot |
| transfer bits, _Bool and bitfield accesses force the |
| multi-threaded model. |
| |
| 2026-05-11 LIU Hao <lh_mouse@126.com> |
| |
| PR target/53929 |
| * config/mingw/winnt.cc (mingw_pe_file_end): Use `ASM_OUTPUT_LABELREF` |
| to emit `name`. |
| |
| 2026-05-11 Richard Biener <rguenther@suse.de> |
| |
| PR target/125174 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Cost calls as 10 times FMA. |
| |
| 2026-05-11 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR rtl-optimization/121426 |
| * combine.cc (recog_for_combine_1): Reject insns which make use |
| of hard register constraints. |
| |
| 2026-05-11 Naveen <naveen.siddegowda@oss.qualcomm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_output_simd_mov_imm_low): New. |
| (aarch64_const_vec_fmov_p): New. |
| * config/aarch64/aarch64-simd.md (mov<mode>): Do not expand constant |
| vectors handled by aarch64_const_vec_fmov_p into VDUP. |
| (*aarch64_simd_mov<VDMOV:mode>): Add Dc alternatives for FMOV based |
| SIMD constant moves. |
| (*aarch64_simd_mov<VQMOV:mode>): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_const_vec_fmov_p): New function. |
| (aarch64_output_simd_mov_imm_low): New function. |
| * config/aarch64/constraints.md (Dc): New constraint. |
| |
| 2026-05-11 Boudewijn van der Heide <boudewijn@delta-utec.com> |
| |
| PR rtl-optimization/125209 |
| * combine.cc (make_compound_operation_int): Return NULL_RTX if we got CLOBBER. |
| |
| 2026-05-11 Shreya Munnangi <smunnang@qti.qualcomm.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/80770 |
| * rtl.h (simplify_context::simplify_ior_with_common_term): Add |
| new method. |
| (simplify_context::simplify_binary_operation_1): Use new method. |
| * simplify-rtx.cc (simplify_context::simplify_ior_with_common_term): |
| New method. |
| |
| 2026-05-10 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov.cc (json_set_prime_path_coverage): Read arc.true_value. |
| |
| 2026-05-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125238 |
| * config/i386/i386-features.cc (ix86_broadcast_inner): Set kind |
| to X86_CSE_CONST_VECTOR if the vector load can be converted to |
| constant integer load. |
| |
| 2026-05-09 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| |
| PR target/125217 |
| * config/riscv/riscv.cc (riscv_gen_multi_pop_insn): Rename variable. |
| (riscv_expand_epilogue): Don't emit cm.popret with shadow stack. |
| |
| 2026-05-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/117871 |
| * cfghooks.cc (cfg_hooks): Change the type |
| to be a pointer to a const struct cfg_hooks. |
| (get_cfg_hooks): Return the current pointer |
| rather the struct. |
| (set_cfg_hooks): Change the argument type and |
| set the cfg_hooks directly to it. |
| * cfghooks.h (gimple_cfg_hooks): Constify. |
| (rtl_cfg_hooks): Likewise. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| (get_cfg_hooks): Update declration. |
| (set_cfg_hooks): Likewise. |
| * cfgrtl.cc (rtl_cfg_hooks): Constify. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| * sel-sched-ir.cc (orig_cfg_hooks): Change to a pointer. |
| (sel_create_basic_block): Update |
| for orig_cfg_hooks being a pointer. |
| (sel_register_cfg_hooks): Update for the constification |
| of cfg_hooks. |
| * tree-cfg.cc (gimple_cfg_hooks): Constify. |
| |
| 2026-05-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cfghooks.cc (current_ir_name): New function. |
| (dump_bb_for_graph): Use current_ir_name |
| instead of accessing the name field. |
| (dump_bb_as_sarif_properties): Likewise. |
| (redirect_edge_and_branch): Likewise. |
| (can_remove_branch_p): Likewise. |
| (redirect_edge_and_branch_force): Likewise. |
| (split_block_1): Likewise. |
| (move_block_after): Likewise. |
| (delete_basic_block): Likewise. |
| (split_edge): Likewise. |
| (create_basic_block_1): Likewise. |
| (can_merge_blocks_p): Likewise. |
| (predict_edge): Likewise. |
| (predicted_by_p): Likewise. |
| (merge_blocks): Likewise. |
| (make_forwarder_block): Likewise. |
| (force_nonfallthru): Likewise. |
| (can_duplicate_block_p): Likewise. |
| (duplicate_block): Likewise. |
| (block_ends_with_call_p): Likewise. |
| (block_ends_with_condjump_p): Likewise. |
| (flow_call_edges_add): Likewise. |
| * cfghooks.h (struct cfg_hooks): Remove the name |
| field. |
| * cfgrtl.cc (rtl_cfg_hooks): Update for the removal |
| of the name field. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| * tree-cfg.cc (struct cfg_hooks): Likewise. |
| |
| 2026-05-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cfghooks.cc (current_ir_type): Return cfghooks' ir field. |
| * cfghooks.h (struct cfg_hooks): Add ir field. |
| * cfgrtl.cc (rtl_cfg_hooks): Update for new ir field. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| * tree-cfg.cc (gimple_cfg_hooks): Likewise. |
| |
| 2026-05-09 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125239 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| For CONST_VECTOR source, check CONST0_RTX with |
| X86_CSE_CONST0_VECTOR and CONSTM1_RTX with X86_CSE_CONSTM1_VECTOR. |
| (ix86_broadcast_inner): Set x86_cse kind to X86_CSE_CONST0_VECTOR |
| for CONST0_RTX and X86_CSE_CONSTM1_VECTOR for CONSTM1_RTX. |
| |
| 2026-05-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125234 |
| * match.pd (`(a !=/== b) &\| ((a|b) ==/!= 0)`): Fix |
| resulting constant form. |
| |
| 2026-05-08 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/124637 |
| * calls.cc (load_register_parameters): If using store_constructor |
| to place a constant structure in a register, use a right shift to |
| align the structure/padding if required on big-endian targets. |
| |
| 2026-05-08 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/119422 |
| * match.pd(`(bool >= A) >= A -> bool >= A`): New pattern. |
| |
| 2026-05-08 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124955 |
| * config/riscv/riscv.md (masked shifted bitfield extraction): New |
| splitter to utilize slliw to eliminate the need for sign extnesion. |
| |
| 2026-05-08 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/93504 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): |
| Generalize existing code for (X & C) | ((X|Y) & ~C) to handle |
| (X & C) | ((X^Y) & ~C) as well. |
| |
| 2026-05-08 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expmed.cc (synth_mult): Add more constraints to recent change |
| to avoid "false positive" array bounds warnings during bootstrap. |
| |
| 2026-05-08 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.cc (loongarch_print_operand): Print |
| the symbol name for SYMBOL_REF with %c. |
| |
| 2026-05-08 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/125049 |
| * config/loongarch/predicates.md (ssp_operand): New |
| define_predicate. |
| (ssp_normal_operand): New define_predicate. |
| * config/loongarch/constraints.md (ZE): New define_constraint. |
| (ZF): New define_constraint. |
| * config/loongarch/loongarch.md (UNSPEC_SSP): New unspec. |
| (cbranch4): Add "@" to create gen_cbranch4(machine_mode, ...). |
| (@stack_protect_combined_set_normal_<mode>): New define_insn. |
| (@stack_protect_combined_set_extreme_<mode>): New define_insn. |
| (@stack_protect_combined_test_internal_<mode>): New define_insn. |
| (stack_protect_combined_set): New define_expand. |
| (stack_protect_combined_test): New define_expand. |
| * config/loongarch/loongarch-protos.h |
| (loongarch_output_asm_load_canary): Declare. |
| * config/loongarch/loongarch.cc (loongarch_print_operand): Allow |
| 'v' to print d/w for DImode/SImode. |
| (loongarch_output_asm_load_canary): Implement. |
| |
| 2026-05-08 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/loongarch.md (*ctzsi2_extend): New |
| define_insn. |
| |
| 2026-05-08 Vijay Shankar <vijay@linux.ibm.com> |
| |
| PR target/113353 |
| * config/rs6000/rs6000.cc (rs6000_builtin_vectorized_function): |
| Emit xvrdpic/xvrspic. |
| * config/rs6000/rs6000-overload.def (__builtin_vec_nearbyint): |
| Modified bif-id and overload-id. |
| |
| 2026-05-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125174 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): Cost |
| the number of OMP SIMD calls number of vector stmts. |
| |
| 2026-05-08 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv-v.cc (shuffle_even_odd_patterns): Use vnsrl |
| when possible. |
| |
| 2026-05-08 Soumya AR <soumyaa@nvidia.com> |
| |
| PR target/124895 |
| * config/aarch64/aarch64-passes.def (pass_narrow_gp_writes): Move pass |
| before pass_free_cfg. |
| |
| 2026-05-08 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125100 |
| * config/i386/i386-features.cc (x86_cse_kind): Add |
| X86_CSE_CONST_VECTOR. |
| (redundant_pattern): Add dest_mode. |
| (ix86_place_single_vector_set): Handle X86_CSE_CONST_VECTOR. |
| Generate SUBREG for constant integer source. |
| (ix86_broadcast_inner): Add an INSN argument. Use CONST_VECTOR |
| in REG_EQUAL note. Set load kind to X86_CSE_CONST_VECTOR for |
| native and converted CONST_VECTORs. Return CONST_VECTOR if it |
| can be converted to constant integer load. |
| (pass_x86_cse::candidate_vector_p): Add an INSN argument and |
| pass the insn to ix86_broadcast_inner. |
| (pass_x86_cse::x86_cse): Add a basic block bitmap for calls. |
| Pass the insn to candidate_vector_p. Handle X86_CSE_CONST_VECTOR. |
| Set dest_mode. Keep constant integer load when crossing a |
| function call. Convert CONST_VECTOR load no larger than integer |
| register to constant integer load even if there are no redundant |
| CONST_VECTOR loads. |
| |
| 2026-05-07 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/109878 |
| * match.pd(min/max (a & CST0, a & CST1)): New pattern. |
| (min/max (a, a & CST)): New pattern. |
| |
| 2026-05-07 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/106244 |
| * config/riscv/riscv.md ((and (ashift X Y) const_int 1)): New splitter. |
| |
| 2026-05-07 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/123514 |
| * match.pd ((x - (x<0)) ^ -(x<0) into ABS_EXPR<x>): New pattern. |
| |
| 2026-05-07 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtlanal.cc (commutative_operand_precedence): Bump the precedence |
| of non-commutative binary arithmetic to 3. Give comparisons a |
| precedence of 2. |
| |
| 2026-05-07 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * combine.cc (make_compound_operation_int): Remove PLUS and MINUS |
| simplifications and PLUS operand order swapping. Delegate those |
| tasks to simplify_gen_binary instead. |
| |
| 2026-05-07 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * alloc-pool.h (object_allocator::allocate): Generalize to handle |
| non-default constructors. |
| |
| 2026-05-07 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.h (post_ra_split_completed): Declare. |
| * final.cc (rest_of_clean_state): Set it to false. |
| * recog.cc (post_ra_split_completed): New variable. |
| (split_insn): Temporarily set post_ra_split_completed while walking |
| the new instructions. |
| (split_all_insns, split_all_insns_noflow): Set post_ra_split_completed |
| after completing a post-reload split. |
| * config/rx/rx.md (*cmpsi, *tstsi, *cmpsf, *conditional_branch) |
| (*sccc, *stcc, *stcc_reg, *abssi2_flags, *addsi3_flags, adc_internal) |
| (*adc_flags, *andsi3_flags, *negsi2_flags, *one_cmplsi2_flags) |
| (*iorsi3_flags, *rotlsi3_flags, *rotrsi3_flags, *ashrsi3_flags) |
| (*lshrsi3_flags, *ashlsi3_flags, *sat, *subsi3_flags, sbb_internal) |
| (*sbb_flags, *xorsi3_flags, *bmcc): Require post_ra_split_completed |
| rather than reload_completed. |
| (comparesi3_<extend_types:code><small_int_modes:mode>, addsi3_flags) |
| (subsi3_flags): Require post_ra_split_completed. |
| |
| 2026-05-07 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/125214 |
| * match.pd (min|max(a+|-c,b+|-c)): Add integral type check. |
| |
| 2026-05-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/122871 |
| * expmed.cc (synth_mult): Handle doubleword left shifts by |
| BITS_PER_WORD bits or more, for scalar modes. |
| * optabs.cc (expand_doubleword_mult): Avoid generating multiply |
| instructions by immediate constants 0, 1 or 2. |
| |
| 2026-05-07 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| * config/rs6000/crypto.md (UNSPEC_XXAESENCP): New unspec entry. |
| (UNSPEC_XXAES128ENCP): Likewise. |
| (UNSPEC_XXAES192ENCP): Likewise. |
| (UNSPEC_XXAES256ENCP): Likewise. |
| (UNSPEC_XXAESDECP): Likewise. |
| (UNSPEC_XXAES128DECP): Likewise. |
| (UNSPEC_XXAES192DECP): Likewise. |
| (UNSPEC_XXAES256DECP): Likewise. |
| (UNSPEC_XXAESGENLKP): Likewise. |
| (UNSPEC_XXAES128GENLKP): Likewise. |
| (UNSPEC_XXAES192GENLKP): Likewise. |
| (UNSPEC_XXAES256GENLKP): Likewise. |
| (UNSPEC_XXGFMUL128): Likewise. |
| (UNSPEC_XXGFMUL128GCM): Likewise. |
| (UNSPEC_XXGFMUL128XTS): Likewise. |
| (AESACC_base_code): New iterator for xxaesencp and xxaesdecp base |
| mnemonics. |
| (AESACC_code): New iterator for xxaesencp and xxaesdecp extended |
| mnemonics. |
| (AESGENLKP_code): New iterator for xxaesgenlkp extended mnemonics. |
| (AESGF_code): New iterator for xxgfmul128 extended mnemonics. |
| (AESACC_base_insn): New attribute iterator for xxaesencp and xxaesdecp |
| base mnemonics. |
| (AESACC_insn): New attribute iterator for xxaesencp and xxaesdecp |
| extended mnemonics. |
| (AESGENLKP_insn): New attribute iterator for xxaesgenlkp extended |
| mnemonics. |
| (AESGF_insn): New attribute iterator for xxgfmul128 extended mnemonics. |
| (<AESACC_base_insn>): New define_insn for xxaesencp and xxaesdecp base |
| mnemonics. |
| (<AESACC_insn>): New define_insn for xxaesencp and xxaesdecp extended |
| mnemonics. |
| (<AESGENLKP_insn>): New define_insn for xxaesgenlkp extended mnemonics. |
| (xxaesgenlkp): New define_insn for genlkp base mnemonic. |
| (<AESGF_insn>): New define_insn for xxgfmul128 extended mnemonics. |
| (xxgfmul128): New define_insn for xxgfmul128 base mnemonic. |
| * config/rs6000/rs6000-builtins.def: Added new builtin definitions for |
| AES acceleration. |
| * doc/extend.texi: Add new section for AES acceleration builtins |
| for Future ISA. |
| |
| 2026-05-07 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/predicates.md: Add lt to swapped operator. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Handle |
| the rtl as well. |
| |
| 2026-05-07 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/116008 |
| PR tree-optimization/124560 |
| * match.pd (min|max(a+|-c,b+|-c)): New patterns. |
| |
| 2026-05-06 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in (TAGS): Add diagnostics/ and text-art/. |
| |
| 2026-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * range-op-float.cc (fop_unordered): Make static and const. |
| (fop_ordered): Likewise. |
| (fop_unordered_lt): Likewise. |
| (fop_unordered_le): Likewise. |
| (fop_unordered_gt): Likewise. |
| (fop_unordered_ge): Likewise. |
| (fop_unordered_equal): Likewise. |
| (fop_ltgt): Likewise. |
| (fop_div): Likewise. |
| * range-op-ptr.cc (op_pointer_plus): Likewise. |
| (op_pointer_diff): Likewise. |
| * range-op.cc (op_equal): Likewise. |
| (op_not_equal): Likewise. |
| (op_lt): Likewise. |
| (op_le): Likewise. |
| (op_gt): Likewise. |
| (op_ge): Likewise. |
| (op_ident): Likewise. |
| (op_cst): Likewise. |
| (op_cast): Likewise. |
| (op_view): Likewise. |
| (op_plus): Likewise. |
| (op_abs): Likewise. |
| (op_minus): Likewise. |
| (op_negate): Likewise. |
| (op_mult): Likewise. |
| (op_addr): Likewise. |
| (op_bitwise_not): Likewise. |
| (op_bitwise_xor): Likewise. |
| (op_bitwise_and): Likewise. |
| (op_bitwise_or): Likewise. |
| (op_min): Likewise. |
| (op_max): Likewise. |
| (operator_table): Make static. Fix typo in comment. |
| (range_op_handler::range_op_handler): Fix typo in leading comment. |
| (range_op_handler::range_op): Make returned ptr const. Use |
| nullptr. |
| (RO_III): Make static. |
| (RO_IFI): Likewise. |
| (RO_IFF): Likewise. |
| (RO_FFF): Likewise. |
| (RO_FIF): Likewise. |
| (RO_FII): Likewise. |
| (RO_PPP): Likewise. |
| (RO_PPI): Likewise. |
| (RO_IPP): Likewise. |
| (RO_IPI): Likewise. |
| (RO_PIP): Likewise. |
| (RO_PII): Likewise. |
| (op_trunc_div): Make const. |
| (op_floor_div): Likewise. |
| (op_round_div): Likewise. |
| (op_ceil_div): Likewise. |
| * range-op.h (range_op_handler::range_op): Make returned ptr |
| const. |
| (range_op_handler::m_operator): Make const. |
| (range_op_table::operator[]): Make const. Make returned ptr |
| const. |
| (range_op_table::set): Make range_operator const. |
| (range_op_table::m_range_tree): Make ptrs const. |
| |
| 2026-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * value-range.cc (value_range::print): New, based on |
| value_range::dump. |
| * value-range.h (value_range::print): New decl. |
| |
| 2026-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * value-range.h: Remove stray slash in comment. |
| |
| 2026-05-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/state-transition.o. |
| * digraph.cc (test_path::append_edge): New. |
| (test_path::reverse): New. |
| * shortest-paths.h (get_shortest_path): Use append_edge and |
| reverse. |
| * tree-diagnostic.h |
| (tree_dump_pretty_printer::~tree_dump_pretty_printer): Only flush |
| when the buffer's stream is non-null. |
| |
| 2026-05-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range-storage.cc (prange_storage::alloc): Use prange_format. |
| (prange_storage::prange_storage): Likewise. |
| (prange_format::prange_format): New. |
| (prange_storage::set_prange): Use prange_foramt and only write |
| required words to storage. |
| (prange_storage::get_prange): Only read required words. |
| (prange_storage::equal_p): Adjust for new enum. |
| (prange_storage::fits_p): Use prange_format to determine size. |
| * value-range-storage.h (enum prange_kind): New. |
| (class prange_format): New. |
| (get_low, get_high, get_value, get_mask): Replace with get_word. |
| (set_low, set_high, set_value, set_mask): Replace with set_word. |
| (get_word): New. |
| (set_word): New. |
| |
| 2026-05-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-fold.cc (get_maxval_strlen): Return the same value if |
| passed a constant. |
| |
| 2026-05-06 Zhongyao Chen <chenzhongyao.hit@gmail.com> |
| |
| PR target/122558 |
| * config/riscv/riscv-vector-costs.cc (get_lmul_cost_scaling): |
| New function to calculate multiplicative scaling factors. |
| (costs::adjust_stmt_cost): Apply LMUL scaling uniformly to all |
| vector statements. |
| |
| 2026-05-06 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch.cc (loongarch_rtx_costs): Add |
| RTX cost handling for the ORDERED RTX code. |
| |
| 2026-05-06 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/125057 |
| * config/loongarch/loongarch.cc |
| (loongarch_split_vector_move): Complete the split condition. |
| * config/loongarch/loongarch.h (LSX_REG_RTX_P): Delete. |
| (LASX_REG_RTX_P): Delete. |
| (GP_REG_RTX_P): Define macro. |
| |
| 2026-05-06 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): |
| Rename from this... |
| (whole_reg_move_p): ...to this. |
| (whole_reg_loadstore_p): Declare. |
| * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto. |
| (whole_reg_move_p): Ditto. |
| (whole_reg_loadstore_p): New function. |
| * config/riscv/thead-vector.md: Use renamed function. |
| * config/riscv/vector.md (@pred_store<mode>): Use new function. |
| |
| 2026-05-06 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/x86-tune.def (avx512_two_epilogues): Enable |
| for m_ZNVER6. |
| (avx512_masked_epilogues): Likewise. |
| |
| 2026-05-05 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/120587 |
| PR target/125155 |
| * config/or1k/or1k.cc (or1k_hard_regno_mode_ok): Allow condition |
| condition flag register in SImode. |
| |
| 2026-05-05 wangzicong <wangzicong@masscore.cn> |
| |
| * config/riscv/riscv.cc (riscv_modes_tieable_p): Make tuple modes |
| not tieable to some modes. |
| |
| 2026-05-05 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/120189 |
| * doc/gm2.texi (Building a shared library): Rewrite the |
| description of the shared library and include complete code into |
| the example. |
| |
| 2026-05-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125185 |
| * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Guard |
| first vect_slp_linearize_chain call. |
| |
| 2026-05-05 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_legitimize_address): |
| Modify to extend the upper limit of the coverable offset if the |
| address displacement of the corresponding machine instruction is |
| greater than 255. |
| |
| 2026-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/125180 |
| * config/i386/i386.md (HI/SI test -> QI test splitter): Punt if |
| operands[2] is a volatile MEM. |
| |
| 2026-05-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125124 |
| * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Disable |
| BB SLP partitioning sanity-check. |
| |
| 2026-05-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR c/121911 |
| * target.def (stack_protect_guard_symbol_p): New target hook. |
| * targhooks.cc (default_stack_protect_guard): Use the type of |
| uintptr_t, instead of ptr_type_node, if the |
| stack_protect_guard_symbol_p hook returns true. |
| * config/i386/i386.cc (ix86_stack_protect_guard_symbol_p): New. |
| (TARGET_STACK_PROTECT_GUARD_SYMBOL_P): Likewise. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in (TARGET_STACK_PROTECT_GUARD_SYMBOL_P): New. |
| |
| 2026-05-04 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * config/m32c/*: Delete entire directory. |
| * attr-urls.def: Remove references to m32c. |
| * config.gcc: Likewise. |
| * config/msp430/msp430.cc (msp430_expand_epilogue): Likewise. |
| * configure: Regenerate. |
| * configure.ac: Remove references to m32c. |
| * doc/extend.texi: Likewise. |
| * doc/install.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * explow.cc (promote_mode): Likewise. |
| * regenerate-opt-urls.py: Likewise. |
| * config/microblaze/microblaze.opt.urls: Regenerate. |
| * config/msp430/msp430.opt.urls: Regenerate. |
| * config/nds32/nds32.opt.urls: Regenerate. |
| * config/rl78/rl78.opt.urls: Regenerate. |
| * config/rs6000/sysv4.opt.urls: Regenerate. |
| * config/rx/elf.opt.urls: Regenerate. |
| * config/stormy16/stormy16.opt.urls: Regenerate. |
| * config/visium/visium.opt.urls: Regenerate. |
| |
| 2026-05-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_expand_sve_vec_perm): Check |
| whether all indices of a variable selector refer to the first |
| values vector. |
| |
| 2026-05-04 Mark Wielaard <mark@klomp.org> |
| |
| * config/xtensa/xtensa.opt.urls: Regenerated. |
| |
| 2026-05-04 Nathan Myers <ncm@cantrip.org> |
| |
| * doc/invoke.texi: insert "result" in comment text |
| |
| 2026-05-04 Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR tree-optimization/122679 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Check the |
| PROP_gimple_lvec property before returning false. |
| |
| 2026-05-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/116823 |
| * tree-ssa-phiprop.cc (can_handle_load): Skip past |
| clobbers for !aggregate. |
| |
| 2026-05-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * data-streamer-in.cc (streamer_read_value_range): Update for |
| renaming of value_range::set_type to value_range::set_range_class. |
| * gimple-range-gori.cc (gori_compute::compute_operand_range): |
| Likewise. |
| (gori_compute::compute_operand1_and_operand2_range): Likewise. |
| (gori_stmt_info::gori_stmt_info): Likewise. |
| (gori_calc_operands): Likewise. |
| (gori_name_helper): Likewise. |
| * ipa-cp.cc (ipcp_vr_lattice::set_to_bottom): Likewise. |
| * ipa-cp.h (ipcp_vr_lattice::init): Likewise. |
| * ipa-fnsummary.cc (evaluate_properties_for_edge): Likewise. |
| * ipa-prop.cc (ipa_vr::get_vrange): Likewise. |
| * range-op.h (range_cast): Likewise. |
| * value-range.h (value_range::set_type): Rename to... |
| (value_range::set_range_class): ...this, and add a note to the |
| leading comment that it doesn't set the type of the underlying |
| vrange. |
| (value_range::init): Add a similar note to the leading comment. |
| |
| 2026-05-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::range_of_expr): Handle |
| NULL statement. |
| |
| 2026-05-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::fold_stmt): Move |
| range_of_address call into nested 'if' with other routines. |
| |
| 2026-05-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::ranger_cache): Allocate bitmap. |
| (ranger_cache::~ranger_cache): Free bitmap. |
| (ranger_cache::mark_stale): New. |
| (ranger_cache::get_global_range): Check if NAME is marked stale. |
| * gimple-range-cache.h (ranger_cache::mark_stale): New. |
| * gimple-range.cc (gimple_ranger::update_range_info): New variant. |
| * gimple-range.h (update_range_info): New prototype. |
| * gimple.h (gimple_set_modified): Call update_range_info. |
| * value-query.cc (range_query::update_range_info): New variant. |
| * value-query.h (range_query::update_range_info): New prototype. |
| |
| 2026-05-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.cc (irange::intersect): Snap bounds as they are created. |
| |
| 2026-05-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-query.cc (range_query::get_tree_range): Check if return |
| range R supports the expression type. |
| |
| 2026-05-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*bt<SWI48:mode>_mask): Use |
| int248_register_operand for operand 1 predicate. |
| (*jcc_bt<mode>_mask): Use nonimmediate_operand for operand 1 predicate. |
| (*jcc_bt<SWI48:mode>_mask_1): Use nonimmediate_operand for operand 1 |
| predicate and int248_register_operand for operand 2 predicate. |
| (BT followed by CMOV splitter): Use nonimmediate_operand |
| for operand 1 predicate. |
| (*bt<mode>_setcqi): Ditto. |
| (*bt<mode>_setncqi): Ditto. |
| (*bt<mode>_setnc<mode>): Ditto. |
| (*bt<mode>_setncqi_2): Ditto. |
| (*bt<mode>_setc<mode>_mask): Use nonimmediate_operand for operand 1 |
| predicate and int248_register_operand for operand 2 predicate. |
| |
| 2026-05-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123120 |
| PR tree-optimization/116823 |
| * tree-ssa-phiprop.cc (phiprop_insert_phi): Add other_vuse |
| argument, use it instead of the vuse on the use_stmt. |
| (can_handle_load): Add aggregate argument. Also return the vuse |
| of the load/store when the insert is allowed. |
| Skipping over one non-modifying store for !aggregate. |
| (propagate_with_phi): Update call to can_handle_load |
| and phiprop_insert_phi. |
| |
| 2026-05-04 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2025-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120003 |
| * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): |
| Allow block re-use but do not enlarge the path beyond such a |
| re-use. |
| |
| 2026-05-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/125156 |
| * tree-cfgcleanup.cc (cleanup_control_expr_graph): Clear |
| EDGE_TRUE_VALUE and EDGE_FALSE_VALUE edge flags only. |
| |
| 2026-05-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/125146 |
| * gimple-fold.cc (fold_stmt_1): Discard stmts in seq |
| after failed gimple_simplify as well. |
| |
| 2026-05-04 Kishan Parmar <kishan@linux.ibm.com> |
| |
| * config.gcc (powerpc*-*-*): Add support for supporting |
| --with-cpu=future. |
| * config/rs6000/aix71.h (ASM_CPU_SPEC): Pass -mfuture to the assembler |
| if the user used the -mcpu=future option. |
| * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. |
| * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise. |
| * config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Handle |
| ENB_FUTURE and issue diagnostic requiring -mcpu=future. |
| (rs6000_builtin_is_supported): Return TARGET_FUTURE for |
| ENB_FUTURE built-ins. |
| * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define |
| _ARCH_FUTURE if -mcpu=future. |
| * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): New macro. |
| (POWERPC_MASKS): Add OPTION_MASK_FUTURE. |
| (rs6000_cpu_opt_value): New entry for 'future' via the RS6000_CPU macro. |
| * config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add |
| BSTZ_FUTURE for future. |
| (write_decls): Add ENB_FUTURE in bif_enable enum of generated header |
| file. |
| * config/rs6000/rs6000-opts.h (PROCESSOR_FUTURE): New macro. |
| * config/rs6000/rs6000-tables.opt: Regenerate. |
| * config/rs6000/rs6000.cc (rs6000_machine_from_flags) If -mcpu=future, |
| set the .machine directive to "future". |
| (rs6000_opt_masks): Add entry for -mfuture. |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mfuture to the assembler |
| if the user used the -mcpu=future option. |
| * config/rs6000/rs6000.opt (-mfuture): New option. |
| * doc/invoke.texi (IBM RS/6000 and PowerPC Options): Document |
| -mcpu=future. |
| |
| 2026-05-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * doc/extend.texi (Xtensa Named Address Spaces): |
| Document '__force_l32'. |
| (Xtensa Attributes): Document 'force_l32'. |
| * doc/invoke.texi (Xtensa Options): |
| Document '-m[no-]force-l32'. |
| |
| 2026-05-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_expand_load_force_l32_2): |
| New sub-function for inspecting pseudos that clearly point to the |
| function's stack frame. |
| (xtensa_expand_load_force_l32): |
| Add handling for loading from the generic address space when the |
| "-mforce-l32" option is enabled, however, obvious references to |
| function stack frames are excluded. |
| * config/xtensa/xtensa.opt (mforce-l32): |
| New target-specific option definition. |
| |
| 2026-05-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_attribute_table, |
| TARGET_ATTRIBUTE_TABLE): |
| New definitions for target-specific attributes. |
| (xtensa_expand_load_force_l32_1): New sub-function for inspecting |
| the attribute from the specified MEM rtx. |
| (xtensa_expand_load_force_l32): Add handlings for for addresses |
| with offsets. |
| (xtensa_handle_force_l32_attribute_1, |
| xtensa_handle_force_l32_attribute): |
| New functions for handling the attribute. |
| |
| 2026-05-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-protos.h |
| (xtensa_expand_load_force_l32): New function prototype. |
| * config/xtensa/xtensa.cc (#include): Add "expmed.h". |
| (TARGET_LEGITIMATE_ADDRESS_P): |
| Change a whitespace delimiter from HTAB to SPACE. |
| (TARGET_ADDR_SPACE_SUBSET_P, TARGET_ADDR_SPACE_CONVERT, |
| TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): |
| New macro definitions for named address space. |
| (xtensa_addr_space_subset_p, xtensa_addr_space_convert, |
| xtensa_addr_space_legitimate_address_p): |
| New hook function prototypes and definitions required for |
| implementing the named address space. |
| (xtensa_expand_load_force_l32): New function that generates RTXes |
| that perform loads from memory belonging to the named address |
| space. |
| * config/xtensa/xtensa.h (ADDR_SPACE_FORCE_L32): |
| New macro for the ID# of the named address space. |
| (REGISTER_TARGET_PRAGMAS): New hook for registering C language |
| identifier for the named address space. |
| * config/xtensa/xtensa.md |
| (zero_extend<mode>si2_internal): Rename from zero_extend<mode>si2. |
| (zero_extend<mode>si2): New RTL generation pattern that calls |
| xtensa_expand_load_force_l32(). |
| (extendhisi2, extendqisi2, movhi, movqi): |
| Change to call xtensa_expand_load_force_l32() first. |
| (*shift_per_byte): Delete the insn condition. |
| |
| 2026-05-04 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/124766 |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): |
| Simplify x + y == y constructs. |
| |
| 2026-05-04 Avinal Kumar <avinal.xlvii@gmail.com> |
| |
| PR tree-optimization/116700 |
| * match.pd: (A > B ? ABS(A) : B -> MAX(A, B)): New pattern |
| for non-negative B. |
| |
| 2026-05-03 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-chrec.cc (chrec_fold_plus_poly_poly): Move |
| rtype definition to right before the use. |
| |
| 2026-05-03 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR tree-optimization/122569 |
| * tree-ssa-forwprop.cc (simplify_count_zeroes): Avoid |
| shift-by-HOST_BITS_PER_WIDE_INT UB when computing the all-ones |
| value for the CLZ validator. |
| |
| 2026-05-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124009 |
| * config/riscv/iterators.md (scc_0): Add any_lt. |
| * config/riscv/zicond.md: Add splitters to select between 2^n and 0. |
| |
| 2026-05-03 Collin Funk <collin.funk1@gmail.com> |
| |
| * glimits.h (__STDC_VERSION_LIMITS_H__): Only define the macro |
| if it was not already defined. |
| |
| 2026-05-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/125152 |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): Extract the |
| mode after operand canonicalization. |
| |
| 2026-05-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiopt.cc (pass_phiopt::execute): Set cfgcleanup |
| if cselim_limited returns true. |
| |
| 2026-05-02 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/109038 |
| * config/riscv/bitmanip.md (rotate_with_masking_to_shift): New pattern. |
| |
| 2026-05-02 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| |
| * config/riscv/riscv.opt.urls: Add temp fix for -mmpy-option. |
| |
| 2026-05-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125139 |
| * match.pd (`(A>>bool) EQ 0 -> (unsigned)A LE bool`): Enable |
| only for INTEGRAL_TYPE_P types. |
| |
| 2026-05-01 Sam James <sam@gentoo.org> |
| |
| * Makefile.in (MOSTLYCLEANFILES): Fix typo of '$(exeext)'. |
| |
| 2026-05-01 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/119420 |
| * match.pd(`(A>>bool) EQ 0 -> (unsigned)A LE bool`): New |
| pattern. |
| |
| 2026-05-01 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR rtl-optimization/123967 |
| * match.pd(`if (cond) (A | CST1) : (A & ~CST1)`)`: New pattern. |
| |
| 2026-05-01 Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/110010 |
| * match.pd (`(A>>C) NE|EQ (B>>C) -> (A^B) GE|LT (1<<C)`): New |
| pattern. |
| |
| 2026-05-01 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| |
| * config.gcc: Added riscv-fusion.o |
| * config/riscv/riscv-protos.h (enum riscv_fusion_pairs): |
| (riscv_macro_fusion_p): Added declaration. |
| (riscv_macro_fusion_pair_p): Idem. |
| (riscv_get_fusible_ops): Idem. |
| * config/riscv/riscv.cc (enum riscv_fusion_pairs): |
| (riscv_macro_fusion_p): Moved to riscv-fusion.cc |
| (riscv_fusion_enabled_p): Idem. |
| (riscv_set_is_add): Idem. |
| (riscv_set_is_addi): Idem. |
| (riscv_set_is_adduw): Idem. |
| (riscv_set_is_shNadd): Idem. |
| (riscv_set_is_shNadduw): Idem. |
| (riscv_macro_fusion_pair_p): Idem. |
| (riscv_get_fusible_ops): New function to access tune_param->fusible_ops |
| from riscv-fusion.cc. |
| * config/riscv/t-riscv: Added riscv-fusion.cc |
| * config/riscv/riscv-fusion.cc: New file. |
| |
| 2026-05-01 Kewen Lin <linkewen@hygon.cn> |
| |
| * config/i386/c86-4g-m7.md (c86_4g_m7_idiv): New automaton. |
| (c86_4g_m7_fdiv): Ditto. |
| (c86-4g-m7-idiv): New unit. |
| (c86-4g-m7-fdiv): Ditto. |
| (c86_4g_m7_idiv_DI): Adjust unit in the reservation. |
| (c86_4g_m7_idiv_SI): Ditto. |
| (c86_4g_m7_idiv_HI): Ditto. |
| (c86_4g_m7_idiv_QI): Ditto. |
| (c86_4g_m7_idiv_DI_load): Ditto. |
| (c86_4g_m7_idiv_SI_load): Ditto. |
| (c86_4g_m7_idiv_HI_load): Ditto. |
| (c86_4g_m7_idiv_QI_load): Ditto. |
| (c86_4g_m7_fp_div): Ditto. |
| (c86_4g_m7_fp_div_load): Ditto. |
| (c86_4g_m7_fp_idiv_load): Ditto. |
| (c86_4g_m7_avx512_ssediv): Ditto. |
| (c86_4g_m7_avx512_ssediv_mem): Ditto. |
| (c86_4g_m7_avx512_ssediv_z): Ditto. |
| (c86_4g_m7_avx512_ssediv_zmem): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt): Ditto. |
| (c86_4g_m7_avx512_sse_sqrt_load): Ditto. |
| (c86_4g_m7_fp_sqrt): Ditto. Rename from ... |
| (c86_4g_m7fp_sqrt): ... here. |
| * config/i386/c86-4g.md (c86_4g_idiv): New automaton. |
| (c86_4g_fdiv): Ditto. |
| (c86-4g-idiv): New unit. |
| (c86-4g-fdiv): Ditto. |
| (c86_4g_idiv_DI): Ditto. |
| (c86_4g_idiv_SI): Ditto. |
| (c86_4g_idiv_HI): Ditto. |
| (c86_4g_idiv_QI): Ditto. |
| (c86_4g_idiv_mem_DI): Ditto. |
| (c86_4g_idiv_mem_SI): Ditto. |
| (c86_4g_idiv_mem_HI): Ditto. |
| (c86_4g_idiv_mem_QI): Ditto. |
| (c86_4g_fp_sqrt): Ditto. |
| (c86_4g_sse_sqrt_sf): Ditto. |
| (c86_4g_sse_sqrt_sf_mem): Ditto. |
| (c86_4g_sse_sqrt_df): Ditto. |
| (c86_4g_sse_sqrt_df_mem): Ditto. |
| (c86_4g_fp_op_div): Ditto. |
| (c86_4g_fp_op_div_load): Ditto. |
| (c86_4g_fp_op_idiv_load): Ditto. |
| (c86_4g_ssediv_ss_ps): Ditto. |
| (c86_4g_ssediv_ss_ps_load): Ditto. |
| (c86_4g_ssediv_ss_pd): Ditto. |
| (c86_4g_ssediv_ss_pd_load): Ditto. |
| (c86_4g_ssediv_avx256_ps): Ditto. |
| (c86_4g_ssediv_avx256_ps_load): Ditto. |
| (c86_4g_ssediv_avx256_pd): Ditto. |
| (c86_4g_ssediv_avx256_pd_load): Ditto. |
| |
| 2026-05-01 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| Artemiy Volkov <artemiyv@acm.org> |
| Luis Silva <luiss@synopsys.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add arc-v-rmx-100-series. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): |
| Add arcv_rmx100. |
| (enum arcv_mpy_option_enum): New enum for ARC-V multiply options. |
| * config/riscv/riscv-protos.h (arcv_mpy_1c_bypass_p): New declaration. |
| (arcv_mpy_2c_bypass_p): New declaration. |
| (arcv_mpy_10c_bypass_p): New declaration. |
| * config/riscv/riscv.cc (arcv_mpy_1c_bypass_p): New function. |
| (arcv_mpy_2c_bypass_p): New function. |
| (arcv_mpy_10c_bypass_p): New function. |
| * config/riscv/riscv.md: Add arcv_rmx100. |
| * config/riscv/riscv.opt: New option for RMX-100 multiply unit |
| configuration. |
| * doc/riscv-mtune.texi: Document arc-v-rmx-100-series. |
| * config/riscv/arcv-rmx100.md: New file. |
| |
| 2026-05-01 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| Artemiy Volkov <artemiyv@acm.org> |
| Luis Silva <luiss@synopsys.com> |
| |
| * config/riscv/riscv-cores.def (RISCV_TUNE): Add arc-v-rhx-100-series. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Add |
| arcv_rhx100. |
| * config/riscv/riscv.cc (arcv_rhx100_tune_info): New riscv_tune_param. |
| * config/riscv/riscv.md: Add arcv_rhx100 to tune attribute. |
| * doc/riscv-mtune.texi: Add RHX-100 documentation. |
| * config/riscv/arcv-rhx100.md: New file. |
| |
| 2026-05-01 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/riscv/riscv.cc (riscv_expand_conditional_move): |
| Convert unsigned comparisons against power-of-2 boundaries |
| to shift-based equality tests. |
| |
| 2026-05-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac: Test solaris_as, solaris_ld instead of gas, gnu_ld. |
| (gcc_cv_as_working_gdwarf_n_flag): Escape '.' in filename. |
| * acinclude.m4 (gcc_cv_initfini_array): Test solaris_as, |
| solaris_ld instead of gas, gnu_ld. |
| * configure: Regenerate. |
| |
| 2026-05-01 Jin Ma <jinma@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (riscv_rtx_costs): Add missing braces |
| around the if body for the slli.uw pattern in the AND case. |
| |
| 2026-05-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/125079 |
| * tree-ssa-strlen.cc (get_string_length): Transform |
| __strcat_chk (x, y, z) when we need strlen (x) afterwards into |
| l1 = strlen (x); l = __stpcpy_chk (x + l1, y, z - l1) - x; |
| where l is the strlen (x), instead of using z as last __stpcpy_chk |
| argument. |
| |
| 2026-05-01 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124559 |
| * config/riscv/riscv-protos.h (riscv_move_integer): Drop mode argument. |
| * config/riscv/riscv.cc (riscv_move_integer): Pass mode after promotions |
| to riscv_build_integer. All callers changed. |
| * config/riscv/riscv.md: Corresponding changes. |
| * cse.cc (cse_insn): Try to derive one constant from another using NOT/NEG. |
| |
| 2026-05-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125117 |
| * config/i386/i386-expand.cc (ix86_expand_movmem): Generate |
| last_4x_vec_label when min_size <= 4 * MOVE_MAX. |
| |
| 2026-05-01 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (s390_secondary_reload): Add cases for HF |
| vector modes. |
| * config/s390/s390.md: Add modes V{1,2,4,8}HF to mode iterator |
| ALL. |
| |
| 2026-05-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-loop.cc (vectorizable_reduction): Remove pointless |
| && 1. |
| |
| 2026-05-01 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/96692 |
| * config/riscv/bitmanip.md (xor+xor+ior splitters): New splitters |
| that ultimately generate andn+xor when possible. |
| |
| 2026-04-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124878 |
| * config/i386/i386.cc (x86_64_int_return_registers): Remove |
| DI_REG and SI_REG. |
| (ix86_function_value_regno_p): Remove DI_REG and SI_REG cases. |
| (function_value_64): Replace X86_64_REGPARM_MAX and |
| X86_64_SSE_REGPARM_MAX with X86_64_MAX_RETURN_NREGS and |
| X86_64_MAX_SSE_RETURN_NREGS for the number of registers used |
| in return values. |
| * config/i386/i386.h (X86_64_MAX_RETURN_NREGS): New. Defined |
| to 2. |
| (X86_64_MAX_SSE_RETURN_NREGS): Likewise. |
| |
| 2026-04-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125102 |
| * config/i386/mmx.md (V_16_32_64:*mov<mode>_imm): Disable |
| 16-bit immediate integer store if TARGET_LCP_STALL is true. |
| |
| 2026-04-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * Makefile.in (COVERAGE_FLAGS): Remove obsolete comment. |
| |
| 2026-04-30 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-costs.cc (record_reg_classes): Process correctly case |
| op_class == NO_REGS. |
| |
| 2026-04-30 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-color.cc (assign_hard_reg): Use the right allocno mode to |
| call note_conflict. |
| |
| 2026-04-30 Heiko Eißfeldt <heiko.Eissfeldt@hexco.de> |
| |
| PR middle-end/124805 |
| * tree-ssa.cc (verify_vssa): |
| replace recursive calls with iteration for lower stack usage |
| |
| 2026-04-30 Tomas Härdin <git@haerdin.se> |
| |
| * toplev.cc (output_stack_usage_1): Pass RINT_DECL_UNIQUE_NAME |
| instead of PRINT_DECL_NAME to print_decl_identifier. |
| |
| 2026-04-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`(a !=/== b) &\| ((a|b) ==/!= 0)`): |
| Simplify patterns using for loop and remove the `:c` |
| on the inner ne/eq. |
| |
| 2026-04-30 Christopher Bazley <chris.bazley@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): |
| Pass &global_options_set as an argument to |
| aarch64_override_options_internal. |
| * config/aarch64/aarch64-protos.h (aarch64_override_options_internal): |
| Add a parameter declaration for opts_set. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): |
| Add a parameter declaration for opts_set and use the argument |
| when invoking SET_OPTION_IF_UNSET. |
| (aarch64_override_options): Pass &global_options_set as an argument to |
| aarch64_override_options_internal. |
| (aarch64_option_restore): As above. |
| (aarch64_set_current_function): As above. |
| (aarch64_option_valid_attribute_p): As above. |
| (aarch64_option_valid_version_attribute_p): As above. |
| |
| 2026-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125088 |
| * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Refactor and |
| simplify. |
| * tree-vect-stmts.cc (vect_nop_conversion_p): Exclude |
| copies with memory accesses. |
| |
| 2026-04-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125026 |
| PR target/125032 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Don't check CONST_VECTOR load size. |
| (replace_vector_const): Handle constant integer load. |
| (x86_cse::x86_cse): Convert CONST_VECTOR load no larger than |
| integer to constant integer load and keep redundant constant |
| integer load. Generate zero CONST_VECTOR load. |
| |
| 2026-04-30 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| |
| * doc/params.texi: Added --param=max-niter-dominators-walk. |
| * params.opt: Added --param=max-niter-dominators-walk. |
| * tree-ssa-loop-niter.cc (MAX_DOMINATORS_TO_WALK): Removed. |
| (determine_value_range): Updated. |
| (bound_difference): Updated. |
| (simplify_using_initial_conditions): Updated. |
| |
| 2026-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/120398 |
| PR tree-optimization/123603 |
| * config/i386/i386.opt (ix86-vect-compare-costs): Default to 1. |
| |
| 2026-04-30 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::better_epilogue_loop_than_p): |
| New. If the other loop suggests this as epilog prefer other. |
| |
| 2026-04-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vector_costs::vinfo): New accessor. |
| * config/i386/i386.cc (ix86_vector_costs::better_main_loop_than_p): |
| Prefer a masked main loop if we can elide enough of (vector) |
| epilog loop iterations. |
| |
| 2026-04-29 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/113379 |
| * match.pd (min(a,b) {<=,>,<,>=} max(a,b)): New patterns. |
| |
| 2026-04-29 John David Anglin <danglin@gcc.gnu.org> |
| |
| * doc/install.texi (hppa64-hp-hpux11*): Remove incorrect |
| statement. |
| |
| 2026-04-29 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.opt (mpc-relative-literal-loads): |
| Deprecate. |
| * config/aarch64/aarch64.cc (aarch64_override_options): |
| Add deprecated warning for -mpc-relative-literal-loads. |
| * doc/invoke.texi (mpc-relative-literal-loads): Update docs. |
| |
| 2026-04-29 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * config/aarch64/aarch64.h (HAS_LONG_COND_BRANCH): Unused, remove. |
| (HAS_LONG_UNCOND_BRANCH): unused, remove. |
| * config/aarch64/aarch64.cc (aarch64_use_pseudo_pic_reg): Declare. |
| (aarch64_rtx_costs): Update. |
| (aarch64_override_options_after_change_1): Likewise. |
| (initialize_aarch64_code_model): Simplify. |
| (aarch64_classify_tls_symbol): Likewise. |
| (aarch64_classify_symbol): Simplify, remove duplicated code. |
| (aarch64_asm_preferred_eh_data_format): Update. |
| (aarch64_use_pseudo_pic_reg): Update. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Remove uses of AARCH64_CMODEL_TINY_PIC, AARCH64_CMODEL_SMALL_PIC, |
| and AARCH64_CMODEL_SMALL_SPIC. |
| * config/aarch64/aarch64-opts.h (aarch64_code_model): |
| Remove AARCH64_CMODEL_TINY_PIC, AARCH64_CMODEL_SMALL_PIC and |
| AARCH64_CMODEL_SMALL_SPIC. |
| |
| 2026-04-29 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-remat.cc (do_remat): Use the right nregs for pseudo hard reg |
| when updating live hard regs. |
| |
| 2026-04-29 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-remat.cc (reg_overlap_for_remat_p): Use the right mode for |
| regno2. |
| |
| 2026-04-29 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-conflicts.cc (build_object_conflicts): Use the right |
| conflicting allocno. |
| |
| 2026-04-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125080 |
| * tree-vect-slp.cc (vect_bb_slp_mark_stmts_vectorized): Only |
| add instance root stmts to scalar coverage if they do not |
| appear in externs. |
| |
| 2026-04-29 Xin Liu <liulxx@hygon.cn> |
| Zhaoling Bao <baozhaoling@hygon.cn> |
| |
| * common/config/i386/cpuinfo.h (get_hygon_cpu): Detect the specific |
| type of HYGON CPU and return HYGON CPU name. |
| (cpu_indicator_init): Handle HYGON CPU. |
| * common/config/i386/i386-common.cc (processor_names): Add HYGON |
| C86-4G processors c86-4g-m{4,6,7}. |
| (processor_alias_table): Add hygon, hygonfam18h and c86-4g-m{4,6,7} |
| entries. |
| (ARRAY_SIZE): Update as new entries added. |
| * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add |
| VENDOR_HYGON. |
| (enum processor_types): Add HYGONFAM18H. |
| (enum processor_subtypes): Add HYGONFAM18H_C86_4G_M{4,6,7}. |
| * config.gcc: Add support for c86_4g_m{4,6,7}. |
| * config/i386/cpuid.h (signature_HYGON_ebx): Add signature for HYGON. |
| (signature_HYGON_ecx): Ditto. |
| (signature_HYGON_edx): Ditto. |
| * config/i386/driver-i386.cc (host_detect_local_cpu): Support HYGON |
| c86-4g-m4{4,6,7} processors. |
| * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. |
| * config/i386/i386-options.cc (m_C86_4G_M4): New definition. |
| (m_C86_4G_M6): Ditto. |
| (m_C86_4G_M7): Ditto. |
| (m_C86_4G): Ditto. |
| (processor_cost_table): Add cost entries for c86-4g-m4{4,6,7}. |
| * config/i386/i386.cc (ix86_reassociation_width): Add handlings for |
| PROCESSOR_C86_4G_M{4,6,7}. |
| * config/i386/i386.h (enum processor_type): Define |
| PROCESSOR_C86_4G_M{4,6,7}. |
| (PTA_C86_4G_M4): New define. |
| (PTA_C86_4G_M6): Ditto. |
| (PTA_C86_4G_M7): Ditto. |
| * config/i386/x86-tune-costs.h (c86_4g_m4_memcpy): New stringop_algs. |
| (c86_4g_m4_cost): New processor_costs. |
| (c86_4g_m6_cost): Ditto. |
| (c86_4g_m7_cost): Ditto. |
| * config/i386/x86-tune-sched.cc (ix86_issue_rate): Handle |
| PROCESSOR_C86_4G_M{4,6,7}. |
| (ix86_adjust_cost): Ditto. |
| * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Handle m_C86_4G. |
| (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. |
| (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto. |
| (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto. |
| (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto. |
| (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. |
| (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto. |
| (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto. |
| (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto. |
| (X86_TUNE_USE_LEAVE): Ditto. |
| (X86_TUNE_PUSH_MEMORY): Ditto. |
| (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. |
| (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto. |
| (X86_TUNE_USE_SAHF): Ditto. |
| (X86_TUNE_USE_BT): Ditto. |
| (X86_TUNE_AVOID_MFENCE): Ditto. |
| (X86_TUNE_USE_FFREEP): Ditto. |
| (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. |
| (X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL): Ditto. |
| (X86_TUNE_SSE_TYPELESS_STORES): Ditto. |
| (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto. |
| (X86_TUNE_USE_GATHER_2PARTS): Ditto. |
| (X86_TUNE_USE_GATHER_4PARTS): Ditto. |
| (X86_TUNE_USE_GATHER_8PARTS): Ditto. |
| (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. |
| (X86_TUNE_AVOID_256FMA_CHAINS): Ditto. |
| (X86_TUNE_USE_RCR): Ditto. |
| (X86_TUNE_AVX256_MOVE_BY_PIECES): Handle m_C86_4G_M{4,6}. |
| (X86_TUNE_USE_SCATTER_2PARTS): Handle m_C86_4G_M7. |
| (X86_TUNE_USE_SCATTER_4PARTS): Ditto. |
| (X86_TUNE_USE_SCATTER_8PARTS): Ditto. |
| (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): Ditto. |
| (X86_TUNE_AVX512_SPLIT_REGS): Ditto. |
| (X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto. |
| (X86_TUNE_AVX512_MASKED_EPILOGUES): Ditto. |
| * doc/extend.texi: Document about hygonfam18h and c86-4g-m{4,6,7}. |
| * doc/invoke.texi: Document about c86-4g-m{4,6,7}. |
| * config/i386/c86-4g-m7.md: New file for c86-4g-m7 scheduling model |
| information. |
| * config/i386/c86-4g.md: New file for c86-4g-m{4,6} scheduling model |
| information. |
| * config/i386/i386.md (cpu attr): Add c86_4g_m{4,6,7}. |
| (c86-4g.md): New include. |
| (c86-4g-m7.md): Ditto. |
| (*cmpi<unord>xf_i387): Set attr c86_decode. |
| (*cmpi<unord><MODEF:mode>): Ditto. |
| (swap<mode>): Ditto. |
| (*swap<mode>): Ditto. |
| (extendhisi2): Ditto. |
| (floathi<mode>2): Ditto. |
| (float<SWI48x:mode>xf2): Ditto. |
| (*float<SWI48:mode><MODEF:mode>2): Ditto. |
| (*floatdi<MODEF:mode>2_i387): Ditto. |
| (*anddi_1_bt): Ditto. |
| (*iordi_1_bts): Ditto. |
| (*xordi_1_btc): Ditto. |
| (*<btsc><mode>): Ditto. |
| (*btr<mode>): Ditto. |
| (*btsq_imm): Ditto. |
| (*btrq_imm): Ditto. |
| (*btcq_imm): Ditto. |
| (*tzcnt<mode>_1): Ditto. |
| (*tzcnt<mode>_1_falsedep): Ditto. |
| (*bsf<mode>_1): Ditto. |
| (*ctz<mode>2_falsedep): Ditto. |
| (*ctzsi2_zext): Ditto. |
| (*ctzsi2_zext_falsedep): Ditto. |
| (bsr_rex64): Ditto. |
| (bsr_rex64_1): Ditto. |
| (bsr_rex64_1_zext): Ditto. |
| (bsr): Ditto. |
| (bsr_1): Ditto. |
| (bsr_zext_1): Ditto. |
| (*bswaphi2_movbe): Ditto. |
| (*bswaphi2): Ditto. |
| (bswaphisi2_lowpart): Ditto. |
| (fpremxf4_i387): Ditto. |
| (fprem1xf4_i387): Ditto. |
| (<sincos>xf2): Ditto. |
| (sincosxf3): Ditto. |
| (fptanxf4_i387): Ditto. |
| (atan2xf3): Ditto. |
| (fyl2xxf3_i387): Ditto. |
| (fyl2xp1xf3_i387): Ditto. |
| (fxtractxf3_i387): Ditto. |
| (*f2xm1xf2_i387): Ditto. |
| (fscalexf4_i387): Ditto. |
| (rintxf2): Ditto. |
| (*movxi_internal_avx512f): Set attr c86_attr. |
| (*movoi_internal_avx): Ditto. |
| (*movti_internal): Ditto. |
| (*movdi_internal): Ditto. |
| (*movsi_internal): Ditto. |
| (*movhi_internal): Ditto. |
| (*movtf_internal): Ditto. |
| (*movdf_internal): Ditto. |
| (*movsf_internal): Ditto. |
| (*zero_extendsidi2): Ditto. |
| (sqrtxf2): Ditto. |
| (<smaxmin:code><mode>3): Ditto. |
| (*ieee_s<ieee_maxmin><mode>3): Ditto. |
| * config/i386/mmx.md (*mmx_maskmovq): Set attr c86_decode. |
| (*mmx_maskmovq): Ditto. |
| (sse_movntq): Set attr c86_attr. |
| (*mmx_blendps): Ditto. |
| (mmx_blendvps): Ditto. |
| (*mmx_pmaddwd): Ditto. |
| (mmx_pblendvb_v8qi): Ditto. |
| (mmx_pblendvb_<mode>): Ditto. |
| (sse4_1_<code>v4qiv4hi2): Ditto. |
| (sse4_1_<code>v2hiv2si2): Ditto. |
| (sse4_1_<code>v2qiv2si2): Ditto. |
| (sse4_1_<code>v2qiv2hi2): Ditto. |
| (*mmx_pinsrd): Ditto. |
| (*mmx_pinsrw): Ditto. |
| (*mmx_pinsrb): Ditto. |
| (*mmx_pextrw): Ditto. |
| (*mmx_pextrw<mode>): Ditto. |
| (*mmx_pextrw_zext): Ditto. |
| (*mmx_pextrb): Ditto. |
| (*mmx_pextrb_zext): Ditto. |
| (*mmx_pblendw64): Ditto. |
| (*mmx_pblendw32): Ditto. |
| (*vec_extractv2si_1): Ditto. |
| (*vec_extractv2si_1_zext): Ditto. |
| (*pinsrw): Ditto. |
| (*pinsrb): Ditto. |
| (*pextrw): Ditto. |
| (*pextrw<mode>): Ditto. |
| (*pextrw_zext): Ditto. |
| (*pextrb): Ditto. |
| (*pextrb_zext): Ditto. |
| (*mmx_psadbw): Ditto. |
| * config/i386/sse.md (ktest<mode>): Set attr c86_decode. |
| (*kortest<mode>): Ditto. |
| (sse_cvtsi2ss<rex64namesuffix><round_name>): Ditto. |
| (sse2_cvtsi2sd): Ditto. |
| (sse2_maskmovdqu): Ditto. |
| (*<sse>_dp<ssemodesuffix><avxsizesuffix>): Ditto. |
| (*<sse4_1_avx2>_mpsadbw): Ditto. |
| (pclmulqdq): Ditto. |
| (<mask_codefor>conflict<mode><mask_name>): Ditto. |
| (<avx512>_blendm<mode>): Set attr c86_attr. |
| (sse2_movnti<mode>): Ditto. |
| (<sse>_movnt<mode>): Ditto. |
| (<sse2>_movnt<mode>): Ditto. |
| (<sse>_rcp<mode>2): Ditto. |
| (sse_vmrcpv4sf2): Ditto. |
| (<mask_codefor>rcp14<mode><mask_name>): Ditto. |
| (srcp14<mode>): Ditto. |
| (srcp14<mode>_mask): Ditto. |
| (<sse>_sqrt<mode>2<mask_name><round_name>): Ditto. |
| (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): Ditto. |
| (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): Ditto. |
| (<mask_codefor>rsqrt14<mode><mask_name>): Ditto. |
| (rsqrt14<mode>): Ditto. |
| (rsqrt14_<mode>_mask"): Ditto. |
| (*<code><mode>3<mask_name><round_saeonly_name>): Ditto. |
| (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): Ditto. |
| (*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): |
| Ditto. |
| (<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name> |
| <round_saeonly_scalar_name>): Ditto. |
| (*ieee_<ieee_maxmin><mode>3): Ditto. |
| (avx_h<insn>v4df3): Ditto. |
| (*sse3_haddv2df3): Ditto. |
| (sse3_hsubv2df3): Ditto. |
| (*sse3_haddv2df3_low): Ditto. |
| (*sse3_hsubv2df3_low): Ditto. |
| (avx_h<insn>v8sf3): Ditto. |
| (sse3_h<insn>v4sf3): Ditto. |
| (*<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Ditto. |
| (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto. |
| (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Ditto. |
| (<sse>_andnot<mode>3<mask_name>): Ditto. |
| (*<code><mode>3<mask_name>): Ditto. |
| (*andnot<mode>3): Ditto. |
| (<code><mode>3): Ditto. |
| (*<code>tf3): Ditto. |
| (vec_set<mode>_0): Ditto. |
| (@vec_set<mode>_0): Ditto. |
| (*sse4_1_extractps): Ditto. |
| (vec_extract<mode>): Ditto. |
| (<mask_codefor><avx512>_align<mode><mask_name>): Ditto. |
| (avx512bw_pmaddwd512<mode><mask_name>): Ditto. |
| (*avx2_pmaddw): Ditto. |
| (*sse2_pmaddwd): Ditto. |
| (*avx2_<code><mode>3): Ditto. |
| (*avx512f_<code><mode>3<mask_name>): Ditto. |
| (*avx512bw_<code><mode>3<mask_name>): Ditto. |
| (*sse4_1_<code><mode>3<mask_name>): Ditto. |
| (*<code>v8hi3): Ditto. |
| (*<code>v16qi3): Ditto. |
| (*andnot<mode>3_mask): Ditto. |
| (*<code><mode>3): Ditto. |
| (<code>v1ti3): Ditto. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Ditto. |
| (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Ditto. |
| (<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf> |
| _1<mask_name>): Ditto. |
| (vec_set_lo_<mode><mask_name>): Ditto. |
| (vec_set_hi_<mode><mask_name>): Ditto. |
| (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>): Ditto. |
| (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto. |
| (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1): Ditto. |
| (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto. |
| (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto. |
| (*avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): Ditto. |
| (*vec_extract<mode>): Ditto. |
| (*vec_extract<PEXTR_MODE12:mode>_zext): Ditto. |
| (*vec_extractv16qi_zext): Ditto. |
| (*vec_extractv4si): Ditto. |
| (*vec_extractv4si_zext): Ditto. |
| (*vec_extractv2di_1): Ditto. |
| (*vec_concatv2si_sse4_1): Ditto. |
| (vec_concatv2di): Ditto. |
| (*<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. |
| (*<sse2_avx2>_psadbw): Ditto. |
| (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Ditto. |
| (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): Ditto. |
| (<sse2_avx2>_pmovmskb): Ditto. |
| (*<sse2_avx2>_pmovmskb_zext): Ditto. |
| (*sse2_maskmovdqu): Ditto. |
| (avx2_ph<plusminus_mnemonic>wv16hi3): Ditto. |
| (ssse3_ph<plusminus_mnemonic>wv8hi3): Ditto. |
| (ssse3_ph<plusminus_mnemonic>dv4si3): Ditto. |
| (avx2_ph<plusminus_mnemonic>dv8si3): Ditto. |
| (avx2_pmaddubsw256): Ditto. |
| (avx512bw_pmaddubsw512<mode><mask_name>): Ditto. |
| (ssse3_pmaddubsw128): Ditto. |
| (<ssse3_avx2>_psign<mode>3): Ditto. |
| (ssse3_psign<mode>3): Ditto. |
| (*abs<mode>2): Ditto. |
| (abs<mode>2_mask): Ditto. |
| (abs<mode>2_mask): Ditto. |
| (sse4a_movnt<mode>): Ditto. |
| (sse4a_vmmovnt<mode>): Ditto. |
| (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto. |
| (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto. |
| (sse4_1_blendv<ssemodesuffix>): Ditto. |
| (<vi8_sse4_1_avx2_avx512>_movntdqa): Ditto. |
| (<sse4_1_avx2>_pblendvb): Ditto. |
| (sse4_1_pblend<ssemodesuffix>): Ditto. |
| (*avx2_pblend<ssemodesuffix>): Ditto. |
| (avx2_pblendd<mode>): Ditto. |
| (avx2_<code>v16qiv16hi2<mask_name>): Ditto. |
| (avx512bw_<code>v32qiv32hi2<mask_name>): Ditto. |
| (sse4_1_<code>v8qiv8hi2<mask_name>): Ditto. |
| (*sse4_1_<code>v8qiv8hi2<mask_name>_1): Ditto. |
| (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto. |
| (avx2_<code>v8qiv8si2<mask_name>): Ditto. |
| (*avx2_<code>v8qiv8si2<mask_name>_1): Ditto. |
| (sse4_1_<code>v4qiv4si2<mask_name>): Ditto. |
| (*sse4_1_<code>v4qiv4si2<mask_name>_1): Ditto. |
| (avx512f_<code>v16hiv16si2<mask_name>): Ditto. |
| (avx2_<code>v8hiv8si2<mask_name>): Ditto. |
| (sse4_1_<code>v4hiv4si2<mask_name>): Ditto. |
| (*sse4_1_<code>v4hiv4si2<mask_name>_1): Ditto. |
| (avx512f_<code>v8qiv8di2<mask_name>): Ditto. |
| (*avx512f_<code>v8qiv8di2<mask_name>_1): Ditto. |
| (avx2_<code>v4qiv4di2<mask_name>): Ditto. |
| (*avx2_<code>v4qiv4di2<mask_name>_1): Ditto. |
| (sse4_1_<code>v2qiv2di2<mask_name>): Ditto. |
| (*sse4_1_<code>v2qiv2di2<mask_name>_1): Ditto. |
| (avx512f_<code>v8hiv8di2<mask_name>): Ditto. |
| (avx2_<code>v4hiv4di2<mask_name>): Ditto. |
| (*avx2_<code>v4hiv4di2<mask_name>_1): Ditto. |
| (sse4_1_<code>v2hiv2di2<mask_name>): Ditto. |
| (*sse4_1_<code>v2hiv2di2<mask_name>_1): Ditto. |
| (avx512f_<code>v8siv8di2<mask_name>): Ditto. |
| (avx2_<code>v4siv4di2<mask_name>): Ditto. |
| (sse4_1_<code>v2siv2di2<mask_name>): Ditto. |
| (*sse4_1_<code>v2siv2di2<mask_name>_1): Ditto. |
| (sse4_1_round<ssescalarmodesuffix>): Ditto. |
| (*sse4_1_round<ssescalarmodesuffix>"): Ditto. |
| (sse4_2_pcmpestri): Ditto. |
| (sse4_2_pcmpestrm): Ditto. |
| (sse4_2_pcmpestr_cconly): Ditto. |
| (sse4_2_pcmpistri): Ditto. |
| (sse4_2_pcmpistrm): Ditto. |
| (sse4_2_pcmpistr_cconly): Ditto. |
| (xop_phadd<u>bw): Ditto. |
| (xop_phadd<u>bd): Ditto. |
| (xop_phadd<u>bq): Ditto. |
| (xop_phadd<u>wd): Ditto. |
| (xop_phadd<u>wq): Ditto. |
| (xop_phadd<u>dq): Ditto. |
| (xop_phsubbw): Ditto. |
| (xop_phsubwd): Ditto. |
| (xop_phsubdq): Ditto. |
| (aesenc): Ditto. |
| (aesenclast): Ditto. |
| (aesdec): Ditto. |
| (aesdeclast): Ditto. |
| (aesimc): Ditto. |
| (aeskeygenassist): Ditto. |
| (<avx2_avx512>_permvar<mode><mask_name>): Ditto. |
| (avx2_perm<mode>_1<mask_name>): Ditto. |
| (<avx512>_permvar<mode><mask_name>): Ditto. |
| (avx512f_perm<mode>_1<mask_name>): Ditto. |
| (<mask_codefor>avx512f_broadcast<mode><mask_name>): Ditto. |
| (avx_vbroadcastf128_<mode>): Ditto. |
| (<mask_codefor>avx512vl_broadcast<mode><mask_name>_1): Ditto. |
| (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto. |
| (*<avx512>_vpermi2var<mode>3_mask): Ditto. |
| (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto. |
| (<avx512>_vpermt2var<mode>3_mask): Ditto. |
| (*avx_vperm2f128<mode>_nozero): Ditto. |
| (vec_set_lo_<mode><mask_name>): Ditto. |
| (vec_set_hi_<mode><mask_name>): Ditto. |
| (vec_set_lo_<mode>): Ditto. |
| (vec_set_hi_<mode>): Ditto. |
| (vec_set_lo_v32qi): Ditto. |
| (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Ditto. |
| (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Ditto. |
| (avx_vec_concat<mode>): Ditto. |
| (<avx512>_compress<mode>_mask): Ditto. |
| (compress<mode>_mask): Ditto. |
| (<avx512>_compressstore<mode>_mask): Ditto. |
| (compressstore<mode>_mask): Ditto. |
| (expand<mode>_mask): Ditto. |
| (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Ditto. |
| (clz<mode>2<mask_name>): Ditto. |
| (vpmadd52<vpmadd52type>v8di): Ditto. |
| (vpmadd52<vpmadd52type><mode>): Ditto. |
| (vpmadd52<vpmadd52type><mode>_maskz_1): Ditto. |
| (vpmadd52<vpmadd52type><mode>_mask): Ditto. |
| (vaesdec_<mode>): Ditto. |
| (vaesdeclast_<mode>): Ditto. |
| (vaesenc_<mode>): Ditto. |
| (vaesenclast_<mode>): Ditto. |
| |
| 2026-04-29 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/predicates.md: Add ltu to swappable |
| cmp operator. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Handle |
| the swapped rtx code as well. |
| |
| 2026-04-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| * gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow): |
| Move obj_nelts/atype computation before bitint_extended handling. For |
| bitint_big_endian in the bitint_extended handling use size_zero_node |
| only for limb_access_type calls, otherwise use |
| size_int (nelts - obj_nelts) and pass NULL_TREE as first argument to |
| limb_access calls. |
| |
| 2026-04-29 Raghesh Aloor <Raghesh.Aloor@amd.com> |
| |
| * tree-vect-slp.cc (vect_slp_linearize_chain): Optional parameter |
| allow_alt_code added (default true), check added not to follow |
| MINUS_EXPR, when false. |
| (vect_slp_check_for_roots): Calls vect_slp_linearize_chain with |
| parameter allow_alt_code set to false. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/124217 |
| * doc/invoke.texi: Add -Wanalyzer-div-by-zero. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/exploded-path.o. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/setjmp-longjmp.o. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (ANALYZER_OBJS): Add |
| analyzer/poisoned-value-diagnostic.o, |
| analyzer/shift-diagnostics.o, and |
| analyzer/write-to-const-diagnostics.o. |
| |
| 2026-04-28 Tomás Ortín Fernández <quanrong@mailbox.org> |
| |
| PR analyzer/105890 |
| * doc/invoke.texi: Rename -Wanalyzer-mkstemp-missing-suffix to |
| -Wanalyzer-mktemp-missing-placeholder and |
| -Wanalyzer-mkstemp-of-string-literal to |
| -Wanalyzer-mktemp-of-string-literal. Add |
| -Wanalyzer-mkostemp-redundant-flags. Fix alphabetical ordering |
| of detailed descriptions. |
| |
| 2026-04-28 Tomás Ortín Fernández <quanrong@mailbox.org> |
| |
| PR analyzer/105890 |
| * doc/invoke.texi: Add -Wanalyzer-mkstemp-missing-suffix and |
| -Wanalyzer-mkstemp-of-string-literal. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/html-sink.cc: Update status comment. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/libgdiagnostics/topics/execution-paths.rst |
| (diagnostic_execution_path_add_event_via_msg_buf): Fix |
| indentation. |
| * doc/libgdiagnostics/topics/message-buffers.rst: Replace |
| duplicate entry for diagnostic_message_buffer_end_url with entry |
| for diagnostic_message_buffer_end_quote. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/context.h (diagnostics::context::make_option_name): |
| Convert return type from char * to label_text, and rename to... |
| (diagnostics::context::get_option_name): ...this. |
| (diagnostics::context::make_option_url): Likewise, renaming to... |
| (diagnostics::context::get_option_url): ...this. |
| * diagnostics/html-sink.cc |
| (html_builder::make_element_for_diagnostic): Update for above |
| changes. |
| * diagnostics/lazy-paths.cc (selftest::all_warnings_disabled): |
| Update for above changes. |
| * diagnostics/option-id-manager.h |
| (diagnostics::option_id_manager::make_option_name): Convert return |
| type from char * to label_text, and rename to... |
| (diagnostics::option_id_manager::get_option_name): ...this. |
| (diagnostics::option_id_manager::make_option_url): Likewise, |
| renaming to... |
| (diagnostics::option_id_manager::get_option_url): ...this. |
| * diagnostics/sarif-sink.cc: Add #define INCLUDE_SET. |
| (sarif_builder::m_rule_id_set): Convert from |
| hash_set <free_string_hash> to std::set<std::string>. |
| (sarif_builder::make_result_object): Update for above changes, |
| removing manual memory management. |
| (sarif_builder::make_reporting_descriptor_object_for_warning): |
| Likewise. |
| * diagnostics/text-sink.cc (text_sink::print_option_information): |
| Likewise. |
| * lto-wrapper.cc (print_lto_docs_link): Likewise. |
| (lto_diagnostic_option_id_manager::make_option_name): Convert |
| return type from char * to label_text, and rename to... |
| (lto_diagnostic_option_id_manager::get_option_name): ...this. |
| * opts-diagnostic.h (gcc_diagnostic_option_id_manager): Update for |
| above changes. |
| * opts.cc |
| (compiler_diagnostic_option_id_manager::make_option_name): Update |
| as above, renaming to... |
| (compiler_diagnostic_option_id_manager::get_option_name): ...this. |
| (gcc_diagnostic_option_id_manager::make_option_url): Likewise, |
| renaming to... |
| (gcc_diagnostic_option_id_manager::get_option_url): ...this. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/123056 |
| * libsarifreplay.cc: Include "json-pointer-parsing.h". |
| (sarif_replayer::sarif_replayer): Initialize m_root_val. |
| (sarif_replayer::m_root_val): New field. |
| (sarif_replayer::replay_file): Store m_root_val. |
| (sarif_replayer::append_embeddded_link): Add message_obj param. |
| Attempt to decode intra-sarif links, turning them into event IDs. |
| (sarif_replayer::decode_link_within_sarif): New. |
| (sarif_replayer::make_plain_text_within_result_message): Pass |
| message_obj to append_embeddded_link. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add json-pointer-parsing.o. |
| * json-pointer-parsing.cc: New file. |
| * json-pointer-parsing.h: New file. |
| * json.cc (json::object::set_string): Return a borrowed pointer to |
| the new json::value. |
| (json::object::set_integer): Likewise. |
| (json::array::append_string): Likewise. |
| * json.h (json::object::set_string): Likewise. |
| (json::object::set_integer): Likewise. |
| (json::array::append_string): Likewise. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| selftest::json_pointer_parsing_cc_tests. |
| * selftest.h (selftest::json_pointer_parsing_cc_tests): New decl. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add pretty-print-token-buffer.o. |
| * libgdiagnostics.cc: Drop include of "auto-obstack.h". |
| Include "pretty-print-token-buffer.h". |
| (class copying_token_printer): Move to |
| pretty-print-token-buffer.cc. |
| (struct diagnostic_message_buffer): Reimplement as a subclass of |
| pretty_print_token_buffer. |
| (diagnostic_message_buffer::to_string): Rename to |
| pretty_print_token_buffer::to_string and move to |
| pretty-print-token-buffer.cc. |
| * pretty-print-token-buffer.cc: New file, based on material from |
| libgdiagnostics.cc. |
| * pretty-print-token-buffer.h: New file, based on material from |
| libgdiagnostics.h. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| selftest::pretty_print_token_buffer_cc_tests. |
| * selftest.h (selftest::pretty_print_token_buffer_cc_tests): New |
| decl. |
| |
| 2026-04-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * json-diagnostic.cc: Include "pretty-print-markup-json.h". |
| (class pp_markup::quoted_json_pointer): Move to... |
| * pretty-print-markup-json.h: ...this new file. |
| |
| 2026-04-28 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124760 |
| * config/riscv/bitmanip.md (SI->DI promoting shadd pattern): Promote |
| intermediate SI ops to DI ops when there's a final extending op. |
| |
| 2026-04-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125067 |
| * tree-ssa-phiprop.cc (can_handle_load): Fix copy and pasto |
| on dominated_by_p. |
| |
| 2026-04-28 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-eliminations.cc (mark_not_eliminable): Fix condition to |
| consider hard regs instead of pseudos for INC/DEC/MODIFY operands. |
| |
| 2026-04-28 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-constraints.cc (curr_insn_transform): When recreating subreg |
| of a const put in pool, use the original subreg mode. |
| |
| 2026-04-28 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Use the same |
| start prefered for all operand. |
| |
| 2026-04-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse variable |
| declaration right before its use. |
| |
| 2026-04-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse checks |
| before the dominator tests. |
| |
| 2026-04-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiprop.cc (propagate_with_phi): Factor out |
| checking the load for vdef to .... |
| (can_move_into_conditional): Here. |
| |
| 2026-04-28 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * fold-mem-offsets.cc (pass_fold_mem_offsets::execute): Remove |
| optimize_bb_for_size_p check. |
| * config/riscv/riscv.cc (riscv_option_override): Disable |
| flag_fold_mem_offsets when optimizing for size with compressed |
| instructions. |
| |
| 2026-04-28 Jiawei <jiawei@iscas.ac.cn> |
| Edwin Lu <ewlu@rivosinc.com> |
| |
| * config/riscv/riscv-ext.def: New extension. |
| * config/riscv/riscv-ext.opt: Ditto. |
| * config/riscv/sync-rvwmo.md: Add check for zalasr. |
| * config/riscv/sync-ztso.md: Ditto. |
| * doc/riscv-ext.texi: New extension. |
| |
| 2026-04-28 Maximilian Ciric <max.ciric@gmail.com> |
| |
| * config/riscv/riscv.cc (riscv_can_tag_addresses): New function. |
| (RISCV_HWASAN_TAG_SIZE): New definition. |
| (riscv_memtag_tag_bitsize): New function. |
| (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New definition. |
| (TARGET_MEMTAG_TAG_BITSIZE): Likewise. |
| |
| 2026-04-28 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.h (ASM_SPEC): Define. |
| |
| 2026-04-28 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/94892 |
| * config/riscv/riscv.md (sign_bit_splat_equality_test): New pattern. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Do not |
| attempt to live code-generate defs that are kept in scalar |
| form anyway. |
| * tree-vect-loop.cc (vectorizable_live_operation): Update |
| comment. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_slp_tree::live_lanes): New vector. |
| (SLP_TREE_LIVE_LANES): New. |
| * tree-vect-loop.cc (vectorizable_live_operation): Append |
| to SLP_TREE_LIVE_LANES. |
| * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize |
| SLP_TREE_LIVE_LANES. |
| (_slp_tree::~_slp_tree): Release SLP_TREE_LIVE_LANES. |
| (vect_print_slp_tree): Adjust live lane dumping, indicating |
| the SLP node a lane is code generated from. |
| (vect_bb_slp_mark_live_stmts): No longer verify we can |
| code-generate from all SLP nodes but at least one, picking |
| the first. |
| * tree-vect-stmts.cc (vect_transform_stmt): Iterate over |
| SLP_TREE_LIVE_LANES. |
| (vect_analyze_stmt): Also analyze reductions for live |
| lanes. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124222 |
| * tree-vect-slp.cc (vect_slp_gather_vectorized_scalar_stmts): Remove. |
| (vect_bb_slp_scalar_cost): Simplify by using SLP_TREE_TYPE and |
| a use-def walk of the scalar stmts SSA uses. |
| (vect_bb_vectorization_profitable_p): Simplify. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vec_slp_has_scalar_use): Remove. |
| (vect_bb_slp_mark_live_stmts): Simplify. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_slp_analyze_bb_1): Split out pure_slp |
| marking into ... |
| (vect_bb_slp_mark_stmts_vectorized): ... new function. Compute |
| full scalar stmt coverage of the SLP graph. |
| (vect_slp_gather_extern_scalar_stmts): New helper. |
| (vect_bb_slp_mark_live_stmts): Adjust. |
| * tree-vect-loop.cc (vectorizable_live_operation): Likewise. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (struct slp_oprnds): New. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_slp_analyze_operations): Move |
| vect_bb_slp_mark_live_stmts call ... |
| (vect_slp_analyze_bb_1): ... here. Move SLP stmt marking |
| right before it. |
| (vect_mark_slp_stmts): Remove unused overload. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_slp_child_index_for_operand): Get |
| a stmt_vec_info, elide gather-scatter flag. |
| * tree-vect-stmts.cc (vect_check_store_rhs): Adjust. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * tree-vect-slp.cc (vect_get_operand_map): New overload |
| with a stmt_vec_info argument. |
| (vect_slp_child_index_for_operand): Adjust. |
| (vect_get_and_check_slp_defs): Likewise. |
| (compatible_calls_p): Likewise. |
| (vect_build_slp_tree_2): Likewise. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_get_operand_map): Put operand map |
| data here. Handle VIEW_CONVERT_EXPR, use else if, factor |
| out assertion. |
| (vect_get_and_check_slp_defs): Remove explicit VIEW_CONVERT_EXPR |
| handling here. |
| |
| 2026-04-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.cc (construct_container): Remove redundant |
| early call to classify_argument. Recompute the classification |
| only when needed and assert that it succeeds. |
| (examine_argument): Change in_return parameter type to bool. |
| (function_arg_advance_64): Update call to examine_argument. |
| (function_arg_64): Update call to construct_container. |
| (function_value_64): Likewise. |
| (ix86_return_in_memory): Update call to examine_argument. |
| (ix86_gimplify_va_arg): Update calls to construct_container |
| and examine_argument. |
| |
| 2026-04-28 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Specify -mcpu |
| instead of -march when --with-cpu is used. |
| |
| 2026-04-28 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): |
| Add simplifications for `(cmp (and/ior x C1) C2)`. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_estimate_min_profitable_iters): |
| Add comment about costing of prologue/epilogue. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_get_known_peeling_cost): Use |
| scalar_costs instead of guesstimating it. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost): |
| Record stmt cost to vect_body. |
| |
| 2026-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_known_peeling_cost): Simplify API. |
| * tree-vect-loop.cc (vect_get_known_peeling_cost): Avoid |
| all the overhead of record_stmt_cost as we only are interested |
| in the overall sum of the included builtin_vectorization_cost |
| calls. |
| * tree-vect-data-refs.cc (vect_peeling_hash_get_lowest_cost): |
| Adjust. |
| (vect_enhance_data_refs_alignment): Likewise. |
| |
| 2026-04-28 Netanel Komm <netanelkomm@gmail.com> |
| |
| PR tree-optimization/112659 |
| PR tree-optimization/122996 |
| * match.pd: Extend conditional addition pattern to handle |
| a third constant and uniform vectors. |
| |
| 2026-04-28 Monk Chiang <monk.chiang@sifive.com> |
| |
| * config/riscv/riscv.md (length attribute): Check CROSSING_JUMP_P |
| for jump instructions and use length 8 for crossing jumps. |
| (jump): Update comment to explain when long form is used. |
| |
| 2026-04-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/125039 |
| * range-op-float.cc (operator_not_equal::fold_range): Call |
| empty_range_varying when not calling frelop_early_resolve. |
| |
| 2026-04-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.cc (build_bitint_type): Allow build_bitint_type (1, 0). |
| (signed_or_unsigned_type_for): Call that for !unsignedp case |
| of BITINT_TYPE with bits 1. |
| |
| 2026-04-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/125036 |
| * tree-ssa-loop-ivopts.cc (add_iv_candidate_for_doloop): Don't |
| assert on niniter being integer type. Convert to a full mode |
| integer type if non integer or non-full mode integer type. |
| |
| 2026-04-27 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/57650 |
| * config/riscv/zicond.md: Generalize patterns which identify |
| a logical AND of an equality test and some other sCC insn to |
| handle more cases. |
| |
| 2026-04-27 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-narrow-gp-writes.cc |
| (narrow_gp_writes::narrow_gp_writes): Remove redundant m_curr_insn |
| initialization. |
| (narrow_gp_writes::~narrow_gp_writes): Remove redundant m_curr_insn |
| de-initialization. |
| |
| 2026-04-27 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * ext-dce.cc (promotion_candidate_info): New struct. |
| (copy_info): New struct. |
| (promotion_candidates, promotable_dests): New file-scope variables. |
| (consumed_by_candidate, promotion_copies): Likewise. |
| (ext_dce_try_promote_operation): New function to promote |
| sign/zero-extended arithmetic to wider mode. |
| (ext_dce_record_promotion_candidate): New function to record |
| promotion candidates for deferred chain analysis. |
| (ext_dce_promote_chained_candidates): New function to promote |
| only chained candidates. |
| (ext_dce_process_uses): Record candidates instead of promoting |
| immediately; propagate chain info through optimized copies. |
| (ext_dce_process_bb): Call ext_dce_promote_chained_candidates |
| after processing all insns in a block. |
| (ext_dce_init): Allocate chain detection bitmaps. |
| (ext_dce_finish): Free chain detection data structures. |
| |
| 2026-04-27 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * ext-dce.cc (ext_dce_try_optimize_extension): Only remove |
| REG_EQUAL/EQUIV notes when validate_change succeeds. |
| |
| 2026-04-27 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/tuning_models/generic.h: Update br_mispredict_factor |
| to 7. |
| |
| 2026-04-27 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * match.pd: Relax single_use for eq/ne when folded constant |
| is zero. |
| |
| 2026-04-27 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * lra-lives.cc (clear_sparseset_regnos, regnos_in_sparseset_p): |
| Use set instead of dead_set. |
| |
| 2026-04-27 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-costs.cc (record_reg_classes): When calculating alt_cost use |
| the right cost of memory-reg move. |
| * ira-emit.cc (emit_move_list): Use load cost instead of store for |
| moving memory to reg. |
| |
| 2026-04-27 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| * ira-build.cc (add_to_conflicts): Use sizeof(ira_object_p) |
| instead of sizeof(ira_allocno_t) for allocations. |
| * ira-color.cc (print_hard_reg_set): Fix printing hard reg set. |
| * ira-emit.cc (allocno_last_set, allocno_last_set_check): Remove |
| unused static variables. |
| * ira.cc (combine_and_move_insns): Fix dead note recognition. |
| (ira_remove_insn_scratches): Use dump_file instead of |
| ira_dump_file. |
| * lra-constraints.cc (match_reload): Remove always true condition. |
| (undo_optional_reloads): Fix recognition of clobber for assertion. |
| |
| 2026-04-27 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/124886 |
| * match.pd ((X * C1) + (X << C2) -> X * (C1 + (1 << C2))): New pattern. |
| |
| 2026-04-27 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/121268 |
| * config/riscv/bitmanip.md: Add splitters to exploit identities |
| that relate subtraction and bitwise negation on 2's complement |
| arithmetic. |
| |
| 2026-04-27 Muhammad Kamran <muhammad.kamran@arm.com> |
| |
| * doc/sourcebuild.texi (Scan object metadata with readelf): Document |
| object-readelf-attributes, object-readelf-attributes-not, |
| object-readelf-notes, and object-readelf-notes-not as regex-based |
| checks with optional target/xfail selectors. |
| |
| 2026-04-27 Netanel Komm <netanelkomm@gmail.com> |
| |
| PR tree-optimization/93556 |
| * gimple-fold.cc (gimple_fold_builtin_mempcpy): New function. |
| (gimple_fold_builtin): Handle BUILT_IN_MEMPCPY. |
| |
| 2026-04-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125025 |
| * tree-ssa-loop-niter.cc (number_of_iterations_ne): Avoid |
| negation of most negative signed integer. |
| (number_of_iterations_lt): Likewise. |
| |
| 2026-04-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/125019 |
| * tree-vect-loop.cc (vectorizable_recurr): Properly guard |
| against hitting last stmt when searching for the insertion |
| place. |
| |
| 2026-04-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/110262 |
| * match.pd (`signed < 0 ? positive : min<signed, positive>`): New |
| pattern. |
| |
| 2026-04-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Prerequisites): Use Binutils over binutils to |
| refer to that project. |
| (Downloading the source): Ditto. |
| (Configuration): Ditto. |
| (Building): Ditto. |
| (Specific): Ditto. |
| |
| 2026-04-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) |
| <case VEC_SELECT>: Simplify a (non-identity) vec_select of a |
| vec_select. |
| |
| 2026-04-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/124715 |
| * match.pd (simpify pows): Check flag_errno_math before simplifying |
| pow(x,-1) -> 1/x when x could be zero. |
| |
| 2026-04-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/sse.md |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): |
| Change mode iterator from V48H_AVX512VL to VFH_AVX512VL and op3's |
| predicate from <cmp_imm_predicate> to const_0_to_31_operand. |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name>): Change mode |
| iterator from VI12_AVX512VL to VI1248_AVX512VLBW. |
| (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Likewise. |
| |
| 2026-04-26 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/56096 |
| * config/riscv/riscv.md: Add new patterns to optimize certain cases with |
| a logical AND feeding an equality test against zero. |
| |
| 2026-04-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124061 |
| * tree-scalar-evolution.cc (interpret_rhs_expr): Use |
| INTEGRAL_NB_TYPE_P instead of comparing the code to INTEGER_TYPE. |
| * tree-ssa-loop-niter.cc (number_of_iterations_ne): Likewise. |
| (number_of_iterations_cltz): Likewise. |
| (number_of_iterations_exit_assumptions): Likewise. |
| * tree.h (INTEGRAL_NB_TYPE_P): New macro. |
| |
| 2026-04-25 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123904 |
| * config/riscv/riscv.md (masking shifted value): New splitter to |
| optimize certain masking operations on shifted values. |
| |
| 2026-04-25 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123838 |
| * config/riscv/riscv.md: Use splitters to simplify shifts where |
| the shift count is 31-N or 63-N. |
| |
| 2026-04-25 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/predicates.md: Add ge to the swappable |
| cmp operator iterator. |
| * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Take |
| care of the swapped rtx code as well. |
| |
| 2026-04-25 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/64567 |
| * match.pd (`cond (bit_and A IMM) (bit_or A IMM) A`): New |
| pattern. |
| (`cond (bit_and A IMM) (bit_and A ~IMM) A`): New pattern. |
| |
| 2026-04-25 Avinal Kumar <avinal.xlvii@gmail.com> |
| |
| PR tree-optimization/122989 |
| * tree-ssa-strlen.cc (get_string_length): Use |
| gimple_convert_to_ptrofftype and gimple_build instead of |
| convert_to_ptrofftype/force_gimple_operand_gsi/gimple_build_assign. |
| |
| 2026-04-25 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124984 |
| * config/riscv/thead.cc (th_memidx_classify_address_index): Extract |
| constant multiplicand value from the right object. |
| |
| 2026-04-24 Hans-Peter Nilsson <hp@axis.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document 'sleep'. |
| |
| 2026-04-24 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/80770 |
| * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2): Always extend |
| out to a word and use a subreg lowpart extraction to get the right bits. |
| (extend<SHORT:mode><SUPERQI:mode>2): Similarly. |
| |
| 2026-04-24 Carter Rennick <carter.rennick@gmail.com> |
| |
| PR target/120144 |
| * config/mips/mips.h (MAX_FIXED_MODE_SIZE): Remove. |
| |
| 2026-04-24 Eikansh Gupta <eikansh.gupta@oss.qualcomm.com> |
| |
| PR tree-optimization/123966 |
| * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): |
| Don't mark a relaxed atomic load with no LHS as necessary. |
| |
| 2026-04-24 Milan Tripkovic <Milan.Tripkovic@rt-rk.com> |
| |
| * config/riscv/riscv.cc (riscv_sched_adjust_cost):Enable |
| TARGET_ADJUST_LMUL_COST for spacemit_x60. |
| * config/riscv/spacemit-x60.md: Add vector pipeline model |
| for Spacemit-X60. |
| Co-authored-by: Dusan Stojkovic <Dusan.Stojkovic@rt-rk.com> |
| Co-authored-by: Nikola Ratkovac <Nikola.Ratkovac@rt-rk.com> |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_create_new_slp_node): Assert that 'code' |
| is either ERROR_MARK or VEC_PERM_EXPR. Document properly. |
| * tree-vect-slp-patterns.cc (vect_build_swap_evenodd_node): |
| Use lane_permutation_t. |
| (vect_build_combine_node): Likewise. Pass VEC_PERM_EXPR |
| as code. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Do not pass |
| vector type to costing. |
| |
| 2026-04-24 Raphael Zinsly <rzinsly@qti.qualcomm.com> |
| |
| PR target/123839 |
| * config/riscv/riscv-v.cc (shuffle_slide_patterns): Use a |
| vslideup+vslidedown pair rather than a vcompressed based |
| sequence. |
| |
| 2026-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124133 |
| * config/rs6000/rs6000-c.cc (c_fold_convert): New function. |
| (c_fold_build2_loc): Likewise. |
| (fully_fold_convert): Use c_fold_convert instead of fold_convert. |
| (altivec_build_resolved_builtin): Likewise. Use c_fold_build2_loc |
| instead of fold_build2. |
| (resolve_vec_mul, resolve_vec_adde_sube, resolve_vec_addec_subec): |
| Use c_fold_build2_loc instead of fold_build2_loc. |
| (resolve_vec_splats, resolve_vec_extract): Use c_fold_convert instead |
| of fold_convert. |
| (resolve_vec_insert): Use c_fold_build2_loc instead of fold_build2. |
| (altivec_resolve_overloaded_builtin): Use c_fold_convert instead |
| of fold_convert. |
| |
| 2026-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| PR tree-optimization/124988 |
| * gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow): |
| Handle bitint_extend. |
| (bitint_large_huge::lower_addsub_overflow): Fix up comment spelling. |
| For bitint_extended extend the partial limb if any. |
| |
| 2026-04-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/125009 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Support CONST_VECTOR load no larger than integer register. |
| (ix86_broadcast_inner): Use inner mode as the scalar mode for |
| CONST_VECTOR load source. |
| (pass_x86_cse::x86_cse): Generate CONST_VECTOR broadcast source |
| for CONST_VECTOR load no larger than integer register. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124843 |
| * tree-vect-patterns.cc (vect_recog_bool_pattern): Recognize |
| BIT_NOT_EXPR of scalar bools and rewrite with BIT_XOR_EXPR. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.cc (vect_duplicate_ssa_name_ptr_info): |
| Create points-to info from decl-based accesses. |
| (vect_create_addr_base_for_vector_ref): Adjust. |
| (vect_create_data_ref_ptr): Likewise. |
| (bump_vector_ptr): Likewise. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info::slp_vect_pattern_only_p): |
| Remove. |
| (STMT_VINFO_SLP_VECT_ONLY_PATTERN): Likewise. |
| * tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not |
| initialize STMT_VINFO_SLP_VECT_ONLY_PATTERN. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Nothing to do |
| for SLP pattern stmts that are not reachable from scalar |
| stmts anyway. Remove dead code. |
| * tree-vect-slp-patterns.cc (complex_pattern::build): Do not |
| set STMT_VINFO_SLP_VECT_ONLY_PATTERN. |
| (addsub_pattern::build): Likewise. |
| * tree-vect-slp.cc (vect_free_slp_tree): Remove dead code. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp-patterns.cc (complex_pattern::build): |
| Add pattern for the original stmt, do not set |
| STMT_VINFO_REDUC_DEF. |
| (addsub_pattern::build): Likewise. |
| |
| 2026-04-24 Netanel Komm <netanelkomm@gmail.com> |
| |
| PR tree-optimization/122996 |
| * match.pd (x != CST1 ? x + CST2 : 0 -> x + CST2): New pattern. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124947 |
| * tree-ssa-loop-ivopts.cc (may_eliminate_iv): Do not use |
| a candidate that involves undefs. |
| |
| 2026-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124946 |
| * tree-vect-loop.cc (vect_emulate_mixed_dot_prod): Perform the |
| constant biasing in an unsigned type. |
| |
| 2026-04-23 Michiel Derhaeg <Michiel.Derhaeg@synopsys.com> |
| |
| * config/riscv/pipeline-checker: Filter tuneless insn types. |
| |
| 2026-04-23 Yuxuan Chen <i@yuxuan.ch> |
| |
| PR c++/107187 |
| * doc/extend.texi: Document __attribute__((trivial_abi)). |
| |
| 2026-04-23 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/riscv/bitmanip.md (<bitmanip_optab>si3): Add |
| SUBREG_PROMOTED annotation to lowpart result. |
| |
| 2026-04-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/124029 |
| * config/riscv/riscv.cc (riscv_rtx_costs): Improve costing of COMPARE |
| nodes. |
| |
| 2026-04-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/cygming.h (STACK_CHECK_PROTECT): Define. |
| |
| 2026-04-23 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124994 |
| * config/i386/i386-features.cc (x86_cse::gate): Drop TARGET_SSE2. |
| |
| 2026-04-23 Bohan Lei <garthlei@linux.alibaba.com> |
| |
| * config/riscv/riscv.cc (vxrm_unknown_p): Remove `CALL_P` check |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * ipa-prop.cc (param_type_may_change_p): Fix comment typo. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * config/i386/i386.cc (ix86_get_callcvt): Say 'regparm' in comment, |
| not 'regparam'. |
| |
| 2026-04-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cfghooks.cc (make_forwarder_block): New data argument, |
| pass it down to redirect_edge_p. |
| * cfghooks.h (make_forwarder_block): Add void* argument. |
| * cfgloop.cc (mfb_reis_set): Remove. |
| (mfb_redirect_edges_in_set): Add new data argument. |
| Use it instead of mfb_reis_set. |
| (form_subloop): Create a local variable instead of |
| mfb_areis_set. Update call to make_forwarder_block. |
| (merge_latch_edges): Likewise. |
| * cfgloopmanip.cc (mfb_kj_edge): Remove. |
| (mfb_keep_just): Add new data argument. |
| Use it instead of mfb_kj_edge. |
| (create_preheader): Use local variable instead of |
| mfb_kj_edge. Update call to make_forwarder_block. |
| * cfgloopmanip.h (mfb_keep_just): Add void* argument. |
| * tree-cfgcleanup.cc (mfb_keep_latches): Add unused void* arugment. |
| (cleanup_tree_cfg_noloop): Update call to make_forwarder_block. |
| * tree-ssa-threadupdate.cc |
| (fwd_jt_path_registry::thread_through_loop_header): Use local |
| variable instead of mfb_kj_edge. Update call to make_forwarder_block. |
| |
| 2026-04-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cfghooks.cc (make_forwarder_block): Remove new_bb_cbk argument. |
| * cfghooks.h (make_forwarder_block): Remove last argument. |
| * cfgloop.cc (form_subloop): Update call to make_forwarder_block. |
| (merge_latch_edges): Likewise. |
| * cfgloopmanip.cc (create_preheader): Likewise. |
| * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise. |
| * tree-ssa-threadupdate.cc |
| (fwd_jt_path_registry::thread_through_loop_header): Likewise. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi (-ffunction-cse): Add missing full stop. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi (-Wduplicate-decl-specifier): Say 'a duplicate'. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi (-Waddress): Drop unnecessary 'warning'. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Fix whitespace. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi: Write 'In C,' and 'In C++,' with a comma |
| consistently. |
| |
| 2026-04-22 Sam James <sam@gentoo.org> |
| |
| * doc/invoke.texi (-Walloca): Simplify phrasing. |
| (-Walloca-larger-than=-): Ditto. |
| |
| 2026-04-22 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * mode-switching.cc (optimize_mode_switching): Add dump output. |
| |
| 2026-04-22 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_start_call_args): Extend |
| comment. |
| |
| 2026-04-22 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_mode_confluence): Fix |
| comment typo. |
| * target.def (mode_switching): Fix incorrect variable names in |
| documentation. |
| * doc/tm.texi: Regenerate. |
| |
| 2026-04-22 Alice Carlotti <alice.carlotti@arm.com> |
| |
| PR target/119210 |
| * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): |
| Add PSTATE.ZA enablement, and zero it if already enabled. |
| |
| 2026-04-22 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sme.md (aarch64_sme_write_zt): Add |
| ZTO_REGNUM use and make unspec non-volatile. |
| |
| 2026-04-22 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/124908 |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svld1rq_impl::fold): When the SVE vector length equals the |
| quadword width, emit VIEW_CONVERT_EXPR instead of VEC_PERM_EXPR. |
| |
| 2026-04-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/124933 |
| * config/arm/constraints.md (Uj): Allow offset addressing for |
| all targets, only allow Neon addressing when we have both Neon |
| and FP16INST. |
| * config/arm/vfp.md (mov<mode>_vfp_<mode>16): Only use vld1/vst1 |
| when the pattern needs address write-back. |
| |
| 2026-04-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/124971 |
| * gensupport.cc (convert_syntax): Fix up // comment handling. |
| |
| 2026-04-21 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/120189 |
| * doc/gm2.texi (Building a shared library): Replace |
| constant string with DEFAULT_RUNTIME_MODULE_OVERRIDE. |
| |
| 2026-04-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt): |
| Extend the padding bits not just for unsigned MULT_EXPR but for any |
| TYPE_OVERFLOW_WRAPS MULT_EXPR and signed TYPE_OVERFLOW_WRAPS division. |
| |
| 2026-04-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124941 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Use build_bitint_type |
| rather than build_nonstandard_integer_type for |
| maxsizei larger than MAX_FIXED_MODE_SIZE. |
| |
| 2026-04-21 Gaius Mulley <gaiusmod2@gmail.com> |
| |
| PR modula2/120189 |
| * doc/gm2.texi (Building a shared library): Rewrite. |
| |
| 2026-04-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| * gimple-lower-bitint.cc (bitint_large_huge::lower_shift_stmt): In the |
| RSHIFT_EXPR case, use p2 in two LE_EXPR conditions rather than just |
| one. In LSHIFT_EXPR case, use signed RSHIFT_EXPR instead of unsigned. |
| (bitint_large_huge::lower_muldiv_stmt): For unsigned MULT_EXPR with |
| bitint_extended if prec is not multiple of limb_prec, clear padding |
| bits after libgcc call. |
| (bitint_large_huge::lower_float_conv_stmt): Use signed RSHIFT_EXPR |
| instead of unsigned. |
| |
| 2026-04-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| * gimple-lower-bitint.cc (bitint_precision_kind): Assert the current |
| assumptions, that bitint_ext_full for abi_limb_prec > limb_prec is |
| supported only when abi_limb_prec is limb_Prec * 2 and it is not |
| big endian in that case. |
| (bitint_large_huge::lower_mergeable_stmt): Don't set separate_ext |
| fir bitint_ext_full for bit-field stores. Guard the condition |
| on an extra limb of padding bits to be extended rather than including |
| earlier extensions in that too. If already sign extending before |
| and type is unsigned, set zero_ms_limb instead and later handle it. |
| (bitint_large_huge::lower_shift_stmt): Handle bitint_ext_full. |
| |
| 2026-04-20 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-narrow-gp-writes.cc (narrow_dimode_src): Remove |
| redundant checks. Don't recurse when an operand remains DImode. |
| (narrow_gp_writes::optimize_compare_arith_insn): Use |
| HOST_WIDE_INT_PRINT_HEX. |
| (narrow_gp_writes::optimize_single_set_insn): Likewise. |
| |
| 2026-04-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/124643 |
| * cse.cc (canon_reg): Handle and canonicalize subregs. |
| |
| 2026-04-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/aarch64/aarch64.md (SME_STATE_REGNUM): Fix a comment typo. |
| |
| 2026-04-18 Gopi Kumar Bulusu <gopi@sankhya.com> |
| |
| PR target/103383 |
| * config/microblaze/microblaze.md: bswaphi2: (set_attr length 8) |
| |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c/84717 |
| * doc/extend.texi (Decimal Float): Document d and D suffixes. |
| Fix index entries for decimal float suffixes. |
| |
| 2026-04-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/120098 |
| * ipa-polymorphic-call.cc (polymorphic_ctor_dtor_p): Remove |
| check for pure/const flags |
| |
| 2026-04-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/120098 |
| * ipa-devirt.cc (odr_type_p): Add no_derived_construction_vtables |
| (odr_types_ptr): Move ahead in file. |
| (odr_types): Move ahead in file. |
| (anonymous_construction_vtable_p): New function. |
| (mark_derived_construction_vtables): New function. |
| (construction_vtable_hook): New function. |
| (type_possibly_instantiated_p): Watch for construction vtables. |
| |
| 2026-04-17 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx-sm.def: Add '50'. |
| * config/nvptx/nvptx-gen.h: Regenerate. |
| * config/nvptx/nvptx-gen.opt: Likewise. |
| * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. |
| * config/nvptx/nvptx.opt (-march-map=sm_50): Likewise. |
| * config.gcc: Likewise. |
| * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_50'. |
| * config/nvptx/gen-multilib-matches-tests: Extend. |
| |
| 2026-04-17 Thomas Schwinge <tschwinge@baylibre.com> |
| |
| * config/nvptx/nvptx-opts.h (enum ptx_version): Add |
| 'PTX_VERSION_4_0'. |
| * config/nvptx/nvptx.cc (ptx_version_to_string) |
| (ptx_version_to_number): Adjust. |
| * config/nvptx/nvptx.h (TARGET_PTX_4_0): New. |
| * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' |
| '4.0' for 'PTX_VERSION_4_0'. |
| * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.0'. |
| |
| 2026-04-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/124900 |
| * gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): Do |
| not expand to table when compiling for size. |
| (class crc_optimization): Update prototype of optimize_crc_loop to |
| include loop. |
| (crc_optimization::execute): Pass loop to optimize_crc_loop. |
| |
| 2026-04-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-m85): Allow +cdecp<n>. |
| * doc/invoke.texi: Document this |
| |
| 2026-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124565 |
| * config/stormy16/stormy16.cc (xstormy16_build_builtin_va_list): Set |
| TREE_PUBLIC on type_decl. |
| * config/xtensa/xtensa.cc (xtensa_build_builtin_va_list): Likewise. |
| |
| 2026-04-16 Tobias Burnus <tburnus@baylibre.com> |
| |
| PR target/124897 |
| * doc/install.texi (amdgcn-amdhsa): Fix required LLVM version for |
| default multilib. |
| |
| 2026-04-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/124877 |
| * calls.cc (initialize_argument_information): Compute |
| signedness of the formal argument type before applying |
| PROMOTE_PROTOTYPES promotion. Also apply promotion to |
| a smaller than int integer first member type of a |
| transparent union. |
| * target.def (promote_prototypes): Update documentation. |
| * doc/tm.texi: Re-generate. |
| |
| 2026-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124892 |
| * config/i386/i386.md (clz<mode>2_lzcnt_nf, |
| <lt_zcnt>_<mode>_nf, popcount<mode>2_nf): Emit explicit |
| set of (match_dup 0) to (const_int 0) without flags clobber instead of |
| using ix86_expand_clear. |
| |
| 2026-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124891 |
| * tree-ssa-propagate.cc |
| (substitute_and_fold_dom_walker::before_dom_children): Call update_stmt |
| in the did_replace case before calling fold_stmt. |
| |
| 2026-04-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/122976 |
| * tree-sra.cc (path_comparable_for_same_access): Return false if the |
| base is a MEM_REF with a different underlying type. |
| |
| 2026-04-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123635 |
| * target.h (enum bitint_ext): New. |
| (struct bitint_info): Change extend type from bool to enum bitint_ext |
| and document it. |
| * gimple-lower-bitint.cc (bitint_extended): Change type from bool |
| to enum bitint_ext. |
| (bitint_precision_kind): Change bitint_extended to bitint_ext_partial |
| from bitint_ext_full if limb_mode is the same as abi_limb_mode. |
| (bitint_large_huge::limb_access_type): For |
| bitint_extended == bitint_ext_full allow access to the most |
| significant limb solely with padding bits if present. |
| (bitint_large_huge::lower_mergeable_stmt): Handle |
| bitint_extended == bitint_ext_full extension if needed. |
| (bitint_large_huge::lower_muldiv_stmt): Likewise. |
| (bitint_large_huge::lower_float_conv_stmt): Likewise. |
| * config/aarch64/aarch64.cc (aarch64_bitint_type_info): Set |
| info->extended to bitint_ext_undef rather than false. |
| * config/arm/arm.cc (arm_bitint_type_info): Set |
| info->extended to bitint_ext_full rather than true. |
| * config/i386/i386.cc (ix86_bitint_type_info): Set |
| info->extended to bitint_ext_undef rather than false. |
| * config/loongarch/loongarch.cc (loongarch_bitint_type_info): Set |
| info->extended to bitint_ext_partial rather than true. |
| * config/riscv/riscv.cc (riscv_bitint_type_info): Set |
| info->extended to bitint_ext_full rather than true. |
| * config/s390/s390.cc (s390_bitint_type_info): Likewise. |
| |
| 2026-04-15 Jason Merrill <jason@redhat.com> |
| |
| PR c++/117133 |
| PR c++/124768 |
| PR c++/124773 |
| * doc/trouble.texi (Linkage in Anonymous Namespaces): Remove. |
| |
| 2026-04-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386.cc |
| (x86_64_preserve_none_int_parameter_registers): Replace |
| ix86_function_value_regno_p with ix86_function_arg_regno_p in |
| comments. |
| |
| 2026-04-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (armagicpu): New. |
| * config/aarch64/aarch64-tune.md: Renegerate |
| * doc/invoke.texi: Document it. |
| |
| 2026-04-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/124809 |
| * value-relation.cc (equiv_oracle::equiv_oracle): Allocate lhs |
| equivalence bitmap. |
| (relation_oracle::record): Check if LHS has already created an |
| equivalence record. |
| * value-relation.h (relation_oracle::relation_oracle): New. |
| (relation_oracle::m_lhs_equiv_set_p): New. |
| |
| 2026-04-14 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/123102 |
| * config/arm/arm.md (*cmp_ite0): Apply stricter checks on the |
| comparison mode. |
| (*cmp_ite1, *cmp_and, *cmp_ior): Likewise. |
| |
| 2026-04-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/124777 |
| * ipa-cp.h (ipacp_value_safe_for_type): Declare. |
| * ipa-cp.cc (ipacp_value_safe_for_type): Make public. |
| * ipa-prop.cc (ipa_set_jf_cst_copy): Fix comment. |
| (ipa_convert_prop_cst_jf): New function. |
| (update_jump_functions_after_inlining): Handle the constant to |
| pass-through case by calling ipa_convert_prop_cst_jf. |
| |
| 2026-04-14 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64.opt.urls: Regenerate. |
| |
| 2026-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124875 |
| * tree-ssa-pre.cc (prefer): Also compare TBAA set and base_set. |
| Refactor computing the final prefered expression, do early outs |
| and allow same prefered expressions. |
| (sorted_array_from_bitmap_set): Fix thinko that prevented |
| the last expression in the set of being excluded. |
| |
| 2026-04-14 Soumya AR <soumyaa@nvidia.com> |
| Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config.gcc: Add aarch64-narrow-gp-writes.o. |
| * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert |
| pass_narrow_gp_writes before pass_cleanup_barriers. |
| * config/aarch64/aarch64-protos.h (make_pass_narrow_gp_writes): Declare. |
| * config/aarch64/aarch64-tuning-flags.def |
| (AARCH64_EXTRA_TUNING_OPTION): Add NARROW_GP_WRITES. |
| * config/aarch64/aarch64.opt (mnarrow-gp-writes): New option. |
| * config/aarch64/t-aarch64: Add aarch64-narrow-gp-writes.o rule. |
| * config/aarch64/tuning_models/olympus.h: Add |
| AARCH64_EXTRA_TUNE_NARROW_GP_WRITES to tune_flags. |
| * doc/invoke.texi: Document -mnarrow-gp-writes. |
| * config/aarch64/aarch64-narrow-gp-writes.cc: New file. |
| |
| 2026-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124826 |
| * gimple-lower-bitint.cc (bitint_large_huge::handle_load): Look through |
| BIT_FIELD_REF with zero bit offset. |
| |
| 2026-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * cgraphunit.cc (process_symver_attribute): Fix comment typo, |
| bintuils -> binutils. |
| |
| 2026-04-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124868 |
| * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg): |
| Do not diagnose returns in blocks not dominated by the PHI. |
| (find_implicit_erroneous_behavior): Do two sweeps over PHIs, |
| first for NULL dereferences and then for local address returns. |
| |
| 2026-04-14 Avinash Jayakar <avinashd@linux.ibm.com> |
| |
| Revert: |
| 2026-04-07 Avinash Jayakar <avinashd@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add |
| logic to handle __builtin_ppc_atomic_cas_local. |
| * config/rs6000/rs6000-builtins.def: New builtins for |
| __builtin_ppc_atomic_cas_local with types. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): |
| Handle builtins with up to 6 arguments. |
| * config/rs6000/rs6000-overload.def: Overload builtin for |
| signed/unsiged char, short, int, long, __int128. |
| * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): |
| Add additional parameter 'local' to the prototype. |
| * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass |
| new parameter to generate load-locked instruction. |
| (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call |
| emit_load_locked() with additional parameter value of EH bit. |
| (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). |
| (rs6000_expand_atomic_op): Likewise. |
| * config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL |
| template. Specify EH bit in the larx instruction. |
| (load_locked<QHI:mode>_si): Likewise. |
| (load_lockedpti): Likewise. |
| (load_lockedti): Add new operand in RTL template. Pass EH bit to |
| gen_load_lockedpti(). |
| (atomic_compare_and_swap<mode>): Pass new parameter 'false' to |
| rs6000_expand_atomic_compare_and_swap. |
| (atomic_compare_and_swap_local<mode>): New define_expand. |
| |
| 2026-04-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124876 |
| * config/i386/i386.cc (ix86_zero_call_used_regs): Zero ZMM16-31 |
| if needed. |
| |
| 2026-04-13 Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| Revert: |
| 2025-06-30 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/109116 |
| * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT. |
| (vsx_disassemble_pair): Expand into a vector register sized subreg. |
| (mma_disassemble_acc): Likewise. |
| (*vsx_disassemble_pair): Delete. |
| (*mma_disassemble_acc): Likewise. |
| |
| 2026-04-13 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/124700 |
| * cgraph.cc (cgraph_node::is_clone_of): New method, determines |
| whether a node is a descendant of another in the clone tree. |
| * cgraph.h (struct cgraph_node): Add decl of is_clone_of. |
| * cgraphbuild.cc (mark_address): Fix reference creation for |
| cloned callback functions. |
| |
| 2026-04-13 Hu, Lin1 <lin1.hu@intel.com> |
| |
| PR target/124710 |
| * config/i386/sse.md (iptrps2qq): New mode attribute for |
| ps2qq Intel syntax memory operand size override. |
| (avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>): |
| Use %<iptrps2qq>1 in Intel syntax to emit qword ptr for V2DI (128-bit) |
| memory operands. |
| (avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>): |
| Use %q1 in Intel syntax to emit qword ptr for scalar double memory |
| operands. |
| (avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>): |
| Use %k1 in Intel syntax to emit dword ptr for scalar single memory |
| operands. |
| |
| 2026-04-11 Christopher Albert <albert@tugraz.at> |
| |
| PR fortran/93554 |
| * omp-expand.cc (expand_oacc_for): Relax entry_bb and cont_bb |
| assertions to allow intermediate blocks from finalization code. |
| Remove exit_bb predecessor count assertion. |
| |
| 2026-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/124827 |
| * gimple-ssa-warn-access.cc (xchg_models): Remove. |
| (pass_waccess::check_atomic_builtin): Fix up sucs_arg for |
| BUILT_IN_ATOMIC_EXCHAGE_* and use all_models instead of xchg_models. |
| Handle BUILT_IN_TSAN_ATOMIC*. Formatting fixes. |
| |
| 2026-04-10 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * configure: Regenerate. |
| |
| 2026-04-10 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Set |
| __riscv_v_intrinsic to v1.0. |
| * doc/extend.texi (RISC-V Vector Intrinsics): Document the |
| ratified v1.0 RVV intrinsic specification and update the link. |
| |
| 2026-04-09 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/124773 |
| * doc/trouble.texi (Linkage in Anonymous Namespaces): New section. |
| |
| 2026-04-09 Alex Coplan <alex.coplan@arm.com> |
| |
| PR target/122483 |
| * config/aarch64/t-aarch64: Replace instances of TM_H with |
| TARGET_H where appropriate, add missing dependency on TARGET_H |
| for aarch64-early-ra.cc. |
| |
| 2026-04-09 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * Makefile.in (AFDO_PROFILER): New variable. |
| (PERF): Likewise. |
| * config/aarch64/gcc-auto-profile: Detect and use ARM SPE events when |
| invoking perf record. |
| * configure: Regenerate. |
| * configure.ac: Detect whether build has perf utility available and |
| check for ARM SPE-based profiling support when building on AArch64. |
| |
| 2026-04-09 Richard Biener <rguenther@suse.de> |
| |
| * coverage.cc (coverage_init): Do not call read_counts_file |
| if flag_auto_profile. |
| |
| 2026-04-09 Christoph Müllner <christoph.muellner@vrull.eu> |
| |
| PR target/124818 |
| * config/riscv/riscv.cc (synthesize_ior_xor): Do not treat |
| TARGET_ZBKB as sufficient for single-bit immediate IOR/XOR. |
| |
| 2026-04-09 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/params.texi: Replace param_vect_scalar_cost_multiplier with |
| param_vect_allow_possibly_not_worthwhile_vectorizations |
| * params.opt: Likewise. |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): |
| Likewise. |
| * config/riscv/riscv.cc (riscv_override_options_internal): Likewise. |
| * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Likewise. |
| * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise. |
| (vect_slp_region): Likewise. |
| |
| 2026-04-09 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/105192 |
| * ifcvt.cc (find_if_header): Don't attempt to use ctrap expander |
| after reload. |
| |
| 2026-04-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124810 |
| * cfgloopmanip.cc (fix_loop_placements): Do not stop |
| iterating when an inner loop didn't get re-parented. |
| Compute the outermost loop we have to consider re-parenting. |
| |
| 2026-04-08 Prathamesh Kulkarni <prathameshk@nvidia.com> |
| |
| * auto-profile.cc (function_instance::merge): Set other->timestamp() if it's |
| lesser than timestamp() and greater than zero or if timestamp() is zero. |
| |
| 2026-04-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124759 |
| PR target/124789 |
| * config/i386/i386.cc (ix86_need_alignment_p_2): New function. |
| Exclude memory with SYMBOLIC_CONST. |
| (ix86_need_alignment_p_1): Call ix86_need_alignment_p_2. |
| (ix86_find_max_used_stack_alignment): Restore |
| hard_stack_slot_access handling. |
| |
| 2026-04-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386.cc (ix86_need_alignment_p_1): Replace |
| GET_MODE_ALIGNMENT with MEM_ALIGN. |
| |
| 2026-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124802 |
| * tree-vect-slp-patterns.cc (vect_match_expression_p): Fail |
| for SLP_TREE_PERMUTE_P. |
| |
| 2026-04-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR sanitizer/124170 |
| * doc/invoke.texi (Option Summary) <Linker Options>: Add |
| -static-libhwasan and fix alphabetization of similar options. |
| (Link Options): Likewise. |
| * common.opt.urls: Regenerated. |
| |
| 2026-04-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/124784 |
| * regenerate-opt-urls.py (canonicalize_option_name): Remove one |
| of the dashes from option names starting with two dashes. |
| (test_parse_option_index): Add a self-test for this. |
| * common.opt.urls: Regenerated. |
| * config/picolibc.opt.urls: Regenerated. |
| |
| 2026-04-07 Peter Damianov <peter0x44@disroot.org> |
| |
| * config/mingw/t-cygming: Remove obsolete STMP_FIXINC |
| override. |
| |
| 2026-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124743 |
| * tree-vect-slp.cc (vect_schedule_slp_node): Schedule |
| loop invariant operations in the loop preheader. |
| |
| 2026-04-07 Avinash Jayakar <avinashd@linux.ibm.com> |
| Surya Kumari Jangala <jskumari@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add |
| logic to handle __builtin_ppc_atomic_cas_local. |
| * config/rs6000/rs6000-builtins.def: New builtins for |
| __builtin_ppc_atomic_cas_local with types. |
| * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): |
| Handle builtins with up to 6 arguments. |
| * config/rs6000/rs6000-overload.def: Overload builtin for |
| signed/unsiged char, short, int, long, __int128. |
| * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): |
| Add additional parameter 'local' to the prototype. |
| * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass |
| new parameter to generate load-locked instruction. |
| (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call |
| emit_load_locked() with additional parameter value of EH bit. |
| (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). |
| (rs6000_expand_atomic_op): Likewise. |
| * config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL |
| template. Specify EH bit in the larx instruction. |
| (load_locked<QHI:mode>_si): Likewise. |
| (load_lockedpti): Likewise. |
| (load_lockedti): Add new operand in RTL template. Pass EH bit to |
| gen_load_lockedpti(). |
| (atomic_compare_and_swap<mode>): Pass new parameter 'false' to |
| rs6000_expand_atomic_compare_and_swap. |
| (atomic_compare_and_swap_local<mode>): New define_expand. |
| |
| 2026-04-06 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR libstdc++/124268 |
| * doc/invoke.texi: Note that -Wexpose-global-module-tu-local |
| also applies to 'export using' declarations. |
| |
| 2026-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Specific, amd64-*-solaris2*, i?86-*-solaris2*) |
| (sparc-sun-solaris2*, sparc64-*-solaris2*, sparcv9-*-solaris2*) |
| (x86_64-*-solaris2*): Remove. Fold into ... |
| (Specific, *-*-solaris2*): ... this. |
| Rewrite. |
| |
| 2026-04-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Picolibc Options): Copy-edit for markup, use |
| of proper names, etc. |
| |
| 2026-04-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (GCC Command Options): Move Picolibc Options |
| section to Target-Specific Options. |
| (Option Summary): Likewise. |
| |
| 2026-04-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Common Attributes): Fix cross-reference for |
| renamed "Submodel Options" -> "Target-Specific Options". |
| * doc/invoke.texi (Invoking GCC): Likewise for the menu. |
| (Option Summary): Likewise for the use here. |
| (Submodel Options): Rename to Target-Specific Options. Leave |
| an anchor with the old name. Add better index entries. Rewrite |
| introductory text. |
| (Precompiled Headers): Fix another cross-reference. |
| |
| 2026-04-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/107337 |
| * doc/invoke.texi (x86 Options): Add CX16 feature to nocona, |
| alderlake, arrowlake, arrowlake-s, pantherlake, novalake, |
| bonnell, sierraforest, grandridge, clearwaterforest, and amdfam10 |
| family processors. |
| |
| 2026-04-04 Richard Biener <rguenther@suse.de> |
| |
| * doc/gccint.texi: Add named pattern index with @mdindex. |
| * doc/md.texi (Standard Pattern Names For Generation): Split |
| table into two using subsections, splitting out vectorizer |
| related standard patterns. Use @mdindex for all standard |
| pattern names. |
| |
| 2026-04-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_legitimize_address): |
| Add code to legitimize the displacement of 64 kilobytes before and |
| after using two ADDMI instructions. |
| |
| 2026-04-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (negsf2): |
| Change define_insn to define_insn_and_split, and replace the |
| corresponding output template with the split pattern. |
| |
| 2026-04-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P): |
| Remove. |
| |
| 2026-04-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (smalloffset_mem_p): |
| Rename it to smalloffset_address_p and remove the result check |
| of MEM_P(). |
| (constantpool_address_p): Change from static scope to global. |
| * config/xtensa/xtensa-protos.h (smalloffset_mem_p): |
| Rename it to smalloffset_address_p. |
| (constantpool_address_p): New function prototype. |
| * config/xtensa/constraints.md (R): |
| Change the call in (match_test "...") from smalloffset_mem_p() |
| to smalloffset_address_p(). |
| (T, U): Change the call in (match_test "...") from |
| constantpool_mem_p() to constantpool_address_p(). |
| |
| 2026-04-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/123234 |
| * doc/extend.texi (Decimal Float): Clarify that GCC really does |
| support only the older N1312 draft as documented here, not the |
| standard C23 functionality yet. |
| |
| 2026-04-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124754 |
| * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strcpy): Make |
| sure both get_stridx calls are done before first get_strinfo call. |
| (strlen_pass::handle_builtin_memcpy): Likewise. |
| (strlen_pass::handle_builtin_strcat): Likewise. |
| |
| 2026-04-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR debug/94491 |
| * doc/invoke.texi (Debugging Options): Explicitly document what |
| -g2 does instead of just saying it's the default. |
| |
| 2026-04-03 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/94182 |
| * doc/implement-c.texi (Characters implementation): Add |
| cross-reference to more detailed discussion about signedness. |
| * doc/invoke.texi (C Dialect Options): Combine -fsigned-char |
| and -funsigned-char table entries since the following discussion |
| applies to both. Add an anchor so other things can point at it. |
| (Warning Options): Add cross-references to the above two places. |
| Clarify that the warning is given regardless of whether char is |
| signed or unsigned. |
| |
| 2026-04-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124746 |
| * tree-ssa-phiprop.cc (propagate_with_phi): Treat |
| and aggregate copy as it is a trapping load. |
| |
| 2026-04-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * tree-ssa-phiprop.cc (propagate_with_phi): Move the |
| check for load from ptr before the checks of domination. |
| |
| 2026-04-02 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-protos.h |
| (loongarch_parse_fmv_features): Modify parameter type. |
| * config/loongarch/loongarch-target-attr.cc |
| (loongarch_parse_fmv_features): Some errors have been |
| changed to warnings. |
| * config/loongarch/loongarch.cc |
| (loongarch_process_target_version_attr): Update parameters. |
| (loongarch_check_target_clone_version): Likewise. |
| (loongarch_option_same_function_versions): Likewise. |
| (TARGET_CHECK_TARGET_CLONE_VERSION): Define. |
| |
| 2026-04-01 Tamar Christina <tamar.christina@arm.com> |
| Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/123238 |
| * config/aarch64/aarch64.cc (aarch64_rtx_costs) <case NE/EQ>: |
| Provide improved costs for scalar and vector comparisons. |
| |
| 2026-04-01 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/123238 |
| * expr.cc (convert_tree_comp_to_rtx): Make global. |
| * expr.h (convert_tree_comp_to_rtx): Prototype here. |
| * internal-fn.cc (expand_vec_cond_mask_optab_fn): Use rtx_costs |
| to determine whether swapping operands would result in better |
| code. |
| * config/i386/i386-expand.cc (ix86_expand_int_vec_cmp): On |
| AVX512 targets use a ternlog instead of a comparison to negate |
| the mask (requires one instruction instead of two). |
| * config/i386/i386.cc (ix86_rtx_costs): Refactor code for UNSPEC. |
| Provide costs for UNSPEC_BLENDV and UNSPEC_MOVMSK. Provide |
| costs for comparison operators of integer vector modes. |
| |
| 2026-04-01 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/124696 |
| * lra-constraints.cc (simplify_operand_subreg): Reload |
| paradoxical subreg only if it requires more than one hard reg. |
| |
| 2026-04-01 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (print_operand): Use fputs instead of |
| fprintf. |
| |
| 2026-04-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR preprocessor/70917 |
| * doc/invoke.texi (Environment Variables): Clarify that LC_ALL, |
| LC_CTYPE, LC_MESSAGES, and LANG affect only diagnostics and |
| informational output from GCC, not the encodings of input and |
| output files. Remove separate bit-rotten entry for LANG. |
| |
| 2026-04-01 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124742 |
| * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Exit |
| if the vdef on the stmt is NULL. |
| |
| 2026-04-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/124697 |
| * function.cc (assign_parm_adjust_stack_rtl): Force a local copy |
| if the current alignment is less than the minimum of |
| BIGGEST_ALIGNMENT and MAX_SUPPORTED_STACK_ALIGNMENT. |
| |
| 2026-04-01 Richard Biener <rguenther@suse.de> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR middle-end/124634 |
| * doc/ifn.texi: New file. |
| * doc/gccint.texi: Include ifn.texi. |
| * Makefile.in (TEXI_GCCINT_FILES): Add ifn.texi. |
| |
| 2026-04-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/61896 |
| * doc/cppopts.texi (-finput-charset=): Remove long-obsolete |
| locale discussion. Document behavior about ill-formed inputs. |
| |
| 2026-04-01 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/poly-int.texi: Add copyright notice. |
| * doc/specs.texi: Likewise. |
| |
| 2026-03-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-dse.cc (compute_trims): Bail out if ref->size is not |
| byte aligned either. |
| |
| 2026-03-31 Mikael Morin <mikael@gcc.gnu.org> |
| Christopher Albert <albert@tugraz.at> |
| |
| PR fortran/121185 |
| PR fortran/124661 |
| * tree-inline.cc (debug_find_tree, debug_find_tree_1): Move |
| and rename functions... |
| * tree.cc (find_tree, find_tree_1): ... here. |
| * tree-inline.h (debug_find_tree): Move renamed declaration... |
| * tree.h (find_tree): ... here. |
| |
| 2026-03-31 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124165 |
| PR target/124684 |
| * config/i386/i386.cc (ix86_symbolic_const_load_p_1): Renamed to |
| ... |
| (ix86_need_alignment_p_1): This. |
| (ix86_symbolic_const_load_p): Renamed to ... |
| (ix86_need_alignment_p): This. |
| (ix86_find_max_used_stack_alignment): Call ix86_access_stack_p |
| only if the INSN needs alignment > stack alignment. |
| |
| 2026-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. |
| |
| 2026-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (poe2): |
| New CLI extension option. |
| (tev): Likewise. |
| (tlbid): Likewise. |
| (gcie): Likewise. |
| (mpamv2): Likewise. |
| (lscp): Likewise. |
| (mops-go): Likewise. |
| (sve2p3): Likewise. |
| (sme2p3): Likewise. |
| (f16f32dot): Likewise. |
| (sve-b16mm): Likewise. |
| (mtetc): Likewise. |
| (f16f32mm): Likewise. |
| (f16mm): Likewise. |
| * doc/invoke.texi (poe2): Document option. |
| (tev): Likewise. |
| (tlbid): Likewise. |
| (gcie): Likewise. |
| (mpamv2): Likewise. |
| (lscp): Likewise. |
| (mops-go): Likewise. |
| (sve2p3): Likewise. |
| (sme2p3): Likewise. |
| (f16f32dot): Likewise. |
| (sve-b16mm): Likewise. |
| (mtetc): Likewise. |
| (f16f32mm): Likewise. |
| (f16mm): Likewise. |
| |
| 2026-03-31 Wu Haotian <rigoligo03@gmail.com> |
| |
| * config.gcc: removed linux.h and t-linux for loongarch*-*-elf* targets |
| |
| 2026-03-30 H.J. Lu <hjl.tools@gmail.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR target/120839 |
| PR middle-end/124671 |
| * function.cc (assign_parm_adjust_stack_rtl): Get the parameter |
| as argument. Adjust alignment check forcing a local copy. |
| (assign_parms): Adjust. |
| * config/i386/i386.cc (ix86_argument_passed_on_stack_p): New. |
| (ix86_update_stack_alignment): Ignore argument passed on stack. |
| |
| 2026-03-30 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| * config/bpf/bpf.md (zero_extendhidi2): Add alternates for |
| alu32 and use 'W' for reg operands. |
| (zero_extendqidi2): Ditto. |
| |
| 2026-03-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124692 |
| * tree-cfg.cc (replace_uses_by): Call update_stmt after |
| substitution and before folding. |
| |
| 2026-03-30 Saurabh Jha <saurabh.jha@arm.com> |
| Evgeny Karpov <evgeny.karpov@arm.com> |
| |
| * config/aarch64/aarch64.cc |
| (aarch64_scalar_mode_supported_p): Only return true on TFmode if |
| TARGET_LONG_DOUBLE_128 is set. |
| |
| 2026-03-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88576 |
| * tree-ssa-alias.cc (check_fnspec): Remove flag_errno_math check. |
| * ipa-modref.cc (modref_access_analysis::process_fnspec): |
| Likewise. |
| |
| 2026-03-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124677 |
| * tree-vect-loop.cc (vectorizable_recurr): Skip vector |
| stmts for the def. |
| |
| 2026-03-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple M5 |
| cores. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Add apple-m5 core to the ones listed |
| for arch and tune selections. |
| |
| 2026-03-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR target/102309 |
| * config/arm/arm.cc (arm_constant_limit): Allways allow at least |
| one insn when loading a constant. |
| |
| 2026-03-29 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124674 |
| * config/riscv/riscv-modes.def: Create OImode. |
| |
| 2026-03-27 Vineet Gupta <vineet.gupta@linux.dev> |
| |
| PR target/124670 |
| * config/bpf/bpf.md (zero_extendsidi2): Use 'W' in asm template. |
| |
| 2026-03-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/124649 |
| * regcprop.cc (maybe_mode_change): Return early |
| for unordered modes. |
| |
| 2026-03-27 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/124613 |
| * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher): |
| Add riscv_registering_builtins. |
| (rvv_switcher::~rvv_switcher): Set riscv_registering_builtins to |
| false. |
| * config/riscv/riscv.cc (riscv_vector_mode_supported_p): Use |
| riscv_registering_builtins. |
| * config/riscv/riscv.h: Declare. |
| |
| 2026-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/124644 |
| * dwarf2out.cc (dwarf2out_abstract_function): Only |
| add DW_AT_artificial if the decl isn't DECL_ARTIFICIAL. |
| |
| 2026-03-27 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| * Makefile.in: (PLUGIN_HEADERS): Add $(srcdir)/topics/*.h. |
| (install-plugin): Preserve directory structure for topics |
| headers. |
| |
| 2026-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR gcov-profile/121074 |
| * coverage.h (coverage_init_file): Declare. |
| (coverage_finish_file): Likewise. |
| * coverage.cc (coverage_init_file): New function, split |
| out actual file opening and writing from ... |
| (coverage_init): ... here. |
| (coverage_finish_file): Likewise for file closing, from ... |
| (coverage_finish): ... here. |
| * tree-profile.cc (tree_profiling): Call coverage_init_file |
| and coverage_finish_file here. |
| |
| 2026-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124627 |
| * tree-inline.cc (copy_debug_stmts): Only copy debug |
| stmts that are still in the IL. |
| |
| 2026-03-25 Alexandre Oliva <oliva@adacore.com> |
| |
| * gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Map |
| OPT_Wuse_after_free like OPT_Wuse_after_free_. |
| |
| 2026-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/i386.cc (ix86_in_large_data_p): Check for .lbss etc. |
| (x86_64_elf_section_type_flags): Clear SECTION_NOTYPE for .lbss etc. |
| * config/i386/x86-64.h (MACH_DEP_SECTION_ASM_FLAG): Define. |
| * config/i386/sol2.h [HAVE_SOLARIS_AS] |
| (MACH_DEP_SECTION_ASM_FLAG): Redefine as 'h'. |
| |
| 2026-03-25 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * cgraph.cc (cgraph_edge::get_next_speculative_id): Use |
| next_speculative_call_target in get_next_speculative_id. |
| |
| 2026-03-24 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/124572 |
| * lra-eliminations.cc (lra_eliminate): Push new reload insns for |
| eliminations in insns. |
| |
| 2026-03-24 Christopher Bazley <chris.bazley@arm.com> |
| |
| * doc/rtl.texi: Fix example of the SSA form. |
| |
| 2026-03-24 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-stmts.cc (vectorizable_load): Swap order of failure |
| message checks. |
| |
| 2026-03-23 Stefan Weigl-Bosker <stefan@s00.xyz> |
| |
| * omp-general.h: Fix typos. |
| |
| 2026-03-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124599 |
| * tree-ssa-pre.cc (compute_avail): Make the VUSE in the |
| PRE reference expression part of the value again. |
| (phi_translate_1): Likewise. |
| |
| 2026-03-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/124547 |
| * configure.ac: After config.gcc inclusion use or set only gas instead |
| of gas_flag and gnu_ld instead of gnu_ld_flag. |
| * config.gcc: Document possibility of gas_flag or gnu_ld_flag being |
| empty. |
| * acinclude.m4 (gcc_GAS_FLAGS): Use gas instead of gas_flag. |
| (gcc_AC_INITFINI_ARRAY): Likewise. Use gnu_ld instead of gnu_ld_flag. |
| * configure: Regenerate. |
| |
| 2026-03-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/124597 |
| * config/i386/i386-builtins.cc (ix86_init_builtins_va_builtins_abi): |
| Also add nothrow and leaf attributes to the va builtins. |
| |
| 2026-03-22 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124597 |
| * gimple-fold.cc (gimple_fold_builtin_stdarg): Correct the |
| eh_update argument to gsi_replace for the VA_END case. |
| |
| 2026-03-21 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/123852 |
| * config/sh/sh.md (movsicc_t_false): Add the SImode |
| on the if_then_else. |
| (movsicc_t_true): Likewise. |
| (negsi_cond): Likewise. |
| (negdi_cond): Add the DImode on the if_then_else. |
| (bst_m2a): Add the QImode on the if_then_else. |
| |
| 2026-03-20 Tobias Burnus <tburnus@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/122866 |
| * gimplify.cc (omp_instantiate_mapper): Give a sorry if there are |
| iterators. |
| |
| 2026-03-20 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gimplify.cc (gimplify_omp_workshare): Handle iterators in |
| "target data". |
| |
| 2026-03-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/tuning_models/olympus.h (olympus_tunings): Set |
| loop_align to 64:16. |
| |
| 2026-03-20 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (gen_int_relational): |
| Specify the table array "info" and the pointer to its elements |
| as const. |
| |
| 2026-03-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124565 |
| * config/i386/i386.cc (ix86_build_builtin_va_list_64): Set TREE_PUBLIC |
| on type_decl. |
| |
| 2026-03-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124566 |
| * config/sh/sh.cc (sh_build_builtin_va_list): Set TREE_PUBLIC |
| on type_decl. |
| |
| 2026-03-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124578 |
| * tree-ssa-sccvn.cc (vn_reference_eq): Consistently check |
| fields from vro2. |
| |
| 2026-03-20 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body): |
| Check DECL_VIRTUAL_P for virtual functions for LTO handling. |
| * config/i386/i386-features.cc (ix86_generate_version_dispatcher_body): |
| Ditto. |
| * config/riscv/riscv.cc (riscv_generate_version_dispatcher_body): Ditto. |
| * config/rs6000/rs6000.cc (rs6000_generate_version_dispatcher_body): |
| Ditto. |
| * config/loongarch/loongarch.cc |
| (loongarch_generate_version_dispatcher_body): Ditto. |
| |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124565 |
| * config/alpha/alpha.cc (alpha_build_builtin_va_list): Set TREE_PUBLIC |
| on type_decl. |
| |
| 2026-03-19 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * common.opt.urls: Added missing entry. |
| |
| 2026-03-18 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/124041 |
| PR rtl-optimization/124439 |
| * lra-constraints.cc (process_alt_operands): Check hard reg subreg |
| mode by hard_regno_mode_ok. |
| (curr_insn_transform): Always subsitute equivalence for hard reg |
| subreg. |
| |
| 2026-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124555 |
| * match.pd ((A - B) >=/> 0 ? (A - B) : (B - A) -> abs (A - B)): |
| Guard the vector case with target_supports_op_p checks. |
| ((A - B) <=/< 0 ? (A - B) : (B - A) -> -abs (A - B)): Likewise. |
| ((type)A >=/> 0 ? A : -A -> abs (A)): Likewise. |
| ((type)A <=/< 0 ? A : -A -> -abs (A)): Likewise. |
| |
| 2026-03-18 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * Makefile.in (all.fda): Add `--print-autofdo-gcov-version` to |
| profile_merger invocation. |
| * auto-profile.cc (AUTO_PROFILE_VERSION): Move from here ... |
| * auto-profile.h (AUTO_PROFILE_VERSION): ... to here. |
| * common.opt: Add -print-autofdo-gcov-version and |
| --print-autofdo-gcov-version. |
| * doc/invoke.texi: Document the options. |
| * gcc.cc: Add include for auto-profile.h. |
| (driver_handle_option): Add OPT_print_autofdo_gcov_version. |
| (driver::maybe_print_and_exit): Handle the option. |
| |
| 2026-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/124552 |
| * function.cc (free_after_compilation): Free the copyid |
| allocator. |
| |
| 2026-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/124547 |
| * configure.ac (--with-gnu-ld): Set gnu_ld_flag= instead of |
| gnu_ld_flag=no if not explicitly specified. |
| (--with-gnu-as): Similarly for gas_flag. |
| (DEFAULT_ASSEMBLER): Use wording without GNU as whenever gas_flag |
| is not yes rather than when it is no. |
| * configure: Regenerate. |
| |
| 2026-03-18 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (fpost-ipa-mem-report): Fix typo. |
| |
| 2026-03-18 Richard Biener <rguenther@suse.de> |
| |
| * ipa-cp.cc (gather_edges_for_value): Return an auto_vec. |
| (decide_about_value): Simplify, fixing leak of callers. |
| |
| 2026-03-18 Prachi Godbole <pgodbole@nvidia.com> |
| |
| PR target/123749 |
| * ipa-locality-cloning.cc (partition_callchain): Start new partition |
| if no. of insns exceeds size and if there are nodes to process. |
| |
| 2026-03-18 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/t-rtems: Add leon5 multilibs. |
| |
| 2026-03-17 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sve2.md (@aarch64_pred_revd<mode>): |
| Remove movprfx alternative. |
| (@cond_revd<mode>): Likewise. |
| |
| 2026-03-17 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR rtl-optimization/124476 |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::process_store_forwarding): Replace |
| bitmap_all_bits_in_range_p with bitmap_any_bit_in_range_p and |
| return false on partial overlap. Remove redundant-store vectors |
| and their associated removal, dump, and deletion logic. |
| |
| 2026-03-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_analyze_slp): Release BST map when |
| returning. |
| |
| 2026-03-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): |
| Initialize loop_iv_cond given it's no longer always |
| initialized ... |
| (vect_create_loop_vinfo): ... here. Fix formatting. |
| |
| 2026-03-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122380 |
| * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare. |
| (vn_reference_compute_hash): Likewise. |
| (vn_reference_eq): Add parameter indicating lexical equivalence, |
| defaulted to false. |
| * tree-ssa-sccvn.cc (vn_reference_eq): Likewise. |
| (print_vn_reference_ops): Print alias type and alignment. |
| (vn_reference_compute_hash): Export. |
| (copy_reference_ops_from_ref): Likewise. |
| * tree-ssa-pre.cc (pre_expr_d::equal): Use lexical equivalence. |
| (get_or_alloc_expr_for_reference): Also get value-id, upon |
| zero assign a new value-id if the expression is unknown. |
| (expr_cmp): New helper. |
| (prefer): Likewise. |
| (pre_expr_DFS): Get expression exclusion bitmap and honor it. |
| (sorted_array_from_bitmap_set): If done for insertion, do limited |
| canonexpr() via pairwise prefer on expression pairs with the same |
| value, populating an exclution bitmap. |
| (phi_translate_1): Do not use the VN hashtable expressions |
| or insert there. Instead maintain a PRE view of expressions. |
| (clean): Adjust. |
| (do_hoist_insertion): Likewise. |
| (insert): Likewise. |
| (compute_avail): Use gimple_could_trap_p_1 |
| on the original stmt rather than vn_reference_may_trap on |
| the VN leader. Use the original stmt operands for the PRE |
| view of reference expressions, only use the value number from the VN |
| tables. Remove no longer effective workarounds for semantically |
| different references with same value. |
| (fini_pre): Release operand vectors for PRE IL reference |
| expressions. |
| |
| 2026-03-17 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/i386/i386-features.cc (make_resolver_func): Use |
| symtab->change_decl_assembler_name instead of |
| SET_DECL_ASSEMBLER_NAME to properly update the symbol table. |
| |
| 2026-03-16 Jose E. Marchesi <jemarch@gnu.org> |
| |
| * doc/install.texi (Configuration): Fix copy pasto |
| --enable-objc-gc to --enable-algol68-gc. |
| |
| 2026-03-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124528 |
| * tree-scalar-evolution.cc (scev_dfs::add_to_evolution): |
| Perform the negation in an unsigned type if we cannot make |
| sure it will not cause UB. |
| |
| 2026-03-16 Kito Cheng <kito.cheng@sifive.com> |
| |
| * doc/invoke.texi: Add experimental warning for RISC-V |
| big-endian support. |
| |
| 2026-03-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc |
| (constantsynth_method_lshr_mi12b): New. |
| (constantsynth_methods): Add constantsynth_method_lshr_mi12b. |
| |
| 2026-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/124508 |
| * config/loongarch/genopts/gen-evolution.awk: Rename copyright_header |
| routine so that update-copyright.py isn't upset about it. |
| |
| 2026-03-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/124454 |
| * regcprop.cc (pass_cprop_hardreg::execute): If something |
| changed and non-call exceptions is on, call purge_all_dead_edges |
| and cleanup_cfg. |
| |
| 2026-03-13 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/117182 |
| * lra-constraints.cc (curr_insn_transform): Don't change an output |
| operand by constant or invariant equivalence. |
| |
| 2026-03-13 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.cc (TARGET_C_BITINT_TYPE_INFO): New Macro. |
| (arm_return_in_memory): Return true for any _BitInt(N) where N > 64. |
| (arm_needs_doubleword_align): Return true for any _BitInt(N) where N > 32. |
| (arm_bitint_type_info): New. |
| * config/arm/arm-protos.h (arm_bitint_type_info): New declaration. |
| |
| 2026-03-13 Saurabh Jha <saurabh.jha@arm.com> |
| |
| PR target/122953 |
| * config/aarch64/aarch64-c.cc |
| (TARGET_AARCH64_MS_ABI): Explicitly set it to 0 if not on mingw. |
| (aarch64_define_unconditional_macros): Remove __ARM_PCS_AAPCS64 |
| from here. |
| (aarch64_update_cpp_builtins): Define __ARM_PCS_AAPCS64 if not |
| on Windows ABI. |
| --- |
| Hey, |
| Regression tested on aarch64-linux-gnu and found no regressions. |
| Built for arch64-w64-mingw32, ran target dependent tests, and |
| found no regressions. |
| Ok for master? |
| Thanks, |
| Saurabh |
| |
| 2026-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-profile.cc (struct conds_ctx): Formatting fixes. |
| Rename B1, B2, G1, G2 and G3 members to b1, b2, g1, g2 and g3. |
| Adjust all uses. |
| (topological_cmp, topological_src_cmp, index_of, single_p, |
| single_edge, contract_edge_up): Formatting fixes. |
| (struct outcomes): Likewise. |
| (conditional_succs, condition_index, condition_uid, |
| masking_vectors, emit_assign, emit_bitwise_op): Likewise. |
| (make_top_index_visit, make_top_index): Likewise. Rename |
| L argument to l. |
| (paths_between): Formatting fixes. |
| (struct condcov): Likewise. |
| (cov_length, cov_blocks, cov_masks, cov_maps, cov_free): Likewise. |
| (find_conditions): Likewise. Don't start warning_at message with |
| uppercase letter. |
| (struct counters): Formatting fixes. |
| (find_counters, resolve_counter, resolve_counters, |
| instrument_decisions): Likewise. |
| (init_ic_make_global_vars): Comment formatting fixes. |
| (gimple_init_gcov_profiler): Formatting fixes. |
| |
| 2026-03-13 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR ipa/124462 |
| * tree-profile.cc (masking_vectors): Skip blocks with less than |
| 2 non-complex incoming edges. |
| |
| 2026-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (constantsynth_pass1): |
| Change the comparison between src and SET_SRC(pat) to be performed |
| using rtx_equal_p rather than between references (pointer values) |
| directly, and adjust the destination of changes in validate_change |
| to eliminate the need to call gen_rtx_SET. |
| (constantsynth_pass2): |
| Fill in missing spacing in one place and changes dump file output |
| slightly. |
| |
| 2026-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (xtensa_split_operand_pair) |
| Move the common code from the split part of movd[if]_internal |
| MD patterns into this function, since this function is only |
| called from the split part of that patterns. |
| Also, during non-debug optimization, re-register new literal |
| pool entries with the split values themselves instead of |
| splitting the memory reference of the source numeric constant |
| placed in the pool. |
| (split_DI_SF_DF_const): |
| Rename to convert_SF_const and remove the split function of |
| D[IF]mode constant assignment. |
| (do_largeconst2): |
| Change the call from split_DI_SF_DF_const to convert_SF_const. |
| * config/xtensa/xtensa.md (movdi_internal, movdf_internal): |
| Reduce their split parts to just a call to xtensa_split_operand_pair. |
| |
| 2026-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (FPreg_neg_scaled_simm12b_1): |
| Change the test to determine whether REAL_VALUE_TYPE is a non- |
| zero finite value to whether it is normal. |
| (FPreg_neg_scaled_simm12b): |
| Place the call to FPreg_neg_scaled_simm12b_1 last in the |
| expression to improve performance, and change the dump file |
| output slightly. |
| |
| 2026-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa-passes.def (pass_xtensa_largeconst): |
| Rename to pass_xtensa_largeconst1. |
| (pass_xtensa_largeconst2): New target-specific pass. |
| * config/xtensa/xtensa-protos.h (make_pass_xtensa_largeconst): |
| Rename to make_pass_xtensa_largeconst1. |
| (make_pass_xtensa_largeconst2): New function prototype. |
| * config/xtensa/xtensa.cc (litpool_set_src_1): |
| Change to process large numeric constant assignments to DImode |
| as well as [SH]Imode. |
| (do_largeconst): |
| Rename it to do_largeconst1 and leave only the mandatory insn |
| transformation process. |
| (do_largeconst2): New function that inherits the optional insn |
| transformation processes from the old do_largeconst. |
| (rest_of_handle_largeconst): |
| Rename to rest_of_handle_largeconst1 and change to call |
| do_largeconst1. |
| (rest_of_handle_largeconst2): New function that calls |
| do_largeconst2. |
| (pass_data_xtensa_largeconst) |
| Rename to pass_data_xtensa_largeconst1. |
| (pass_xtensa_largeconst): |
| Rename to pass_xtensa_largeconst1 and change to call |
| rest_of_handle_largeconst1. |
| (pass_data_xtensa_largeconst2): New opt_pass data. |
| (pass_xtensa_largeconst2): |
| New rtl_opt_pass that runs rest_of_handle_largeconst2 when non- |
| debug optimizations are enabled. |
| (make_pass_xtensa_largeconst): |
| Rename to make_pass_xtensa_largeconst1. |
| (make_pass_xtensa_largeconst2): New function definition. |
| |
| 2026-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124461 |
| * config/i386/i386.md (movrs<mode>): Use <imodesuffix> only for |
| -masm=att, not for -masm=intel. |
| |
| 2026-03-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123822 |
| * simplify-rtx.cc (simplify_context::simplify_subreg): Check the |
| mode of the part to be non-VOIDmode before calling gen_rtx_SUBREG. |
| |
| 2026-03-12 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/124452 |
| * lra-constraints.cc (curr_insn_transform): Move return on the |
| postponed insn before any reload generation. |
| |
| 2026-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| Revert: |
| 2026-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into |
| AC_ARG_WITH(gnu-ld). |
| (gcc_cv_ld): Set before gnu_ld_flag. |
| (gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). |
| (gcc_cv_as): Set before gas_flag. |
| * configure: Regenerate. |
| |
| 2026-03-12 Martin Jambor <mjambor@suse.cz> |
| |
| PR objc/124260 |
| * ipa-prop.cc (ipa_analyze_var_static_initializer): Skip a constructor |
| entry if its index is NULL. |
| |
| 2026-03-12 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/124406 |
| * ipa-pure-const.cc (skip_function_for_local_pure_const): |
| Do not analyze interposable functions when LTO is enabled. |
| |
| 2026-03-12 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/122925 |
| PR target/119979 |
| * config/sh/sh.cc (TARGET_PROMOTE_PROTOTYPES): Removed. |
| |
| 2026-03-12 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * fold-mem-offsets.cc (do_analysis): Revise comment. |
| |
| 2026-03-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/120030 |
| * symtab.cc (symtab_node::set_init_priority): Better |
| handle the case of setting the priority back to default. |
| (cgraph_node::set_fini_priority): Likewise. |
| |
| 2026-03-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * doc/extend.texi (constructor/destructor): Add documentation |
| about multiple attributes here. |
| |
| 2026-03-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * doc/extend.texi (constructor/destructor): Document |
| the priority when none is supplied. |
| |
| 2026-03-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/124409 |
| * doc/install.texi: Increment the required binutils for |
| riscv to 2.40. |
| |
| 2026-03-12 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/124397 |
| * diagnostic.h (emitting_diagnostic_p): New. |
| * diagnostics/context.h (context::emitting_diagnostic_p): New. |
| |
| 2026-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124436 |
| * genautomata.cc (output_dfa_insn_code_func): Use |
| MIN (INT_MAX, 2U * uid) instead of 2 * uid in dfa_insn_code_enlarge. |
| |
| 2026-03-11 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124407 |
| * config/i386/i386-features.cc (ix86_place_single_vector_set): |
| Handle non-int load with integer constant. |
| (ix86_broadcast_inner): Convert const0_rtx to non-int mode. |
| |
| 2026-03-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/124435 |
| * expr.cc (store_field_updates_msb_p): Use GET_MODE_BITSIZE |
| instead of GET_MODE_SIZE. Handle the two endiannesses separately. |
| |
| 2026-03-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| Revert: |
| 2026-02-27 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/90036 |
| * tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always |
| record the new hash table entry. |
| |
| 2026-03-11 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| Revert: |
| 2026-02-28 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/90036 |
| * tree-ssa-dom.cc (back_propagate_equivalences): Accept new |
| argument for available expression stack. Lookup equivalences |
| in the expression hash table too. If an expression hash a |
| known constant value, record it and recurse. |
| (record_temporary_equivalences): Back propagate for a subset of |
| edge equivalences. |
| |
| 2026-03-11 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/123271 |
| * config/arm/arm.md (subvsi3_intmin): Renamed to ... |
| (sub_cmpVsi3_intmin): ... this. |
| (subvsi3): Renamed to ... |
| (sub_cmpVsi3): ... this. |
| (subvsi3_imm1): Renamed to ... |
| (sub_cmpVsi3_imm1): ... this. |
| (usubvsi3_borrow): Renamed to ... |
| (usub_cmpVsi3_borrow): ... this. |
| (usubvsi3_borrow_imm): Renamed to ... |
| (usub_cmpVsi3_borrow_imm): ... this. |
| (subvsi3_borrow): Renamed to ... |
| (sub_cmpVsi3_borrow): ... this. |
| (subvsi3_borrow_imm): Renamed to ... |
| (sub_cmpVsi3_borrow_imm): ... this. |
| |
| 2026-03-11 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_addr_space_convert): Use |
| SHARED_BASE_REG to find flat address space base of LDS. |
| |
| 2026-03-11 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| PR target/124044 |
| * config/gcn/gcn.cc (gcn_addr_space_resolve_default): New |
| function. Converts from ADDR_SPACE_DEFAULT to |
| DEFAULT_ADDR_SPACE. |
| (gcn_addr_space_convert): Resolve from_type and to_type address |
| spaces. |
| |
| 2026-03-11 Arsen Arsenović <aarsenovic@baylibre.com> |
| |
| * config/gcn/gcn.cc (gcn_regno_reg_class): Handle |
| MEMORY_APERTURE_REGS. |
| (gcn_hard_regno_rename_ok): Return false for memory aperture |
| regs. |
| (gcn_memory_move_cost): Handle memory aperture regs the same as |
| general registers. |
| (gcn_hard_regno_nregs): Handle MEMORY_APERTURE_REGS. |
| * config/gcn/gcn.h (SHARED_BASE_REG): Define. |
| (SHARED_LIMT_REG): Ditto. |
| (PRIVATE_BASE_REG): Ditto. |
| (PRIVATE_LIMT_REG): Ditto. |
| (MEMORY_APERTURE_REG_P): New macro. Evaluates to non-zero if |
| parameter is one of the above registers. |
| (SSRC_REGNO_P): Also evaluate to non-zero for aperture regs, as |
| they can be sources to scalar instructions. |
| (enum reg_class): New class: MEMORY_APERTURE_REGS. |
| (REG_CLASS_NAMES): Provide name for that class. |
| (MEMORY_APERTURE_REGS_MASK): New helper macro. Value of |
| NAMED_REG_MASK2 for each of the memory aperture regs. |
| (REG_CLASS_CONTENTS): Add the above registers to |
| MEMORY_APERTURE_REGS, SGPR_VOP_SRC_REGS, and SGPR_SRC_REGS. |
| |
| 2026-03-11 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * fold-mem-offsets.cc (do_check_validity): fix wrong mode |
| and rename arguments to avoid future confusion |
| |
| 2026-03-10 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/riscv/riscv.cc (riscv_check_target_clone_version): |
| Fix TARGET_CHECK_TARGET_CLONE_VERSION implementation. |
| |
| 2026-03-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vect_get_datarefs_in_loop): Add function |
| level comment. |
| (vect_analyze_loop_2): Fix comment. |
| |
| 2026-03-10 Jan Hubicka <jh@suse.cz> |
| Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/120987 |
| * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask |
| off non const/pure/novops related flags when combining of outer |
| functions. |
| |
| 2026-03-09 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR translation/124422 |
| * config/loongarch/loongarch-target-attr.cc |
| (loongarch_parse_fmv_features): Fix spelling in diagnostics. |
| * params.opt (max-devirt-targets): Fix typo in description. |
| |
| 2026-03-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/124291 |
| * ipa-cp.cc (ipcp_val_replacement_ok_p): Allow more precise |
| contexts that what the clone was originally intended for. |
| |
| 2026-03-09 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| PR gcov-profile/124075 |
| * config/aarch64/gcc-auto-profile: Add "-o perf.data" to perf |
| record invocation. |
| * config/i386/gcc-auto-profile: Likewise. |
| |
| 2026-03-09 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| PR gcov-profile/123923 |
| * config/aarch64/gcc-auto-profile: Add --inherit to perf record flags. |
| * config/i386/gcc-auto-profile: Likewise. |
| |
| 2026-03-09 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/118608 |
| * rtlanal.cc (truncated_to_mode): Revert a change made on 2026-02-03. |
| * config/mips/mips.md (*extenddi_truncate<mode>): Likewise. |
| |
| 2026-03-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (movdi_internal, movdf_internal, *btrue, |
| *ubtrue, movsicc_internal0, movsicc_internal1, movsfcc_internal0, |
| movsfcc_internal1): |
| Rewrite in compact syntax. |
| |
| 2026-03-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/124403 |
| * config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix formating |
| of the diagnostic. |
| |
| 2026-03-07 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR driver/69367 |
| PR driver/69849 |
| * Makefile.in (TEXI_GCCINT_FILES): Add specs.texi. |
| * doc/gccint.texi: Include it. |
| * doc/install.texi: Fix cross-references. |
| * doc/invoke.texi: Likewise. |
| (Option Summary): Reclassify -specs/--specs as a developer option. |
| (Overall Options): Move -specs= documentation to... |
| (Developer Options): ...here. |
| (Spec Files): Move entire section to.... |
| * doc/specs.texi: ....new file. |
| * common.opt.urls: Regenerated. |
| |
| 2026-03-07 Jørgen Kvalsvik <j@lambda.is> |
| |
| * tree-profile.cc (struct conds_ctx): Add edges. |
| (topological_src_cmp): New function. |
| (masking_vectors): New search strategy. |
| |
| 2026-03-07 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR rtl-optimization/121649 |
| * cse.cc (find_sets_in_insn): Only use non-reg vec_select |
| simplifications. |
| |
| 2026-03-06 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/124126 |
| * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types): Copy |
| the array type before setting the mode. |
| |
| 2026-03-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124135 |
| * tree-inline.cc (expand_call_inline): If both gimple_call_lhs (stmt) |
| and use_retvar aren't gimple regs but have gimple reg type, use |
| separate load of use_retva into SSA_NAME and then store of it |
| into gimple_call_lhs (stmt). |
| |
| 2026-03-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/124358 |
| * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): Simplify |
| into (ptr) x p+ (y + z) instead. |
| |
| 2026-03-05 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| PR tree-optimization/124037 |
| * tree-vect-stmts.cc (get_load_store_type): Fix |
| alignment_support_scheme categorization for early |
| break VMAT_ELEMENTWISE accesses. |
| |
| 2026-03-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.cc (vectorizable_live_operation): Fix typo. |
| |
| 2026-03-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/98064 |
| * tree-vect-loop.cc (vectorizable_live_operation): Do |
| not restrict replacing uses in a LC PHI. |
| |
| 2026-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.md (swap<mode>): Swap operand order for |
| -masm=intel. |
| |
| 2026-03-05 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/123807 |
| PR middle-end/124250 |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vector_init_same): Revert r16-7163 change. |
| |
| 2026-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124349 |
| * config/i386/sse.md (iptrssebvec_2): New define_mode_attr. |
| (cvthf82ph<mode><mask_name>): Use it for -masm=intel input |
| operand. |
| |
| 2026-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124367 |
| * config/i386/sse.md (*andnot<mode>3): Use 0x44 rather than $0x44 |
| for -masm=intel. |
| |
| 2026-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124366 |
| * config/i386/i386.md (@wrss<mode>, @wruss<mode>): Swap operand |
| order for -masm=intel. |
| |
| 2026-03-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/119568 |
| * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Reject different |
| mode classes. |
| |
| 2026-03-04 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR rtl-optimization/124041 |
| * lra-constraints.cc (curr_insn_transform): Check if hardreg is |
| valid in subreg context. |
| |
| 2026-03-04 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| PR rtl-optimization/124351 |
| * avoid-store-forwarding.cc (process_store_forwarding): Add |
| bitmap_clear after allocating forwarded_bytes. |
| |
| 2026-03-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124341 |
| * config/i386/sse.md (vcvt<convertfp8_pack><mode><mask_name>): Use |
| <mask_operand3> rather than <mask_operand2> for -masm=intel. |
| |
| 2026-03-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124349 |
| * config/i386/sse.md (avx10_2_comisbf16_v8bf): Use %w1 instead of %1 |
| for -masm=intel. |
| |
| 2026-03-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124165 |
| * config/i386/i386-protos.h (symbolic_reference_mentioned_p): |
| Change the argument type from rtx to const_rtx. |
| * config/i386/i386.cc (symbolic_reference_mentioned_p): Likewise. |
| (ix86_access_stack_p): Add 2 auto_bitmap[] arguments. Cache |
| the register BB domination result. |
| (ix86_symbolic_const_load_p_1): New. |
| (ix86_symbolic_const_load_p): Likewise. |
| (ix86_find_max_used_stack_alignment): If there is no symbolic |
| constant load into the register, don't call ix86_access_stack_p. |
| |
| 2026-03-03 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/115042 |
| * lra-int.h (lra_postponed_insns): New. |
| * lra.cc (lra_set_insn_deleted, lra_asm_insn_error): Clear |
| postponed insn flag. |
| (lra_process_new_insns): Propagate postponed insn flag for asm |
| gotos. |
| (lra_postponed_insns): New. |
| (lra): Initialize lra_postponed_insns. Push postponed insns on |
| the stack. |
| * lra-constraints.cc (postpone_insns): New function. |
| (curr_insn_transform): Use it to postpone processing reload insn |
| constraints. Skip processing postponed insns. |
| |
| 2026-03-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/45273 |
| * predict.cc (combine_predictions_for_insn): Use int64_t |
| math instead of double. |
| |
| 2026-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124336 |
| * config/i386/i386.cc (output_adjust_stack_and_probe): Use |
| or{b} rather than or%z0 and BYTE PTR rather than DWORD PTR. |
| (output_probe_stack_range): Likewise. |
| * config/i386/i386.md (probe_stack): Pass just 2 arguments |
| to gen_probe_stack_1, first adjust_address to QImode, second |
| const0_rtx. |
| (@probe_stack_1_<mode>): Remove. |
| (probe_stack_1): New define_insn. |
| |
| 2026-03-03 Jonathan Wakely <jwakely@redhat.com> |
| |
| * fold-const.cc: Fix "Conveinece" typo in comment. |
| |
| 2026-03-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.cc (vect_make_slp_decision): Do not call |
| vect_mark_slp_stmts. |
| * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): |
| We are always doing SLP. |
| (vect_supportable_dr_alignment): Likewise. |
| * tree-vect-loop.cc (vect_analyze_loop_2): No need to reset |
| STMT_SLP_TYPE. |
| |
| 2026-03-03 Jonathan Yong <10walls@gmail.com> |
| |
| * Makefile.in: the libgdiagnostics shared object for mingw |
| should be based on host name, not target name. |
| |
| 2026-03-03 Richard Sandiford <rdsandiford@googlemail.com> |
| Artemiy Volkov <artemiy.volkov@arm.com> |
| |
| PR rtl-optimization/123786 |
| * rtl-ssa/functions.h (function_info::live_out_value): Delete. |
| (function_info::create_degenerate_phi): New overload. |
| * rtl-ssa/blocks.cc (all_uses_are_live_out_uses): Delete. |
| (function_info::live_out_value): Likewise. |
| (function_info::replace_phi): Keep live-out uses if they are followed |
| by a definition in the same EBB. |
| (function_info::create_degenerate_phi): New overload, extracted |
| from create_reg_use. |
| (function_info::add_phi_nodes): Ensure that there is a phi for |
| every live input that is redefined by a second or subsequent |
| block in the EBB. Record that such phis need live-out uses. |
| (function_info::record_block_live_out): Use look_through_degenerate_phi |
| rather than live_out_value when setting phi inputs. Remove use of |
| live_out_value for live-out uses. Inline the old handling of |
| bb_mem_live_out. |
| (function_info::start_block): Move append_bb call to... |
| (function_info::create_ebbs): ...here. |
| * rtl-ssa/insns.cc (function_info::create_reg_use): Use the new |
| create_degenerate_phi overload. |
| |
| 2026-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124315 |
| * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask3<round_name>, |
| avx512f_vmfmsub_<mode>_mask3<round_name>, |
| avx512f_vmfnmadd_<mode>_mask3<round_name>, |
| avx512f_vmfnmsub_<mode>_mask3<round_name>): Use %<iptr>1 instead of |
| %<iptr>3 in -masm=intel syntax. |
| |
| 2026-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124335 |
| * config/i386/sse.md (*avx512f_load<mode>_mask): Use %{%3%} instead of |
| %{3%} for -masm=intel syntax. |
| |
| 2026-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (avx512fp16_mov<mode>): Rename pattern to... |
| (*avx512fp16_mov<mode>): ... this. |
| |
| 2026-03-02 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/102397 |
| * doc/extend.texi (Attributes): Explicitly say that all attributes |
| work in both syntaxes and examples may show either form. |
| (Common Attributes): Convert some examples to use the new syntax. |
| |
| 2026-03-02 Filip Kastl <fkastl@suse.cz> |
| |
| PR target/123926 |
| * config/sparc/sparc.h (HAVE_AS_TLS): Default to 0. |
| |
| 2026-03-02 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/124167 |
| * attribs.cc (make_dispatcher_decl): Change node->definition |
| to inherit from the node its called on. |
| * ipa.cc (remote_unreachable_nodes): Move FMV logic out of |
| (!in_boundary_p) if block. |
| |
| 2026-03-02 Cupertino Miranda <cupertino.miranda@oracle.com> |
| |
| PR target/113453 |
| * config/bpf/bpf-protos.h (bpf_output_call): Change prototype. |
| * config/bpf/bpf.cc (bpf_output_call): Change to adapt operands |
| and return |
| the instruction template instead of immediately emit asm and |
| not allow proper final expected execution flow. |
| (bpf_output_line_info): Add function to introduce line info |
| entries in respective structures |
| (bpf_asm_out_unwind_emit): Add function as hook to |
| TARGET_ASM_UNWIND_EMIT. This hook is called before any |
| instruction is emitted. |
| * config/bpf/bpf.md: Change calls to bpf_output_call. |
| * config/bpf/btfext-out.cc (struct btf_ext_lineinfo): Add fields |
| to struct. |
| (bpf_create_lineinfo, btf_add_line_info_for): Add support |
| function to insert line_info data in respective structures. |
| (output_btfext_line_info): Function to emit line_info data in |
| .BTF.ext section. |
| (btf_ext_output): Call output_btfext_line_info. |
| * config/bpf/btfext-out.h: Add prototype for |
| btf_add_line_info_for. |
| |
| 2026-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124294 |
| * config/i386/sse.md (avx512fp16_mov<mode>): Fix ordering of operands |
| for -masm=intel for the avx10_2 alternative. Fix up indentation in |
| the insn condition. |
| (vec_set<mode>_0): Fix comment typo, higer -> higher. |
| |
| 2026-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/57261 |
| * configure.ac (gcc_cv_ld_as_needed) <i?86-*-solaris2* | |
| x86_64-*-solaris2*>: Don't disable. |
| * configure: Regenerate. |
| |
| 2026-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (solaris_ld): New check. |
| Test solaris_ld instead of gnu_ld_flag. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/sol2.h: Switch to HAVE_SOLARIS_LD. |
| * config/sol2.h: Likewise. |
| * config/sparc/sol2.h: Likewise. |
| * config/sparc/sparc.md: Likewise. |
| |
| 2026-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (solaris_as): New check. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/i386.cc: Switch to HAVE_SOLARIS_AS. |
| * config/i386/sol2.h: Likewise. |
| * config/sol2.h: Likewise. |
| * config/sparc/sol2.h: Likewise. |
| * config/sparc/sparc.cc: Likewise. |
| * config/sparc/sparc.md: Likewise. |
| |
| 2026-02-28 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/90036 |
| * tree-ssa-dom.cc (back_propagate_equivalences): Accept new |
| argument for available expression stack. Lookup equivalences |
| in the expression hash table too. If an expression hash a |
| known constant value, record it and recurse. |
| (record_temporary_equivalences): Back propagate for a subset of |
| edge equivalences. |
| |
| 2026-02-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR target/124094 |
| * config/aarch64/aarch64-generate-json-tuning-routines.py |
| (generate_field_code): Add "ctxt, " arg to function call when |
| operation is "parse". |
| (generate_function): Add "gcc_json_context &ctxt, " param to |
| function decl when operation is "parse". |
| * config/aarch64/aarch64-json-tunings-parser-generated.inc: |
| Regenerate, passing around a gcc_json_context &. |
| * config/aarch64/aarch64-json-tunings-parser.cc: Include |
| "json-diagnostic.h". |
| (WARNING_OPT) New macro. |
| (PARSE_INTEGER_FIELD): Add "ctxt" param and pass it around. |
| (PARSE_UNSIGNED_INTEGER_FIELD): Likewise. |
| (PARSE_BOOLEAN_FIELD): Likewise. |
| (PARSE_STRING_FIELD): Likewise. |
| (PARSE_OBJECT): Likewise. |
| (PARSE_ARRAY_FIELD): Likewise. |
| (PARSE_ENUM_FIELD): Likewise. |
| (parse_func_type): Likewise. |
| (parse_object_helper): Likewise. Use json_error rather than error. |
| (inform_about_wrong_kind_of_json_value): New. |
| (extract_string): Add "ctxt" param. Replace "warning" with a pair |
| of calls to json_warning and |
| inform_about_wrong_kind_of_json_value, tweaking wording |
| accordingly. |
| (extract_integer): Likewise. |
| (extract_unsigned_integer): Likewise. |
| (parse_enum_field): Likewise. |
| (validate_and_traverse): Replace "warning" and "error" with |
| "json_warning" and "json_error". |
| (check_version_compatibility): Use WARNING_OPT. Add |
| auto_diagnostic_group to group the error and note. |
| (aarch64_load_tuning_params_from_json_string): Add "js_filename" |
| param. Use gcc_json_context to capture location info. Use it |
| when reporting errors to get file/line/column info. Replace check |
| on root being non-null with assertion, as this is guaranteed if |
| error is non-null. Replace warning with json_warning. |
| (aarch64_load_tuning_params_from_json): Pass data_filename to |
| aarch64_load_tuning_params_from_json_string for use when reporting |
| diagnostics. |
| (selftest::test_json_integers): Add a placeholder filename. |
| (selftest::test_json_boolean): Likewise. |
| (selftest::test_json_strings): Likewise. |
| (selftest::test_json_enums): Likewise. |
| |
| 2026-02-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add json-diagnostic.o. |
| * diagnostics/client-data-hooks.h |
| (class client_data_hooks_decorator): New. |
| * diagnostics/context.cc (context::set_client_data_hooks): Return |
| the old hooks. |
| * diagnostics/context.h (context::set_client_data_hooks): Update |
| decl likewise. |
| * json-diagnostic.cc: New file. |
| * json-diagnostic.h: New file. |
| |
| 2026-02-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/aarch64/aarch64-json-tunings-parser.cc: Define |
| INCLUDE_MAP. |
| * json-parsing.cc: Likewise. |
| * json-parsing.h (class simple_location_map): New class, moved and |
| renamed from... |
| * libsarifreplay.cc (class replayer_location_map): ...here. |
| (sarif_replayer::m_json_location_map): Update for renaming of |
| class. |
| |
| 2026-02-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): |
| Add diagnostics/physical-location-maker.o. |
| * diagnostics/physical-location-maker.cc: New file, adapted from |
| material in libgdiagnostics.cc. |
| * diagnostics/physical-location-maker.h: New file, adapted from |
| material in libgdiagnostics.cc. |
| * libgdiagnostics.cc: Include |
| "diagnostics/physical-location-maker.h". |
| (diagnostic_manager::diagnostic_manager): Initialize |
| m_phys_loc_maker. |
| (diagnostic_manager::new_location_from_file_and_line): Split out |
| into physical_location_maker. |
| (diagnostic_manager::new_location_from_file_line_column): |
| Likewise. |
| (diagnostic_manager::ensure_linemap_for_file_and_line): Likewise. |
| (diagnostic_manager::m_phys_loc_maker): New field. |
| |
| 2026-02-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostics/html-sink.cc |
| (html_builder::make_element_for_diagnostic): Update for logical |
| location strings being returned as label_text rather than |
| const char *. |
| * diagnostics/logical-locations.h |
| (logical_locations::manager::get_short_name): Return label_text |
| rather than const char *. |
| (logical_locations::manager::get_name_with_scope): Likewise. |
| (logical_locations::manager::get_internal_name): Likewise. |
| * diagnostics/sarif-sink.cc |
| (sarif_builder::ensure_sarif_logical_location_for): Update for |
| logical location strings being returned as label_text rather than |
| const char *. |
| (sarif_builder::make_minimal_sarif_logical_location): Likewise. |
| * diagnostics/selftest-logical-locations.cc |
| (test_manager::get_short_name): Likewise. |
| (test_manager::get_name_with_scope): Likewise. |
| (test_manager::get_internal_name): Likewise. |
| (selftest_logical_locations_cc_tests): Likewise. |
| * diagnostics/selftest-logical-locations.h |
| (test_manager::get_short_name): Likewise. |
| (test_manager::get_name_with_scope): Likewise. |
| (test_manager::get_internal_name): Likewise. |
| * diagnostics/state-graphs-to-dot.cc |
| (state_diagram::on_node_in_table): Likewise. |
| * libgdiagnostics.cc |
| (impl_logical_location_manager::get_short_name): Likewise. |
| (impl_logical_location_manager::get_name_with_scope): Likewise. |
| (impl_logical_location_manager::get_internal_name): Likewise. |
| * tree-logical-location.cc |
| (tree_logical_location_manager::get_short_name): Likewise. |
| (tree_logical_location_manager::get_name_with_scope): Likewise. |
| (tree_logical_location_manager::get_internal_name): Likewise. |
| * tree-logical-location.h |
| (tree_logical_location_manager::get_short_name): Likewise. |
| (tree_logical_location_manager::get_name_with_scope): Likewise. |
| (tree_logical_location_manager::get_internal_name): Likewise. |
| |
| 2026-02-28 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c/87591 |
| * doc/extend.texi (Attributes): Document __attribute keyword. |
| (Attribute Syntax): Here too. |
| |
| 2026-02-28 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Attributes): Rename the node "GNU Attribute |
| Syntax" node back to "Attribute Syntax"; fix references. Add |
| @anchor for sections recently merged away at the new location of |
| the material they used to contain. |
| |
| 2026-02-28 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| PR middle-end/113436 |
| * omp-low.cc (lower_omp_target): Merge branches for allocating memory |
| for private clauses. Add handling for references when allocator |
| clause not specified. |
| |
| 2026-02-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/124142 |
| * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): |
| For early break require masking when operation can trap. |
| |
| 2026-02-27 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/90036 |
| * tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always |
| record the new hash table entry. |
| |
| 2026-02-27 Xi Ruoyao <xry111@xry111.site> |
| |
| PR middle-end/124280 |
| * optabs.cc (expand_vector_broadcast): Allow broadcasting QImode |
| to BImode vector. |
| |
| 2026-02-27 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2026-02-26 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/115042 |
| * lra-int.h (lra_constraint_insn_stack_clear): New prototype. |
| * lra.cc (lra_constraint_insn_stack2): New vector. |
| (lra_constraint_insn_stack_clear): New function. |
| (lra): Initialize/finalize lra_constraint_insn_stack2. |
| * lra-constraints.cc (lra_constraints): Use |
| lra_constraint_insn_stack_clear to postpone processing new reload |
| insns. |
| |
| 2026-02-27 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123229 |
| * ipa-prop.cc (update_indirect_edges_after_inlining): Reset parameter |
| index associated with an indirect edge if the inlined edge does not |
| have any jump functions. |
| |
| 2026-02-27 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-json-tunings-parser.cc (parse_object_helper): |
| Zero-initialize objects that are NULL in the base tunings, if provided |
| in JSON tunings. |
| * config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add default |
| constructor. |
| (struct aarch64_simd_vec_issue_info): Likewise. |
| (struct aarch64_sve_vec_issue_info): Likewise. |
| |
| 2026-02-27 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123629 |
| * ipa-polymorphic-call.cc |
| (ipa_polymorphic_call_context::meet_with): When an outer context is |
| NULL, call make_speculative on the other one. |
| |
| 2026-02-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/124162 |
| * config/aarch64/aarch64-sve.md (cond_vec_cbranch_any, |
| cond_vec_cbranch_all): Drop partial vectors support. |
| |
| 2026-02-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/117935 |
| * tree-ssa-phiopt.cc (contains_hot_cold_predict): New function. |
| (match_simplify_replacement): Return early if early_p and one of |
| the middle bb(s) have a hot/cold predict statement. |
| |
| 2026-02-26 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/115042 |
| * lra-int.h (lra_constraint_insn_stack_clear): New prototype. |
| * lra.cc (lra_constraint_insn_stack2): New vector. |
| (lra_constraint_insn_stack_clear): New function. |
| (lra): Initialize/finalize lra_constraint_insn_stack2. |
| * lra-constraints.cc (lra_constraints): Use |
| lra_constraint_insn_stack_clear to postpone processing new reload |
| insns. |
| |
| 2026-02-26 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/122448 |
| * config/riscv/riscv-vsetvl.cc (compute_reaching_defintion): |
| Rename... |
| (compute_reaching_definition): ...To this. |
| (pre_vsetvl::compute_vsetvl_def_data): Compute reaching |
| definitions for vsetvl VL -> vsetvl AVL. |
| (pre_vsetvl::compute_transparent): Include VL uses. |
| (pre_vsetvl::fuse_local_vsetvl_info): Initialize m_reg_use_loc. |
| (pre_vsetvl::earliest_fuse_vsetvl_info): Don't hoist if any |
| successor would use VL. |
| |
| 2026-02-26 Xi Ruoyao <xry111@xry111.site> |
| |
| PR middle-end/124250 |
| PR target/123807 |
| * optabs.cc (expand_vector_broadcast): Add a checking assert to |
| verify the precondition about the input modes. |
| (expand_binop): Extend the shift amount if it's narrower than |
| the element of the shifted vector. |
| |
| 2026-02-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/124194 |
| * config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): Also return |
| CONSTM1_RTX for the case cmp_imm == 7 (predicate TRUE). |
| |
| 2026-02-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR c/119651 |
| PR c/123472 |
| * fold-const.cc (tree_nonzero_bits): Rename the original as a |
| static function taking an additional precision parameter. Make |
| this implementation robust to error_mark_node. Preserve the |
| original API by checking for error_operand_p before invoking the |
| static helper function. |
| |
| 2026-02-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/119979 |
| PR target/120888 |
| * targhooks.cc (default_promote_function_mode_sign_extend): New. |
| * targhooks.h (default_promote_function_mode_sign_extend): |
| Likewise. |
| * config/mcore/mcore.cc (TARGET_PROMOTE_FUNCTION_MODE): Use |
| default_promote_function_mode_sign_extend. |
| (TARGET_PROMOTE_PROTOTYPES): Removed. |
| * config/xtensa/xtensa.cc (xtensa_promote_function_mode): Removed. |
| (TARGET_PROMOTE_FUNCTION_MODE): Use |
| default_promote_function_mode_sign_extend. |
| |
| 2026-02-25 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::process_store_forwarding): Use |
| auto_sbitmap for forwarded_bytes to ensure it is freed on all |
| return paths. |
| |
| 2026-02-25 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * avoid-store-forwarding.cc |
| (store_forwarding_analyzer::update_stats): Use stats_sf_avoided |
| for the "avoided" counter. |
| |
| 2026-02-25 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * avoid-store-forwarding.cc: Move config.h before |
| avoid-store-forwarding.h; place avoid-store-forwarding.h |
| after rtl.h; remove unused cselib.h include. |
| * avoid-store-forwarding.h: Remove includes of config.h, |
| system.h, coretypes.h, backend.h, rtl.h. |
| |
| 2026-02-25 Cupertino Miranda <cupertino.miranda@oracle.com> |
| |
| PR target/120241 |
| * config/bpf/core-builtins.cc |
| (is_attr_preserve_access): Correct for pointer types. |
| (maybe_get_base_for_field_expr, core_access_index_map, |
| core_access_clean, core_is_access_index, core_mark_as_access_index): |
| Remove. |
| (make_gimple_core_safe_access_index): Remove function. |
| (struct walker_data): New struct to pass data to tree walker. |
| (callback_should_do_core_access, should_do_core_access): Add |
| function to identify expressions that should not be converted to |
| CO-RE. |
| (core_make_builtins): Add callback tree walker function to |
| convert expressions to CO-RE. |
| (callback_find_next_split_location, core_should_split_expr, |
| find_next_split_location, gimple_core_early_split_expr): Add |
| function to split expressions in CO-RE and non-CO-RE |
| expressions. |
| (execute_lower_bpf_core): Adapt to new code. |
| * config/bpf/bpf.opt: Add option Wco-re. |
| * doc/invoke.texi: Add documentation for Wco-re. |
| |
| 2026-02-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/110091 |
| * ipa-split.cc (split_function): Find the bb |
| which is used for return in the outlined function. |
| Move the clobbers that are at the end of that bb |
| to be after the new call. |
| |
| 2026-02-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/110091 |
| * ipa-split.cc (split_function): Split after |
| the clobbers/debug stmts rather than after the labels. |
| |
| 2026-02-25 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.md (spaceshipsi4): |
| New RTL generation pattern. |
| |
| 2026-02-25 Richard Biener <rguenther@suse.de> |
| |
| PR target/120234 |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| For constructor elements always look through a conversion. |
| Rewrite load and vector extraction matching to be more obvious. |
| Allow arbitrary conversions from the vector extract to elide |
| costing of a gpr<->xmm move. |
| |
| 2026-02-25 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/123285 |
| * config/aarch64/aarch64-early-ra.cc (early_ra::form_chains): Process clobbers |
| and ABI clobbers before starting to form the chain. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * Makefile.in (ATTR_URLS_HTML_DEPS): Point at new index file. |
| * attr-urls.def: Regenerated. |
| * gcc-attribute-urlifier.cc (test_attribute_urlifier): Adjust |
| URLs to match formatting in the new index. |
| * regenerate-attr-urls.py (parse_html_line_attribute_index): |
| Update pattern to match formatting in the new combined index. |
| Don't segregate entries into separate function/variable/etc |
| arrays. |
| (INDEX_REL_PATH): Point at the new index file. |
| (class TestParsingIndex): Update patterns in self-tests to match |
| the current formatting. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * doc/extend.texi (Common Attributes): Change @cindex entries for |
| attributes to @atindex. Add some additional @cindex entries. |
| (AArch64 Attributes): Likewise. |
| (AMD GCN Attributes): Likewise. |
| (ARC Attributes): Likewise. |
| (ARM Attributes): Likewise. |
| (AVR Attributes): Likewise. |
| (Blackfin Attributes): Likewise. |
| (BPF Attributes): Likewise. |
| (C-SKY Attributes): Likewise. |
| (Epiphany Attributes): Likewise. |
| (H8/300 Attributes): Likewise. |
| (IA-64 Attributes): Likewise. |
| (LoongArch Attributes): Likewise. |
| (M32C Attributes): Likewise. |
| (M32R/D Attributes): Likewise. |
| (m68k Attributes): Likewise. |
| (MicroBlaze Attributes): Likewise. |
| (Microsoft Windows Attributes): Likewise. |
| (MIPS Attributes): Likewise. |
| (MSP430 Attributes): Likewise. |
| (NDS32 Attributes): Likewise. |
| (Nvidia PTX Attributes): Likewise. |
| (PowerPC Attributes): Likewise. |
| (RISC-V Attributes): Likewise. |
| (RL78 Attributes): Likewise. |
| (RX Attributes): Likewise. |
| (S/390 Attributes): Likewise. |
| (SH Attributes): Likewise. |
| (Symbian OS Attributes): Likewise. |
| (V850 Attributes): Likewise. |
| (Visium Attributes): Likewise. |
| (x86 Attributes): Likewise. |
| (Xstormy16 Attributes): Likewise. |
| (C++ Attributes): Likewise. |
| * doc/gcc.texi: Define a new "at" index for attributes. |
| (Attribute Index): New appendix. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * doc/extend.texi (Common Attributes): Document the "naked" |
| attribute here. |
| (ARC Attributes): Delete entry for "naked". |
| (ARM Attributes): Likewise. |
| (AVR Attributes): Likewise. |
| (BPF Attributes): Likewise. |
| (C-SKY Attributes): Likewise. |
| (MCORE Attributes): Delete entire section since "naked" was |
| the only thing listed. |
| (MSP430 Attributes): Delete entry for "naked". |
| (NDS32 Attributes): Likewise. |
| (RISC-V Attributes): Likewise. |
| (RL78 Attributes): Likewise. |
| (RX Attributes): Likewise. |
| (x86 Attributes): Likewise. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * doc/extend.texi (Common Attributes): Consolidate documentation |
| for "cold" and "hot" attributes, including the C++-specific |
| behavior. |
| (C++ Attributes): Likewise, just point to the main entry. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (RISC-V Attributes): Format and index options |
| for the "target" attribute consistently with the documentation |
| for other back ends. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Common Attributes): Add LoongArch to lists of |
| targets supporting target_clones and target_version. |
| (LoongArch Attributes): Copy-edit for grammar and markup. Wrap |
| excessively long lines. Rearrange the introductory material for |
| the target attribute. Correct index entries for target attribute |
| options. |
| (Function Multiversioning): Add LoongArch to list of targets |
| supporting this feature. Fix nearby typo. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (AArch64 Attributes): Reorganize material in this |
| section, correct terminology and formatting. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/extend.texi (Attributes): General copy-editing. |
| (C++ Attributes): Likewise. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * doc/extend.texi (Attributes): Start each attribute's |
| documentation with a short paragraph describing what it applies to. |
| (C++ Attributes): Likewise. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/88472 |
| * doc/extend.texi (Attributes): Merge respective subsections of |
| Function Attributes, Variable Attributes, Type Attributes, |
| Label Attributes, Enumerator Attributes, and Statement Attributes |
| into new sections Common Attributes and Target-Specific Attributes. |
| Fix cross-references. |
| * doc/invoke.texi: Fix cross-references. |
| * doc/trouble.texi: Likewise. |
| |
| 2026-02-24 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR c++/102397 |
| * doc/extend.texi (Attributes): Rewrite and expand discussion |
| of standard vs legacy syntax, with several examples. |
| (Attribute Syntax): Rename section to... |
| (GNU Attribute Syntax): ...this. Prune discussion of standard |
| attribute syntax. Fix cross-references. |
| |
| 2026-02-24 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| * config/riscv/vector.md: Change 'X' to 'r' in _lra insns. |
| |
| 2026-02-24 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/124147 |
| * config/riscv/autovec.md: Work around fractional-LMUL modes for |
| TARGET_XTHEADVECTOR. |
| * config/riscv/riscv-protos.h (get_m1_mode): Export. |
| * config/riscv/riscv-v.cc (get_m1_mode): Allow to get a VLS m1 |
| vector. |
| |
| 2026-02-24 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR rtl-optimization/123381 |
| * lra-constraints.cc (process_alt_operands): Detect cycles in |
| three-operand moves with clobber. |
| (curr_insn_transform): Don't write back a scratch operand. |
| |
| 2026-02-24 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/121240 |
| * config/aarch64/aarch64-simd.md (mov<mode>): Expand vector constants |
| early. |
| * config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force |
| vector immediates <= 16 bytes to constdata. |
| |
| 2026-02-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123117 |
| PR target/120234 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Fix |
| sign conversion check guarding unpacking. |
| |
| 2026-02-24 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123629 |
| * ipa-cp.cc (ipcp_val_replacement_ok_p): Also verify that the |
| vector of known contexts has sufficient length. |
| |
| 2026-02-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR translation/118988 |
| * params.opt (-param=cycle-accurate-model=): Fix wording of help |
| string. |
| (-param=phiopt-factor-max-stmts-live=): Likewise. |
| |
| 2026-02-23 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * config/gcn/gcn.md (addsi3): Disparage vector alternative. |
| (addptrdi3): Reverse order of vector and scalar alternatives |
| to prefer the latter. |
| (subsi3): Disparage vector alternatives. |
| (mulsi3): Likewise. |
| (muldi3): Likewise. |
| (bitunop <expander>si2): Likewise. |
| (vec_and_scalar_com <expander>si3): Likewise. |
| (vec_and_scalar_nocom <expander>si3): Likewise. |
| (one_cmpldi2): Likewise. |
| (vec_and_scalar64_com <expander>di3): Likwise. |
| (vec_and_scalar64_nocom <expander>di3): Likwise. |
| |
| 2026-02-23 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR fortran/120505 |
| * gimplify.cc (omp_accumulate_sibling_list): When the containing struct |
| is a Fortran array descriptor, sort mapped components by offset. |
| |
| 2026-02-23 Paul-Antoine Arras <parras@baylibre.com> |
| |
| PR fortran/120505 |
| * gimplify.cc (omp_mapped_by_containing_struct): Handle Fortran array |
| descriptors. |
| (omp_build_struct_sibling_lists): Allow attach_detach bias to be |
| adjusted on non-target regions. |
| (gimplify_adjust_omp_clauses): Remove GIMPLE-only nodes. |
| * tree-pretty-print.cc (dump_omp_clause): Handle |
| OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT and OMP_CLAUSE_MAP_GIMPLE_ONLY. |
| * tree.h (OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT, |
| OMP_CLAUSE_MAP_GIMPLE_ONLY): Define. |
| |
| 2026-02-23 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_override_options_internal): |
| Remove +sme+nosve sorry, and remove SVE from nosme workaround. |
| * doc/invoke.texi: Remove SVE2 requirement from +sme. |
| |
| 2026-02-23 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Replace TARGET_SVE{2} with explicit feature flag checks. |
| * config/aarch64/aarch64.cc |
| (aarch64_adjust_generic_arch_tuning): Add SME to SVE2 check. |
| * config/aarch64/aarch64.h (TARGET_SVE): Adjust condition. |
| (TARGET_SVE2): Ditto. |
| |
| 2026-02-23 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sme.md (UNSPEC_GET_CURRENT_VG): New |
| enum value. |
| (aarch64_get_current_vg): New insn. |
| * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use |
| __arm_get_current_vg if cntd is unavailable. |
| |
| 2026-02-22 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR c/123716 |
| * tree.cc (tree_nop_conversion_p): Move sanity checks on |
| inner_type to here... |
| (tree_nop_conversion): ... from here. |
| |
| 2026-02-22 Nathaniel Shead <nathanieloshead@gmail.com> |
| |
| PR c++/120974 |
| * gcc.cc (join_spec_func): Escape special characters. |
| |
| 2026-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.cc (constantsynth_pass1): |
| Add the case where the assignment destination is a stack pointer |
| to the exclusion criteria for processing. |
| |
| 2026-02-21 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/123994 |
| * rtl-ssa/changes.cc (function_info::verify_insn_changes): Bullet |
| proof loop to not fault if we run off the end of the insn chain. |
| |
| 2026-02-21 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124147 |
| * config/riscv/riscv.cc (riscv_same_function_versions): Use nullptr_t rather |
| than UNKNOWN_LOCATION for pointer argument. |
| |
| 2026-02-20 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| PR middle-end/113436 |
| * omp-low.cc (omp_lower_target): Do not check for variable-length |
| variables in private clauses by reference when allocating memory. |
| |
| 2026-02-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124068 |
| * tree-vect-patterns.cc (target_has_vecop_for_code): Move |
| earlier, add defaulted optab_subtype parameter. |
| (vect_recog_over_widening_pattern): Check that the target |
| supports the narrowed operation before committing to the |
| pattern. |
| |
| 2026-02-20 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/122856 |
| * ipa-cp.cc (self_recursive_pass_through_p): Test jump function type first. |
| (self_recursive_ancestor_p): New function. |
| (find_scalar_values_for_callers_subset): Test also for self-recursive |
| ancestor jump functions. |
| (push_agg_values_for_index_from_edge): Likewise. |
| |
| 2026-02-20 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121103 |
| * gimple-fold.cc (gimple_fold_call): Don't simplify |
| noreturn functions. |
| * tree-ssa-dse.cc (dse_optimize_stmt): Don't handle |
| calls to noreturn functions. |
| |
| 2026-02-19 jlaw <jeffreyalaw@gmail.com> |
| |
| PR tree-optimization/124108 |
| * match.pd (reassociating XOR to expose rotations): Check |
| type_has_mode_precision_p before simplifying. |
| |
| 2026-02-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.cc (avx_vpermilp_parallel): Use IN_RANGE |
| macro. |
| |
| 2026-02-19 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/autovec-opt.md (*literal_v<ieee_fmaxmin_op>_vf_<mode>): |
| Add new pattern for vfmax/min combine to fx. |
| |
| 2026-02-18 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/116053 |
| * regcprop.cc (copyprop_hardreg_forward_1): Use delete_insn_and_edges |
| instead of delete_insn. |
| |
| 2026-02-18 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/120169 |
| * lra-int.h (lra_process_new_insns): Modify the prototype. |
| * lra.cc (lra_process_new_insns): Add arg fixup_reg_args_size with |
| implicit value. Move REG_ARGS_SIZE note if necessary. |
| * lra-constraints.cc (curr_insn_transform): Pass the new arg value. |
| |
| 2026-02-18 Richard Biener <rguenther@suse.de> |
| |
| PR target/123137 |
| * config/i386/i386-features.cc (ix86_emit_tls_call): Improve |
| local FLAGS_REG liveness calculation. |
| |
| 2026-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/124138 |
| * config/i386/i386.cc (avx_vpermilp_parallel): Verify |
| ipar[2] and ipar[3] aren't larger than 3. |
| |
| 2026-02-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124098 |
| * config/i386/i386.cc (ix86_access_stack_p): New. |
| (ix86_find_max_used_stack_alignment): Update stack alignment only |
| if stack is used. |
| |
| 2026-02-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/124136 |
| * config/i386/i386-features.cc (ix86_check_flags_reg): Don't |
| mark clobbered FLAGS_REG as live. |
| |
| 2026-02-17 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/124134 |
| * config/arm/arm.md (movsfcc): FAIL if using restricted IT |
| blocks and we lack VSEL. |
| (movdfcc): Likewise. |
| |
| 2026-02-17 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/124048 |
| * config/riscv/zicond.md (conditional AND patterns): Fix missed |
| flipping the condition's test in RTL output. |
| |
| 2026-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124130 |
| * tree-inline.cc (copy_edges_for_bb): Fixup noreturn calls |
| with abnormal edge source. |
| |
| 2026-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124132 |
| * tree-ssa-loop-split.cc (compute_new_first_bound): Fix |
| bound difference computation. |
| |
| 2026-02-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/120233 |
| * gimple-ssa-store-merging.cc (find_bswap_or_nop_2): New function. |
| (find_bswap_or_nop): Move CONSTRUCTOR handling to above function, |
| call it instead of find_bswap_or_nop_1. |
| (bswap_replace): Handle VEC_PACK_TRUNC_EXPR like CONSTRUCTOR. |
| (maybe_optimize_vector_constructor): Likewise. |
| (pass_optimize_bswap::execute): Likewise. |
| (get_status_for_store_merging): Likewise. |
| (pass_store_merging::execute): Likewise. |
| |
| 2026-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libstdc++/113450 |
| PR libstdc++/123176 |
| * config/sol2.h (INT8_TYPE): Change to signed char. |
| (INT_LEAST8_TYPE): Likewise. |
| (INT_FAST8_TYPE): Likewise. |
| |
| 2026-02-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * json.cc (pointer::token::print): Cast the value to pp_scalar |
| with (fmt_size_t). |
| |
| 2026-02-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.cc (ipa_devirt): Improve statistics for multi-target |
| devirtualization; do not simple-call devirtualize already devirtualized calls. |
| |
| 2026-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac <sparc*-*-*> (gcc_cv_as_sparc_fmaf): Remove. |
| (gcc_cv_as_sparc_sparc4): Remove. |
| (gcc_cv_as_sparc_sparc): Remove. |
| (gcc_cv_as_sparc_sparc6): Remove. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/sparc/sparc.h (AS_NIAGARA3_FLAG) Remove. Replace uses by |
| definition. |
| (AS_NIAGARA4_FLAG): Likewise. |
| (AS_NIAGARA7_FLAG): Likewise. |
| (AS_M8_FLAG): Likewise. |
| * config/sparc/sol2.h [!HAVE_AS_SPARC4]: Remove. |
| (AS_SPARC32_FLAG): Remove. |
| (AS_SPARC64_FLAG): Remove. |
| (AS_NIAGARA3_FLAG) Replace uses by definition. |
| (AS_NIAGARA4_FLAG): Likewise. |
| (AS_NIAGARA7_FLAG): Likewise. |
| (AS_M8_FLAG): Likewise. |
| * config/sparc/sparc.cc (sparc_option_override): |
| [!HAVE_AS_FMAF_HPC_VIS3]: Remove. |
| [!HAVE_AS_SPARC4]: Likewise. |
| [!HAVE_AS_SPARC5_VIS4]: Likewise. |
| [!HAVE_AS_SPARC6]: Likewise. |
| |
| 2026-02-15 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124099 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_return): Don't do anything |
| if the return is already result decl or a deference of result decl. |
| Also reject non local var decls. |
| |
| 2026-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR cobol/122839 |
| * doc/install.texi (COBOL-Specific Options): New. |
| |
| 2026-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac <sparc*-*-*> (gcc_cv_as_sparc_gotdata_op): Remove. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/sparc/sparc.md [!HAVE_AS_SPARC_GOTDATA_OP]: Remove. |
| |
| 2026-02-14 Kalvis Duckmanton <kalvisd@gmail.com> |
| |
| PR target/112400 |
| * config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE |
| where used with the insn split to. |
| (*casesi1): Likewise naked incoming operand 1. |
| |
| 2026-02-14 Maciej W. Rozycki <macro@orcam.me.uk> |
| |
| * config/vax/vax.cc (nonindexed_address_p): Move incoming RTX's |
| operand 0 access to the actual use places. |
| |
| 2026-02-14 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/124086 |
| * tree-complex.cc (extract_component): Extend the check |
| for ssa names for VCE to include invariants. |
| |
| 2026-02-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * json-parsing.cc (selftest::assert_json_pointer_eq): New. |
| (ASSERT_JSON_POINTER_EQ): New. |
| (selftest::test_parse_object): Add tests of JSON pointer. |
| (selftest::test_pointer_escaping): New test. |
| (selftest::json_parser_cc_tests): Call it. |
| * json.cc (json::pointer::token::print): New. |
| (json::value::print_pointer): New. |
| * json.h (json::pointer::token::print): New decl. |
| (json::value::print_pointer): New decl. |
| * libsarifreplay.cc: Include pretty-print.h. |
| (make_logical_location_from_jv): Use |
| json::pointer::token::print for short_name. |
| |
| 2026-02-13 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/124079 |
| * lra-constraints.cc (get_matching_reload_reg_subreg): Add new arg |
| rclass. Use another condition to use lowpart_subreg. Use lra_constraint_offset |
| to calculate the subreg offset. |
| (get_reload_reg, match_reload): Pass the new arg. |
| |
| 2026-02-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/95825 |
| * tree-ssa-forwprop.cc (optimize_agr_copyprop_return): New function. |
| (optimize_agr_copyprop): Call optimize_agr_copyprop_return |
| for return statements. |
| |
| 2026-02-13 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/124014 |
| * diagnostics/html-sink.cc (html_builder::get_logical_loc_mgr): |
| New. |
| (html_builder::m_logical_loc_mgr): Drop field. |
| (html_builder::html_builder): Drop initialization of |
| m_logical_loc_mgr. |
| (html_builder::maybe_make_state_diagram): Use get_logical_loc_mgr |
| rather than m_logical_loc_mgr. |
| (html_builder::make_element_for_diagnostic): Likewise. |
| |
| 2026-02-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/99959 |
| * tree-sra.cc (create_access_replacement): Guard DECL_NONLOCAL_FRAME |
| access. |
| |
| 2026-02-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/99959 |
| * tree-sra.cc (create_access_replacement): Always create |
| debug expressions for DECL_NONLOCAL_FRAME bases. |
| |
| 2026-02-13 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * Makefile.in (all.fda): Bump profile_merger gcov_version to 3. |
| |
| 2026-02-12 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.cc (cris_reduce_compare): Add forcing the first |
| operand to be a register, unless the second operand is 0, to scope. |
| * config/cris/cris.md ("*cstore<mode><code>4") |
| ("*cbranch<mode><code>4"): Add guards to condition, for either operand |
| to be a register unless the last operand is zero. |
| |
| 2026-02-12 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.md (BWDSF): New mode_iterator replacing SISF. |
| All callers changed. |
| ("*movhi_internal<setcc><setnz><setnzvc>"): Anonymized from |
| "<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>" to make it a |
| match-only pattern. Add conditions to guard from source and |
| destination both being memory operands. |
| ("*movstricthi_internal", "*movstrictqi_internal"): Similarly |
| for "movstricthi" and "movstrictqi". |
| ("movstrict<mode>"): Add common expander for BW, forcing one operand |
| to be a register or source being zero. |
| |
| 2026-02-12 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.md (SISF): New mode_iterator for SI and SF. |
| ("mov<mode>"): Make "movsi" a define_expand to include SFmode by |
| means of the SISF iterator and adjust to also handle SFmode. |
| ("*movsf_internal"): Anonymize "movsf"; make it a match-only pattern. |
| Add conditions to guard from source and destination both being memory |
| operands. |
| |
| 2026-02-12 Kwok Cheung Yeung <kcyeung@baylibre.com> |
| |
| PR middle-end/113436 |
| * omp-low.cc (is_variable_sized): Add extra is_ref argument. Check |
| referenced type if true. |
| (lower_omp_target): Call lower_private_allocate to generate code to |
| allocate memory for firstprivate/private clauses with allocators, and |
| insert code after dependent variables have been initialized. |
| Construct calls to free allocate memory and insert after target block. |
| Adjust decl values for clause variables. Copy value of firstprivate |
| variables to allocated memory. |
| |
| 2026-02-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/124062 |
| * ifcvt.cc (noce_try_cond_arith): Check the conditional code |
| for UNKNOWN. |
| |
| 2026-02-12 Soumya AR <soumyaa@nvidia.com> |
| |
| * config/aarch64/aarch64-json-schema.h: Include inherited members for |
| SVE vector costs. |
| * config/aarch64/aarch64-json-tunings-parser-generated.inc |
| (parse_vec_costs_sve): Regenerate. |
| * config/aarch64/aarch64-json-tunings-parser.cc |
| (aarch64_load_tuning_params_from_json_string): Clear dispatch scheduling |
| flag if dispatch_constraints is NULL. |
| * config/aarch64/aarch64-json-tunings-printer-generated.inc |
| (serialize_vec_costs_sve): Regenerate. |
| |
| 2026-02-11 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/121191 |
| * lra-constraints.cc (get_matching_reload_reg_subreg): New. |
| (get_reload_reg, match_reload): Use it. |
| |
| 2026-02-11 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/124038 |
| * tree-ssa-math-opts.cc (strip_nop_view_converts): Remove. |
| (convert_mult_to_fma): Undo stripping. |
| |
| 2026-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/124056 |
| * cfgexpand.cc (expand_asm_stmt): If after_md_seq is non-NULL, emit |
| it at the start of after_rtl_seq instead of after fallthru_label. |
| |
| 2026-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/116600 |
| PR middle-end/123386 |
| * cfgrtl.cc (force_nonfallthru_and_redirect): Don't do any |
| asm goto adjustments early, only note in asm_goto_edge if |
| any labels point originally to e->dest head. After jumpblock |
| creation don't add an extra edge for asm_goto_edge, instead |
| adjust those labels pointing to former e->dest head to point |
| to jumpblock instead. |
| |
| 2026-02-10 Dimitry Andric <dimitry@andric.com> |
| |
| PR libfortran/123366 |
| * configure.ac: Move restoring of CXXFLAGS/LDFLAGS for zstd test to |
| the correct place. |
| * configure: Regenerate. |
| |
| 2026-02-10 Alice Carlotti <alice.carlotti@arm.com> |
| |
| PR target/123624 |
| * config/aarch64/aarch64-protos.h |
| (aarch64_use_simple_return_insn_p): New. |
| * config/aarch64/aarch64.cc |
| (aarch64_use_simple_return_insn_p): New, used... |
| * config/aarch64/aarch64.md (simple_return): ...here. |
| |
| 2026-02-10 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config.gcc: Improve aarch64 --with-arch checks. |
| |
| 2026-02-10 Alfie Richards <alfie.richards@arm.com> |
| |
| * tree-vect-data-refs.cc (vect_analyze_data_refs_alignment): |
| Update signature and comment. |
| * tree-vect-loop.cc (vect_analyze_loop_2): Update comment for |
| vect_analyze_data_refs_alignment and remove control flow. |
| * tree-vectorizer.h (vect_analyze_data_refs_alignment): Update |
| signature. |
| |
| 2026-02-10 Juergen Christ <jchrist@linux.ibm.com> |
| |
| PR tree-optimization/122297 |
| * tree-vect-loop.cc (vectorize_fold_left_reduction): Adjust. |
| (vectorizable_induction): Adjust. |
| (vectorizable_live_operation_1): Adjust. |
| (vect_get_loop_len): Provide parameter to select bias-adjusted |
| length. |
| (vect_gen_loop_len_mask): Adjust. |
| (vect_update_ivs_after_vectorizer_for_early_breaks): Adjust. |
| * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Adjust. |
| (vectorizable_call): Adjust. |
| (vectorizable_operation): Adjust. |
| (vectorizable_store): Adjust. |
| (vectorizable_load): Adjust. |
| (vectorizable_condition): Adjust. |
| * tree-vectorizer.h (vect_get_loop_len): Add parameter. |
| |
| 2026-02-10 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| * config/aarch64/tuning_models/olympus.h (olympus_sve_vector_cost): |
| Set align_load_cost to 6. |
| |
| 2026-02-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/107690 |
| * tree-ssa-ifcombine.cc (ifcombine_ifandif): Do not merge |
| possibly analyzable exit conditions. |
| |
| 2026-02-09 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/124014 |
| * diagnostics/sarif-sink.cc |
| (sarif_builder::get_logical_location_manager): Reimplement, to |
| eliminate m_logical_loc_mgr. |
| (sarif_builder::m_logical_loc_mgr): Drop field. |
| (sarif_builder::sarif_builder): Update for removed field. |
| (sarif_builder::set_any_logical_locs_arr): Likewise. |
| (sarif_builder::ensure_sarif_logical_location_for): Likewise. |
| (sarif_builder::make_minimal_sarif_logical_location): Likewise. |
| |
| 2026-02-09 David Faust <david.faust@oracle.com> |
| |
| PR target/123556 |
| * config/bpf/bpf.h (SLOW_BYTE_ACCESS): Set to 0, update comment. |
| |
| 2026-02-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/80881 |
| * attribs.cc (handle_dll_attribute): If TARGET_WIN32_TLS is 1, |
| issue an error if either attribute is set on a TLS variable. |
| |
| 2026-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR other/123841 |
| PR target/123926 |
| * acinclude.m4 (gcc_GAS_FLAGS): Handle non-Darwin/Solaris as cases |
| alike on x86 and SPARC. |
| * configure: Regenerate. |
| |
| 2026-02-09 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/123796 |
| * lra-int.h (lra_pointer_equiv_set_add): Add prototype. |
| (lra_pointer_equiv_set_in, lra_finish_equiv): Ditto. |
| * lra.cc (lra_emit_move): Set up pointer flag of the destination |
| if necessary. |
| (lra): Call lra_finish_equiv. |
| * lra-constraints.cc: Include hash-set.h. |
| (pointer_equiv_set, lra_pointer_equiv_set_add): New. |
| (lra_pointer_equiv_set_in, lra_finish_equiv): New. |
| (get_equiv_with_elimination): Propagate pointer flag by adding to |
| pointer_equiv_set. |
| (process_addr_reg, curr_insn_transform): Ditto. |
| |
| 2026-02-09 Richard Biener <rguenther@suse.de> |
| |
| * doc/analyzer.texi (State Tracking): Fix typo. |
| |
| 2026-02-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123225 |
| * tree-vect-loop.cc (vect_analyze_loop_costing): For uncounted |
| loops reject not trivially profitable loops that have no |
| estimate on the number of scalar iterations. |
| |
| 2026-02-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/124034 |
| * tree-vect-stmts.cc (process_use): Never force induction |
| latch defs relevant when doing early break vectorization. |
| |
| 2026-02-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * doc/invoke.texi (-mconst16/-mno-const16): |
| Remove the clause "The CONST16 instruction is currently not a |
| standard option from Tensilica." |
| |
| 2026-02-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/117217 |
| * tree-sra.cc (propagate_subaccesses_from_rhs): Do not propagate |
| bit-field children. |
| (propagate_subaccesses_from_lhs): Likewise. |
| |
| 2026-02-09 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123911 |
| * config/riscv/riscv.cc (riscv_legitimize_move): Elide nop moves to |
| avoid infinite recursion. |
| |
| 2026-02-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123672 |
| * tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): Use std::swap |
| instead of fetching gimple_assign_rhs{1,2} again. Change type of lanes |
| vector from auto_vec<unsigned int> to auto_vec<bool> and store true |
| instead of 1 into it. Fix comment typo and formatting fix. |
| (can_blend_vec_perm_simplify_seqs_p): Put end of comment on the same |
| line as the last sentence in it. |
| (calc_perm_vec_perm_simplify_seqs): Change lane_assignment type from |
| auto_vec<int> to auto_vec<unsigned> and store 2 + l_orig into it |
| instead of true. Fix comment typo and formatting fix. Set use_seq1 |
| to line_assignment[i] < 2 instead of line_assignment[i] != 2. Replace |
| bogus computation of index for !use_seq with using |
| line_assignment[i] - 2. Set l1 to l1 % nelts and similarly for l2. |
| |
| 2026-02-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * optabs.cc (expand_vec_perm_const): Comment spelling fix, |
| permuation -> permutation. |
| * config/arm/arm.cc (arm_evpc_neon_vtbl): Likewise. |
| * config/loongarch/loongarch.cc (loongarch_try_expand_lsx_vshuf_const): |
| Comment spelling fix, permuatation -> permutation. |
| (loongarch_is_elem_duplicate): Likewise. Comment spelling fix, |
| permuation -> permutation. |
| |
| 2026-02-07 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): |
| Remove double and triple accounting of GPR -> XMM moves |
| in construction of AVX and AVX512 vectors. |
| |
| 2026-02-07 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * cse.cc (invalidate_from_sets_and_clobbers): Consider any hard |
| register referred to by any single register constraint |
| potentially being clobbered. |
| |
| 2026-02-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/123826 |
| PR tree-optimization/123958 |
| PR c++/124002 |
| * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): |
| Delete code that (mis)handled conversion of pow(x,2.0) to x*x. |
| |
| 2026-02-07 Roger Sayle <roger@nextmovesoftware.com> |
| Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/123833 |
| * recog.cc (cancel_changes): Update the recog_data cache if it |
| holds the instruction being changed. |
| |
| 2026-02-06 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (enum aarch64_builtins): Add ptr and generic variants. |
| (aarch64_init_pcdphint_builtins): Likewise. |
| (aarch64_general_expand_builtin): Add ptr variant. |
| (aarch64_resolve_overloaded_builtin_stshh): Function to handle |
| overloaded atomic_store_with_stshh. |
| (aarch64_resolve_overloaded_builtin_general): Add call to stshh function. |
| * config/aarch64/aarch64-c.cc |
| (aarch64_resolve_overloaded_builtin): Allow fndecl to return. |
| * config/aarch64/arm_acle.h |
| (__atomic_store_with_stshh): Remove __Generic. |
| |
| 2026-02-06 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/106260 |
| * ipa-cp.cc (initialize_node_lattices): Replace assert that there are |
| callers with handling that situation when -fno-toplevel_reorder. |
| |
| 2026-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into |
| AC_ARG_WITH(gnu-ld). |
| (gcc_cv_ld): Set before gnu_ld_flag. |
| (gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). |
| (gcc_cv_as): Set before gas_flag. |
| * configure: Regenerate. |
| |
| 2026-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/101312 |
| * alias.cc (get_alias_set): Allow TYPE_CANONICAL (mv) to be |
| not its own TYPE_MAIN_VARIANT, as long as its TYPE_MAIN_VARIANT |
| has TYPE_CANONICAL equal to itself. |
| * tree.cc (verify_type): Likewise. |
| |
| 2026-02-06 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/114969 |
| * match.pd (`(A | (convert?)(A != 0)) EQ|NE 0`): New pattern. |
| |
| 2026-02-06 Andrew Stubbs <ams@baylibre.com> |
| |
| * config/gcn/gcn-valu.md (*mov<mode>_exec_match): Delete. |
| (*mov<mode>_exec_match): Likewise. |
| (*mov<mode>): Delete unaligned register support, and convert to new |
| constraint syntax. |
| (mov<mode>_exec): Likewise. |
| (@mov<mode>_sgprbase): Likewise. |
| * config/gcn/gcn.md (*movbi): Likewise. |
| |
| 2026-02-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/114274 |
| * tree-switch-conversion.cc (switch_conversion::build_one_array): |
| Use UNKNOWN_LOCATION for the CSWTCH decl. |
| |
| 2026-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/123977 |
| * tree.cc (build_function_type): Pass no_named_args_stdarg_p |
| as last argument to recursive call. |
| |
| 2026-02-06 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123940 |
| * tree-ssa-math-opts.cc (convert_mult_to_fma): Check |
| multiplication result is an addend. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * attribs.cc: Replace CONST_CAST with const_cast<>. |
| * builtins.cc: Likewise. |
| * collect2.cc: Likewise. |
| * config/bpf/core-builtins.cc: Likewise. |
| * config/gcn/mkoffload.cc: Likewise. |
| * config/nvptx/mkoffload.cc: Likewise. |
| * config/nvptx/nvptx.cc: Likewise. |
| * ctfc.cc: Likewise. |
| * dumpfile.cc: Likewise. |
| * gcc.cc: Likewise. |
| * gcov.cc: Likewise. |
| * gengtype-parse.cc: Likewise. |
| * gengtype-state.cc: Likewise. |
| * gengtype.cc: Likewise. |
| * genoutput.cc: Likewise. |
| * ggc-page.cc: Likewise. |
| * godump.cc: Likewise. |
| * lto-section-in.cc: Likewise. |
| * lto-wrapper.cc: Likewise. |
| * omp-offload.cc: Likewise. |
| * passes.cc: Likewise. |
| * plugin.cc: Likewise. |
| * prefix.cc: Likewise. |
| * pretty-print.cc: Likewise. |
| * selftest.cc: Likewise. |
| * statistics.cc: Likewise. |
| * stringpool.cc: Likewise. |
| * tree.h: Likewise. |
| * tree-profile.cc: Likewise. |
| * vec.h: Likewise. |
| * system.h (CONST_CAST2): Remove. |
| (CONST_CAST): Likewise. |
| * tsystem.h (CONST_CAST2): Remove. |
| (CONST_CAST): Likewise. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * tree.h: Replace CONST_CAST2 with const_cast<>. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * attribs.cc: Replace CONST_CAST_TREE with const_cast<tree>. |
| * config/aarch64/aarch64.cc: Likewise. |
| * config/arm/arm.cc: Likewise. |
| * config/darwin.cc: Likewise. |
| * fold-const.cc: Likewise. |
| * gimple-expr.cc: Likewise. |
| * print-rtl.cc: Likewise. |
| * tree-object-size.cc: Likewise. |
| * tree.cc: Likewise. |
| * varasm.cc: Likewise. |
| * tree.h: Likewise. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * gimple.h: Replace CONST_CAST_GIMPLE with const_cast<gimple *>. |
| * system.h (CONST_CAST_GIMPLE): Remove. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * system.h: Remove. |
| * tracer.cc: Replace CONST_CAST_BB with |
| const_cast<basic_block>. |
| * tree-cfg.cc: Likewise. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * alias.cc: Replace CONST_CAST_RTX with const_cast<rtx>. |
| * config/i386/x86-tune-sched-bd.cc: Likewise. |
| * config/rs6000/rs6000.cc: Likewise. |
| * recog.cc: Likewise. |
| * sel-sched-ir.cc: Likewise. |
| * var-tracking.cc: Likewise. |
| * varasm.cc: Likewise. |
| * system.h (CONST_CAST_RTX): Remove. |
| |
| 2026-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * config/aarch64/aarch64.cc: Replace CONST_CAST_RTX_INSN with |
| const_cast<struct rtx_insn *>. |
| * rtlanal.cc: Likewise. |
| * sched-deps.cc: Likewise. |
| * system.h (CONST_CAST_RTX_INSN): Remove. |
| |
| 2026-02-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * value-range.cc (irange_bitmask::irange_bitmask): Fix typo in |
| comment. |
| * value-range.h (class vrange): Update leading comment to refer |
| to "subsets" rather than "ranges". Allude to the available |
| subclasses. Warn that the classes can be over-approximations and |
| thus can introduce imprecision. |
| (class irange_bitmask): Updating leading comment to refer to |
| knowledge about a "value", rather than a "range". Reword |
| description of MASK and VALUE to clarify implementation, and |
| add an example. |
| (class irange): Update leading comment to refer to a |
| "subset of possible values" rather than a "range", and |
| that subclasses have responsibility for storage. |
| (class nan_state): Rewrite leading comment. |
| (class frange final): Update leading comment to refer to |
| subsets of possible values, rather than ranges, and to |
| consistently use "Nan" when capitalizing. |
| |
| 2026-02-05 Michal Jires <mjires@suse.cz> |
| |
| PR testsuite/123559 |
| * cgraphunit.cc (check_global_declaration): Suppress OPT_Wunused. |
| |
| 2026-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| Revert: |
| 2026-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/101312 |
| * langhooks.h (struct lang_hooks_for_types): Remove |
| copy_lang_qualifiers. Add build_lang_qualified_type. |
| * langhooks.cc (lhd_build_lang_qualified_type): New function. |
| * langhooks-def.h (lhd_build_lang_qualified_type): Declare. |
| (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove. |
| (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use |
| LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of |
| LANG_HOOKS_COPY_LANG_QUALIFIERS. |
| * attribs.cc (build_type_attribute_qual_variant): Use |
| lang_hooks.types.build_lang_qualified_type instead of |
| build_qualified_type and/or build_qualified_type with |
| optional lang_hooks.types.copy_lang_qualifiers call. |
| (attr_access::array_as_string): Use "array " attribute instead of |
| "array". If attribute has been created or intended quals differ |
| from quals of build_array_type, use copy_node and adjust quals and |
| attributes on the copy, print and then ggc_free. |
| |
| 2026-02-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123986 |
| * tree-vect-slp.cc (vect_slp_analyze_operations): When |
| rolling back analyzed nodes, release node specific data |
| and reset SLP_TREE_TYPE. |
| |
| 2026-02-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123983 |
| * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): |
| Only update the PHI argument on the requested edge. |
| |
| 2026-02-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/123604 |
| * compare-elim.cc (find_flags_uses_in_insn): Handle COND_EXEC. |
| * config/arm/arm.cc (TARGET_FLAGS_REGNUM): Define. |
| |
| 2026-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123978 |
| * range-op.h (OP_WIDEN_MULT_SIGNED_UNSIGNED): Define. |
| (OP_WIDEN_PLUS_SIGNED, OP_WIDEN_PLUS_UNSIGNED, |
| RANGE_OP_TABLE_SIZE): Renumber. |
| * gimple-range-op.cc (imple_range_op_handler::maybe_non_standard): |
| Use 3 different classes instead of 2 for WIDEN_MULT_EXPR, one |
| for both operands signed, one for both operands unsigned and |
| one for operands with different signedness. In the last case |
| canonicalize to first operand signed second unsigned. |
| * range-op.cc (operator_widen_mult_signed::wi_fold): Use |
| TYPE_PRECISION (type) rather than wi::get_precision (whatever) * 2, |
| use SIGNED for all wide_int::from calls. |
| (operator_widen_mult_unsigned::wi_fold): Similarly but use UNSIGNED |
| for all wide_int::from calls. |
| (class operator_widen_mult_signed_unsigned): New type. |
| (operator_widen_mult_signed_unsigned::wi_fold): Define. |
| |
| 2026-02-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/123226 |
| * cgraph.cc (cgraph_update_edges_for_call_stmt_node): Fix handling |
| of multi-target speculations resolved at clone materialization time |
| |
| 2026-02-05 xiezhiheng <xiezhiheng@huawei.com> |
| liyunfei <liyunfei33@huawei.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add hip12 core |
| * config/aarch64/aarch64-cost-tables.h: Add hip12_extra_costs |
| * config/aarch64/aarch64-tune.md: Regenerate |
| * config/aarch64/aarch64.cc: Include hip12 tuning model |
| * doc/invoke.texi: Document -mcpu=hip12 |
| * config/aarch64/tuning_models/hip12.h: New file. |
| |
| 2026-02-05 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123870 |
| PR target/123969 |
| * config/riscv/vector.md: Add vlds to "no ratio" for |
| theadvector. |
| |
| 2026-02-05 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123971 |
| * config/riscv/riscv.cc (riscv_vector_mode_supported_any_target_p): |
| Remove TARGET_XTHEADVECTOR. |
| |
| 2026-02-05 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123925 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): |
| Add nop-conversion handling for maybe_ident. |
| |
| 2026-02-05 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123910 |
| * config/riscv/riscv-string.cc (riscv_expand_block_move): |
| Remove !xtheadvector guard. |
| (use_vector_stringop_p): Guard small LMULs. |
| (check_vectorise_memory_operation): Ditto. |
| |
| 2026-02-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/121726 |
| * tree-sra.cc (build_ref_for_offset): Add force_ref_all |
| parameter and use ptr_type_node as alias pointer type in |
| that case. |
| (build_ref_for_model): Add force_ref_all parameter and |
| pass it through, forcing build_ref_for_offset. |
| (generate_subtree_copies): Likewise. |
| (sra_modify_call_arg): Force ref-all accesses. |
| |
| 2026-02-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/123898 |
| * tree-ssa-math-opts.cc (strip_nop_view_converts): New. |
| (convert_mult_to_fma): Use it. |
| |
| 2026-02-05 Alexandre Oliva <oliva@adacore.com> |
| |
| * simplify-rtx.cc (negated_ops_p): New. |
| (simplify_context::simplify_binary_operation_1): Use it. |
| |
| 2026-02-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-opts.h (VR2FPR_COST_UNPROVIDED): Add new |
| sentinel for unprovided cost. |
| * config/riscv/riscv-protos.h (get_vr2fr_cost): Add new func |
| decl. |
| * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): |
| Leverage new func to get cost of vr2fpr. |
| * config/riscv/riscv.cc (riscv_register_move_cost): Ditto. |
| (get_vr2fr_cost): Add new func to wrap access to the cost |
| of the vr2fpr. |
| * config/riscv/riscv.opt: Add new param vr2fpr-cost. |
| |
| 2026-02-05 Pan Li <pan2.li@intel.com> |
| |
| * config/riscv/riscv-opts.h (GPR2VR_COST_UNPROVIDED): Depend on |
| default unprovided value. |
| (FPR2VR_COST_UNPROVIDED): Ditto. |
| (VR2GPR_COST_UNPROVIDED): Ditto. |
| (COST_UNPROVIDED): Add new default unprovided value. |
| * config/riscv/riscv-protos.h (get_vr2gr_cost): Add new func |
| decl. |
| * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): |
| Leverage new func to get cost of vr2gpr. |
| * config/riscv/riscv.cc (riscv_register_move_cost): Ditto. |
| (get_vr2gr_cost): Add new func to wrap access to the cost |
| of the vr2gpr. |
| * config/riscv/riscv.opt: Add new param vr2gpr-cost. |
| |
| 2026-02-04 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/123922 |
| * lra-assigns.cc (lra_split_hard_reg_for): Allocate and free |
| update_hard_regno_preference_check. Clear non_reload_pseudos for |
| successful spilling too. |
| |
| 2026-02-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/121661 |
| * tree-complex.cc (extract_component): Create gimple |
| assign statements directly rather than call force_gimple_operand_gsi. |
| |
| 2026-02-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR translation/89915 |
| * doc/params.texi: Copy-edit text throughout the file. |
| * params.opt: Likewise in documentation strings. |
| |
| 2026-02-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/123245 |
| PR translation/89915 |
| * doc/invoke.texi (Warning Options): Remove discussion of parameters |
| from -Winterference-size documentation. |
| (Static Analyzer Options): Ditto for -Wanalyzer-symbol-too-complex, |
| the list of things the analyzer has specific knowledge of, and |
| -fanalyzer-call-summaries. |
| (Optimize Options): Ditto for -finline-limit and fipa-cp-clone. |
| (Instrumentation Options): Likewise for -fsanitize=kernel-hwaddress |
| and -fharden-control-flow-redundancy. |
| (C++ Compiled Module Interface): Likewise for discussion of limits |
| on number of open files. |
| |
| 2026-02-04 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR target/123245 |
| PR translation/89915 |
| * Makefile.in (TEXI_GCCINT_FILES): Add params.texi. |
| * doc/gccint.texi (pa): New index. |
| (Top): Add new Parameters and Parameters Index nodes to menu. |
| Include params.texi. |
| (Parameter Index): New. |
| * doc/invoke.texi (Option Summary): Move --param from Optimization |
| Options to Developer Options. |
| (Optimization Options): Move parameter documentation to params.texi. |
| (Developer Options): Add abbreviated discussion of --param here. |
| (LoongArch Options): Move parameter documentation to params.texi. |
| (RISC-V Options): Likewise. |
| (RS/6000 and PowerPC Options): Likewise. |
| * doc/params.texi: New file. |
| |
| 2026-02-04 Yangyu Chen <cyy@cyyself.name> |
| |
| * config/riscv/riscv-target-attr.cc |
| (riscv_target_attr_parser::parse_arch): Fix nullptr dereference |
| when parsing invalid arch string. |
| |
| 2026-02-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/123818 |
| * tree.cc (simple_cst_equal) <case CONSTRUCTOR>: Return -1 if some |
| recursive call returns -1. Also compare indexes. |
| |
| 2026-02-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/122689 |
| * gimple-lower-bitint.cc (gimple_lower_bitint): For the PHI handling |
| if min_prec == prec, break after emitting assignment from c. |
| |
| 2026-02-04 Prachi Godbole <pgodbole@nvidia.com> |
| |
| * params.opt: Change default param value. |
| |
| 2026-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR other/123841 |
| * acinclude.m4 (gcc_GAS_FLAGS): Check $gas_flag, $gnu_ld_flag |
| instead of $gas, $gnu_ld. |
| * configure.ac: Likewise. |
| (gas_flag): Determine if not already set. |
| (gnu_ld_flag): Likewise. |
| (ld_32_opt): Only set after gnu_ld_flag is set. |
| (ld_64_opt): Likewise. |
| * configure: Regenerate. |
| |
| 2026-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR other/123841 |
| * acinclude.m4 (gcc_GAS_FLAGS): Handle Darwin as cases separately. |
| * configure: Regenerate. |
| |
| 2026-02-03 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/118608 |
| * expr.cc (store_field_updates_msb_p): New helper function that |
| now also handles BYTES_BIG_ENDIAN targets. |
| (expand_assignment): Use the above function when deciding to emit |
| a required sign/zero extension. |
| * rtlanal.cc (truncated_to_mode): Call targetm.mode_rep_extended |
| to check whether an explicit TRUNCATE is required (i.e. performs |
| an extension) on this target. |
| * config/mips/mips.md (*extenddi_truncate<mode>): Handle all |
| SUBDI modes, not just SHORT modes. |
| |
| 2026-02-03 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/123826 |
| * tree-ssa-math-opts.cc (gimple_expand_builtin_pow): Add test |
| for flag_errno_math. |
| * fold-const-call.cc (fold_const_pow): Reorganize, eliminating |
| call to real_powi, and letting do_mpfr_arg2 do all the heavy |
| lifting. |
| |
| 2026-02-03 Alfie Richards <alfie.richards@arm.com> |
| |
| PR target/123548 |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_builtins): Rename AARCH64_PL<X> to |
| AARCH64_PREFETCH_PL<X>. |
| (aarch64_init_prefetch_builtin): Rename to... |
| (aarch64_init_prefetch_builtins): ...this and change builtin |
| names. |
| (AARCH64_INIT_PREFETCH_BUILTIN): Change to not add |
| "__builtin_aarch64__" prefix and to register builtins. |
| (handle_arm_acle_h): Add call to aarch64_init_prefetch_builtins. |
| (aarch64_init_pcdphint_builtins): Move __pldir code to init |
| prefetch builtins. |
| (aarch64_general_init_builtins): Remove call to |
| aarch64_init_prefetch_builtin. |
| (aarch64_expand_prefetch_builtin): Update names of PL<X> |
| builtins.` |
| * config/aarch64/arm_acle.h |
| (__pld): Remove |
| (__pli): Likewise. |
| (__plix): Likewise. |
| (__pldx): Likewise. |
| (__pldir): Likewise. |
| |
| 2026-02-03 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/123322 |
| * combine.cc (try_combine): Consider an IF_THEN_ELSE "good" when |
| evaluating if 4 insn combinations should be tried. |
| * config/riscv/iterators.md (zero_is_neutral_op): New iterator. |
| (zero_is_neutral_op_c): Likewise. |
| (any_shift_rotate): Likewise. |
| * config/riscv/riscv.cc (riscv_rtx_costs): Recognize the conditional |
| AND RTL and cost is appropriately. |
| * config/riscv/zicond.md: Add patterns to rewrite general conditional |
| move sequences into simpler forms. |
| |
| 2026-02-03 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac (gcc_cv_header_afunix_h): New test. |
| (HAVE_AFUNIX_H): New AC_DEFINE. |
| * diagnostics/sarif-sink.cc: Conditionally include afunix.h |
| if it's available, else fall back to internal definition. |
| |
| 2026-02-03 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> |
| |
| PR middle-end/123892 |
| * collect2.cc: Migrate from CONST_CAST2() macro to |
| const_cast<>() C++ expression. |
| * config/sparc/driver-sparc.cc: Likewise. |
| * gcc-ar.cc: Likewise. |
| * gcc.cc: Likewise. |
| * toplev.cc: Likewise. |
| * tree-nested.cc: Likewise. |
| |
| 2026-02-03 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/123416 |
| * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): |
| Fix typo in condtion for load merging when no callee summary. |
| |
| 2026-02-03 Xi Ruoyao <xry111@xry111.site> |
| |
| Revert: |
| 2025-11-08 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/122097 |
| * config/loongarch/loongarch.cc |
| (loongarch_const_vector_same_bytes_p): Add processing for |
| floating-point vector data. |
| |
| 2026-02-03 Xi Ruoyao <xry111@xry111.site> |
| |
| * config/loongarch/predicates.md (const_vector_neg_fp_operand): |
| New define_predicate. |
| (reg_or_vector_neg_fp_operand): New define_predicate. |
| * config/loongarch/lasx.md (copysign<mode>3): Remove. |
| (xorsign<mode>3): Remove. |
| * config/loongarch/lsx.md (copysign<mode>3): Remove. |
| (@xorsign<mode>3): Remove. |
| * config/loongarch/simd.md (copysign<mode>3): New define_expand. |
| (@xorsign<mode>3): New define_expand. |
| (and<mode>3): Only allow IVEC instead of ALLVEC. |
| (ior<mode>3): Likewise. |
| (xor<mode>3): Likewise. |
| * config/loongarch/loongarch.cc (loongarch_print_operand): No |
| longer allow floating-point vector constants for %V. |
| (loongarch_const_vector_bitimm_set_p): Always return false for |
| floating-point vector constants. |
| (loongarch_build_signbit_mask): Factor out force_reg. |
| (loongarch_emit_swrsqrtsf): Use integer vector mode instead of |
| floating-point vector mode when masking zero inputs. |
| |
| 2026-02-02 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/110522 |
| * gcc.cc (driver_handle_option): Use |
| get_diagnostic_file_output_basename for |
| OPT_fdiagnostics_format_. |
| * opts-diagnostic.cc (get_base_filename): Likewise. |
| (get_diagnostic_file_output_basename): New. |
| * opts-diagnostic.h (get_diagnostic_file_output_basename): New |
| decl. |
| * opts.cc (maybe_prepend_dump_dir_name): New, based on code in |
| finish_options. |
| (finish_options): Move code for determining prepended |
| dump_base_name to maybe_prepend_dump_dir_name and call it. |
| (common_handle_option): Use get_diagnostic_file_output_basename |
| for OPT_fdiagnostics_format_. |
| * opts.h (maybe_prepend_dump_dir_name): New decl. |
| |
| 2026-02-02 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123294 |
| * ifcvt.cc (noce_emit_store_flag): Reject modes |
| greater than MAX_FIXED_MODE_SIZE. |
| |
| 2026-02-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/123897 |
| * tree-ssa-math-opts.cc (convert_mult_to_fma_1): Use type of variable |
| being folded. |
| |
| 2026-02-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121290 |
| * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): |
| Remove else. |
| |
| 2026-02-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/121104 |
| * tree-ssa-math-opts.cc (match_uaddc_usubc): Punt if |
| lhs of ovf1 or ovf2 doesn't have element type compatible with type. |
| |
| 2026-02-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123755 |
| * tree-vect-stmts.cc (vectorizable_call): Adjust len-masking |
| condition. Simplify code generation. |
| |
| 2026-01-31 Keith Packard <keithp@keithp.com> |
| |
| * config/picolibc-spec.h (LIBC_LINK_SPEC): Use find-file for test |
| and access to picolibc.ld. |
| |
| 2026-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123887 |
| * match.pd ((a ? x : y) !=/== (b ? x : y)): Make sure |
| x and y have no side-effects before evaluating them |
| unconditionally. |
| |
| 2026-01-31 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Binaries): Switch delorie.com to https. |
| |
| 2026-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123887 |
| * match.pd ((zero_one ==/!= 0) ? .. z <op> y .. -> zero_one * z ..): |
| Check evaluating z unconditionally has no side-effects, like |
| trapping. |
| |
| 2026-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR debug/123886 |
| * dwarf2out.cc (sym_off_pair::sym): Remove GTY((skip)). |
| |
| 2026-01-30 Michal Jires <mjires@suse.cz> |
| |
| * doc/extend.texi: Mention flto-toplevel-asm-heuristics. |
| * doc/invoke.texi: Add flto-toplevel-asm-heuristics. |
| |
| 2026-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR debug/110885 |
| * dwarf2out.cc (generate_skeleton_bottom_up): Generate the |
| skeleton ancestor tree when moving a new child to the parent |
| even for template instantiations. |
| |
| 2026-01-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123864 |
| * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) -> |
| x > stype_max / cst || x < stype_min / cst): Only check |
| integer_minus_onep for signed types. |
| |
| 2026-01-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/123790 |
| * fold-const.cc (fold_convert_const): Handle conversion of |
| integer_zerop to NULLPTR_TYPE. |
| (fold_convert_loc): Likewise. |
| |
| 2026-01-30 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/123855 |
| * path-coverage.cc (flush_on_edges): Only look up SSA name def |
| stmt when counter is non-const. |
| |
| 2026-01-30 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov-dump.cc (tag_paths): New function. |
| |
| 2026-01-30 Jørgen Kvalsvik <j@lambda.is> |
| |
| * common.opt: ftest-coverage enabled by fpath-coverage or |
| fcondition-coverage |
| |
| 2026-01-30 Jørgen Kvalsvik <j@lambda.is> |
| |
| * gcov-dump.cc (tag_conditions): Read position before blocks, |
| terms. |
| |
| 2026-01-30 Jørgen Kvalsvik <j@lambda.is> |
| |
| PR gcov-profile/121084 |
| PR gcov-profile/121123 |
| PR gcov-profile/121409 |
| * profile.cc (branch_prob): Record seen_locations without |
| discriminators. |
| |
| 2026-01-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123876 |
| * omp-low.cc (diagnose_sb_2): Handle GIMPLE_ASM. |
| |
| 2026-01-30 Alex Coplan <alex.coplan@arm.com> |
| |
| PR target/123206 |
| * config/aarch64/aarch64-builtins.cc (struct aarch64_pragma_builtins_data): |
| Declare array as CONSTEXPR. |
| * config/aarch64/aarch64-simd-pragma-builtins.def: Update |
| incorrect uses of TARGET_SIMD to use AARCH64_FL_SIMD instead. |
| |
| 2026-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/109410 |
| * tree-ssa-reassoc.cc (build_and_add_sum): Use |
| gsi_start_nondebug_after_labels_bb to look for a possible |
| returns-twice call. |
| |
| 2026-01-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * config/darwin-d.cc (darwin_d_os_builtins): Add Apple. |
| |
| 2026-01-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/122170 |
| * ifcvt.cc (noce_can_force_operand): Don't only check if |
| there is an optab for the code check the entry for the |
| mode is non-null. Handle non integral div by checking |
| optab like force_operand does. |
| |
| 2026-01-30 Lulu Cheng <chenglulu@loongson.cn> |
| |
| * config/loongarch/loongarch-ftypes.def: Remove unused type. |
| |
| 2026-01-30 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/123766 |
| * config/loongarch/loongarch-builtins.cc |
| (loongarch_build_vpointer_type): New function. Return a type |
| for 'volatile void *'. |
| (LARCH_ATYPE_VPOINTER): New macro. |
| * config/loongarch/loongarch-ftypes.def: Change the pointer |
| type of the store class function from CVPOINTER to VPOINTER. |
| |
| 2026-01-30 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/123807 |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vector_init_same): When same is MEM and |
| GET_MODE(same) != imode, first load the data from memory |
| and then process it further. |
| |
| 2026-01-30 mengqinggang <mengqinggang@loongson.cn> |
| |
| * config/loongarch/loongarch.md: Delete movsf TARGET_HARD_FLOAT |
| condition. |
| |
| 2026-01-29 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/123869 |
| * optabs.cc (expand_unop): Move the NEG optab |
| handling before the widening code. |
| Move the ABS bitwise expansion from expand_abs_nojump |
| to before the widening code. |
| (expand_abs_nojump): Remove the bitwise expansion trial |
| since expand_unop is called right above. |
| |
| 2026-01-29 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.cc (emit_group_load_1): Don't call force_reg if orig_src |
| is already a CONCAT. |
| |
| 2026-01-29 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/options.texi (Options): Point to the "user experience" |
| documentation. |
| * doc/ux.texi (Guidelines for Options): Add some. |
| |
| 2026-01-29 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123806 |
| * config/riscv/riscv-string.cc (expand_rawmemchr): Use unified |
| vl_read. |
| (expand_strcmp): Ditto. |
| * config/riscv/riscv-vector-builtins-bases.cc: |
| * config/riscv/riscv-vector-builtins.cc (function_expander::use_fof_load_insn): |
| Only emit the store and not the VL read. |
| * config/riscv/riscv-vsetvl.cc (get_fof_set_vl_reg): New |
| function. |
| (init_rtl_ssa): New wrapper. |
| (finish_rtl_ssa): Ditto. |
| (emit_fof_read_vls): Emit read_vl after each fault-only-first |
| load. |
| (pass_vsetvl::simple_vsetvl): Call emit_fof_read_vls (). |
| (pass_vsetvl::lazy_vsetvl): Ditto. |
| * config/riscv/vector-iterators.md: Add read_vl unspec. |
| * config/riscv/vector.md (read_vlsi): Unify. |
| (@read_vl<mode>): Ditto. |
| (read_vldi_zero_extend): Ditto. |
| (@pred_fault_load_set_vl<V_VLS:mode><P:mode>): New FoF variant |
| that saves VL in a register. |
| (@pred_fault_load_set_vl<VT:mode><P:mode>): Ditto. |
| |
| 2026-01-29 Filip Kastl <fkastl@suse.cz> |
| |
| * gimple-ssa-pta-constraints.cc (make_param_constraints): Adjust |
| comment: The function only creates varinfos for the parameters, |
| the return value and the static chain. |
| |
| 2026-01-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122537 |
| * tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): Register |
| may_be_zero condition when the IV may overflow. |
| |
| 2026-01-29 Sangamesh Mallayya <swamy.sangamesh@gmail.com> |
| |
| * diagnostics/sarif-sink.cc: Move config.h at the begining. |
| |
| 2026-01-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123596 |
| * tree-eh.cc (sink_clobbers): Create a virtual PHI when |
| one is required but not present, queuing arguments |
| for renaming. |
| |
| 2026-01-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/116747 |
| * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Avoid |
| duplicate stmts in the set of store pairs to process. |
| |
| 2026-01-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/36503 |
| * config/i386/i386.md (*<insn:any_shift><mode:SWI48>3_sub): |
| Also allow operands[3] & (<mode_bitsize>-1) == (<mode_bitsize>-1) |
| in insn condition. Emit NOT RTX instead of NEG RTX in this case. |
| (*<insn:any_shift><mode:SWI48>3_sub_1): Ditto. |
| |
| 2026-01-28 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123824 |
| * config/riscv/riscv.cc (riscv_vls_mode_fits_in_gprs_p): New |
| helper. |
| (riscv_pass_vls_aggregate_in_gpr): Use helper and distribute |
| half-fitting vector to GPR and stack. |
| (riscv_pass_aggregate_in_vr): Reformat comment. |
| (riscv_get_arg_info): Use helper. |
| (riscv_pass_by_reference): Ditto. |
| |
| 2026-01-28 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/121571 |
| * lra-constraints.cc (process_alt_operands): Reprocess asm insn |
| when there are no enough regs for the asm-insn. |
| |
| 2026-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123575 |
| * match.pd (abs ((T)x) -> absu (x)): For vector type |
| arguments require the resulting operation is supported. |
| |
| 2026-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/111036 |
| * match.pd (__builtin_constant_p ((T)x)): Strip nop-conversions |
| from __builtin_constant_p arguments. |
| |
| 2026-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/106859 |
| * var-tracking.cc (val_store): Dump -1 as UID if setting_insn |
| is NULL. |
| |
| 2026-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123537 |
| * match.pd (REDUC (@0 & @1) -> @0[I] & @1[I]): Restrict |
| allowed conversions. |
| |
| 2026-01-28 Karl Meakin <karl.meakin@arm.com> |
| |
| * doc/invoke.texi: Document `+sve-bfscale` flag. |
| * config/aarch64/aarch64.h (TARGET_SVE_BFSCALE): New macro. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Define `__AARCH64_FEATURE_SVE_BFSCALE`. |
| * config/aarch64/aarch64-sve-builtins-base.cc: Skip constant |
| folding for floating-point or unpredicated multiplications. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: New `SVE_FUNCTION`s. |
| * config/aarch64/aarch64-sve.md: Modify insns for |
| `SVE_COND_FP_BINARY_INT` to handle BF16 modes. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve_<optab><mode>, @aarch64_sve_<optab><mode>_single): New insn for `BFSCALE`. |
| Modify insns for `UNSPEC_FSCALE` to handle BF16 modes. |
| * config/aarch64/iterators.md (SVE_FULL_F_SCALAR): Add `VNx8BF` to iterator. |
| (SVE_FULL_F_BFSCALE): New iterator. |
| (SVE_Fx24_BFSCALE): New iterator. |
| (SVE_BFx24): New iterator. |
| (UNSPEC_FMUL): New unspec. |
| (V_INT_EQUIV): Add entries for BF16 modes. |
| (b): Add entries for scalar float modes. |
| (is_bf16): Add entries for BF16 modes and reformat. |
| (SVSCALE_SINGLE_INTARG): Likewise. |
| (SVSCALE_INTARG): Likewise. |
| (SVE_FP_MULL): New iterator. |
| |
| 2026-01-28 Pengfei Li <Pengfei.Li2@arm.com> |
| |
| PR middle-end/123447 |
| * expr.cc (expand_expr_real_1): Increase stack slot alignment |
| for STRICT_ALIGNMENT targets. |
| |
| 2026-01-28 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/123016 |
| * tree-vect-stmts.cc (vectorizable_simd_clone_call): use |
| 'build_truth_vector_type_for_mode' to reconstruct mask's vectype for |
| non-scalar masks. |
| |
| 2026-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/101312 |
| * langhooks.h (struct lang_hooks_for_types): Remove |
| copy_lang_qualifiers. Add build_lang_qualified_type. |
| * langhooks.cc (lhd_build_lang_qualified_type): New function. |
| * langhooks-def.h (lhd_build_lang_qualified_type): Declare. |
| (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove. |
| (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use |
| LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of |
| LANG_HOOKS_COPY_LANG_QUALIFIERS. |
| * attribs.cc (build_type_attribute_qual_variant): Use |
| lang_hooks.types.build_lang_qualified_type instead of |
| build_qualified_type and/or build_qualified_type with |
| optional lang_hooks.types.copy_lang_qualifiers call. |
| (attr_access::array_as_string): Use "array " attribute instead of |
| "array". If attribute has been created or intended quals differ |
| from quals of build_array_type, use copy_node and adjust quals and |
| attributes on the copy, print and then ggc_free. |
| |
| 2026-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/123837 |
| * ipa-free-lang-data.cc (find_decls_types_r): Remove C++ annotations |
| from {DECL,TYPE}_ATRIBUTES. |
| |
| 2026-01-28 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123849 |
| * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle |
| DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE like DEMANGLE_COMPONENT_BUILTIN_TYPE. |
| |
| 2026-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/110043 |
| * pointer-query.cc (get_offset_range): Fail for integer |
| types with precision larger than ptrdiff_type_node. |
| |
| 2026-01-28 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/123779 |
| * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2): |
| Rename to ... |
| (*sse4_1_<code>v8qiv8hi2_2): ... this, and drop mask conditions. |
| (*avx2_<code>v8qiv8si2<mask_name>_2): Rename to ... |
| (*avx2_<code>v8qiv8si2_2): ... this, and likewise. |
| (*sse4_1_<code>v4qiv4si2<mask_name>_2): Rename to ... |
| (*sse4_1_<code>v4qiv4si2_2): ... this, and likewise. |
| (*sse4_1_<code>v4hiv4si2<mask_name>_2): Rename to ... |
| (*sse4_1_<code>v4hiv4si2_2): ... this, and likewise. |
| (*avx2_<code>v4qiv4di2<mask_name>_2): Rename to ... |
| (*avx2_<code>v4qiv4di2_2): ... this, and likewise. |
| (*avx2_<code>v4hiv4di2<mask_name>_2): Rename to ... |
| (*avx2_<code>v4hiv4di2_2): ... this, and likewise. |
| (*sse4_1_<code>v2hiv2di2<mask_name>_2): Rename to ... |
| (*sse4_1_<code>v2hiv2di2_2): ... this, and likewise. |
| (*sse4_1_<code>v2siv2di2<mask_name>_2): Rename to ... |
| (*sse4_1_<code>v2siv2di2_2): ... this, and likewise. |
| (*avx512f_<code>v8qiv8di2<mask_name>_2): Rename to ... |
| (*avx512f_<code>v8qiv8di2_2): ... this. |
| (*avx512vl_<code>v8qiv8hi2_mask_2): New define_insn_and_split. |
| (*avx512vl_<code>v8qiv8si2_mask_2): Likewise. |
| (*avx512vl_<code>v4qiv4si2_mask_2): Likewise. |
| (*avx512vl_<code>v4hiv4si2_mask_2): Likewise. |
| (*avx512f_<code>v8qiv8di2_mask_2): Likewise. |
| (*avx512vl_<code>v4qiv4di2_mask_2): Likewise. |
| (*avx512vl_<code>v4hiv4di2_mask_2): Likewise. |
| (*avx512vl_<code>v2hiv2di2_mask_2): Likewise. |
| (*avx512vl_<code>v2siv2di2_mask_2): Likewise. |
| |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> |
| Iain Sandoe <iain@sandoe.co.uk> |
| Ville Voutilainen <ville.voutilainen@gmail.com> |
| |
| * doc/invoke.texi: Document -fcontracts-client-check= and |
| -fcontracts-definition-check=. |
| |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> |
| Iain Sandoe <iain@sandoe.co.uk> |
| Ville Voutilainen <ville.voutilainen@gmail.com> |
| |
| * doc/invoke.texi: Document -fcontract-checks-outlined and |
| -fcontract-disable-optimized-checks. |
| |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> |
| Iain Sandoe <iain@sandoe.co.uk> |
| |
| * tree-core.h (struct tree_base): Update tree flag usage comment. |
| |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> |
| Iain Sandoe <iain@sandoe.co.uk> |
| |
| * tree.h (CONST_WRAPPER_P): New. |
| |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> |
| Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/invoke.texi: Document -fcontracts-conservative-ipa. |
| |
| 2026-01-28 Iain Sandoe <iain@sandoe.co.uk> |
| Nina Ranns <dinka.ranns@gmail.com> |
| Ville Voutilainen <ville.voutilainen@gmail.com> |
| |
| * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add cases for contract |
| constant data that need to be in independent link-time 'atoms'. |
| * doc/invoke.texi: Document -fcontracts and |
| -fcontract-evaluation-semantic=. |
| |
| 2026-01-28 Iain Sandoe <iain@sandoe.co.uk> |
| Nina Ranns <dinka.ranns@gmail.com> |
| |
| * doc/invoke.texi: Remove documentation of contracts options. |
| |
| 2026-01-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/123841 |
| * acinclude.m4 (gcc_GAS_FLAGS) <i?86-*-* | x86_64-*-*>: Set |
| gcc_cv_as_flags irrespective of $gas_flag. |
| * configure: Regenerate. |
| |
| 2026-01-27 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/122623 |
| * doc/invoke.texi (-fanalyzer-assume-nothrow): New option. |
| |
| 2026-01-27 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/97898 |
| * omp-expand.cc (expand_omp_for_static_chunk): Don't |
| conditionalize the call to force_gimple_operand_gsi on DECL_P/TREE_ADDRESSABLE |
| but rather pass that as the 3rd argument. |
| |
| 2026-01-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/123619 |
| * ipa-polymorphic-call.cc |
| (ipa_polymorphic_call_context::possible_dynamic_type_change): Remove impossible |
| speuculation. |
| |
| 2026-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (ld_32_opt, ld_64_opt): Set. |
| (ld_ix86_gld_32_opt): Replace by ld_32_opt. |
| (ld_ix86_gld_64_opt): Replace by ld_64_opt. |
| Replace -melf_x86_64 by ld_64_opt. |
| * configure: Regenerate. |
| |
| 2026-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_cv_as_flags) Provide Solaris settings. |
| Apply Linux/x86 gas settings on all x86 gas targets, too. |
| (as_32_opt, as_64_opt): Set on all x86 gas targets. |
| * configure.ac: Consistenly use as_32_opt, as_64_opt instead of |
| as_ix86_gas_{32,64}_opt or hardcoded --64. |
| <sparc*-*-*>: Simplify setting TLS test code. |
| * configure: Regenerate. |
| |
| 2026-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (fw_as_opt): Set. |
| Replace --fatal-warnings by $fw_as_opt. |
| (tls_as_opt): Remove --fatal-warnings. |
| (gcc_cv_as_tls): Use $fw_as_opt. |
| * configure: Regenerate. |
| |
| 2026-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/116296 |
| * ipa-modref-tree.cc (modref_access_node::contains): Use |
| poly_offset_int for the param offset difference and the |
| overlap computation. |
| |
| 2026-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/123376 |
| * dwarf2out.cc (tree_add_const_value_attribute): Walk all |
| initializers for early mangling of referenced decls. |
| (mangle_referenced_decls): Also walk subtrees of CONSTRUCTORS. |
| |
| 2026-01-27 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123799 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Pun |
| conversion element type with integer type. |
| |
| 2026-01-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/123791 |
| * config/aarch64/aarch64.cc (aarch64_cannot_force_const_mem): |
| Always return true for symbols and labels except for large model. |
| (aarch64_select_rtx_section): Force .rodata for constants only. |
| |
| 2026-01-27 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/123792 |
| * config/aarch64/aarch64.md (aarch64_<optab>_reg_minus<mode>3): |
| Add support for invert in shift count. |
| |
| 2026-01-27 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/install.texi (gcn): Require Newlib 4.6.0+, replacing 4.3.0+ |
| requirement with long list of recommended fixes up to post-4.5.0. |
| |
| 2026-01-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122749 |
| * tree-ssa-math-opts.cc (convert_mult_to_fma_1, convert_mult_to_fma): |
| Unwrap converts around addend. |
| |
| 2026-01-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123820 |
| * gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Use |
| the correct type for the stride (lhs if non-pointer). |
| |
| 2026-01-26 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR middle-end/123709 |
| * final.cc (output_asm_operand_names): Skip over |
| opnum which is MAX_RECOG_OPERANDS (invalid). |
| (output_asm_insn): Increase opoutput and oporder size |
| by 1. For out of range operands, set the opnum to |
| MAX_RECOG_OPERANDS. |
| |
| 2026-01-26 Filip Kastl <fkastl@suse.cz> |
| |
| * doc/invoke.texi: Document --param auto-profile-reorder-only. |
| * params.opt: Fix spelling. |
| |
| 2026-01-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122474 |
| * tree-vectorizer.h (vect_reduc_info_s::neutral_op): New. |
| (VECT_REDUC_INFO_NEUTRAL_OP): New. |
| * tree-vect-loop.cc (vectorizable_reduction): Adjust condition |
| guarding the check for .VEC_SHL_INSERT. |
| |
| 2026-01-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123755 |
| * tree-vect-stmts.cc (vectorizable_call): Fixup LEN masking |
| of unconditional but possibly trapping calls. |
| |
| 2026-01-26 Victor Do Nascimento <victor.donascimento@arm.com> |
| |
| PR tree-optimization/123657 |
| * tree-vect-loop.cc (vect_analyze_loop_form): Add |
| chrec_dont_know check. |
| |
| 2026-01-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123794 |
| * tree-vect-slp.cc (vect_remove_slp_scalar_calls): Unlink |
| VOPs for all calls. |
| |
| 2026-01-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| PR tree-optimization/123628 |
| * tree-if-conv.cc (if_convertible_simdclone_stmt_p): New. |
| (if_convertible_stmt_p, predicate_statements): Use it. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * gcc-urlifier.cc (test_gcc_urlifier): Match either positive |
| or negative option URLS. |
| |
| 2026-01-25 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/122348 |
| * expr.cc (store_constructor): Ignore fields where DECL_SIZE |
| is NULL_TREE, i.e. flexible array members. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * common.opt.urls: Regenerated. |
| * config/alpha/alpha.opt.urls: Regenerated. |
| * config/arc/arc.opt.urls: Regenerated. |
| * config/arm/arm.opt.urls: Regenerated. |
| * config/avr/avr.opt.urls: Regenerated. |
| * config/bpf/bpf.opt.urls: Regenerated. |
| * config/cris/cris.opt.urls: Regenerated. |
| * config/lynx.opt.urls: Regenerated. |
| * config/m68k/m68k.opt.urls: Regenerated. |
| * config/mcore/mcore.opt.urls: Regenerated. |
| * config/mingw/cygming.opt.urls: Regenerated. |
| * config/mips/mips.opt.urls: Regenerated. |
| * config/mips/sde.opt.urls: Regenerated. |
| * config/mmix/mmix.opt.urls: Regenerated. |
| * config/nvptx/nvptx.opt.urls: Regenerated. |
| * config/rs6000/linux64.opt.urls: Regenerated. |
| * config/rs6000/rs6000.opt.urls: Regenerated. |
| * config/rs6000/sysv4.opt.urls: Regenerated. |
| * config/sh/sh.opt.urls: Regenerated. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * doc/invoke.texi (Option Summary): Fix whitespace in @gccoptlist |
| tables. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppopts.texi: Add missing @opindex entries for |
| -fno-* options. |
| * doc/invoke.texi: Likewise. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppwarnopts.texi: Add missing @opindex entries for |
| -Wno-* options. |
| * doc/invoke.texi: Likewise. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/cppdiropts.texi: Document -imultiarch. |
| * doc/invoke.texi (Option Summary) <Optimization Options>: Add |
| -flto-toplevel-asm-heuristics. |
| <Program Instrumentation Options>: Remove -fbounds-check. |
| <Directory Options>: Add -imultiarch. |
| <ARC Options>: Add -mbitops, -mcmem, -munaligned-access. |
| <ARM Options>: Add -mvectorize-with-neon-quad and |
| -mvectorize-with-neon-double. |
| <AVR Options>: Add -mrmw and -mstrict-X. |
| <CRIS Options>: Fix typo in -mmax-stackframe. |
| <Cygwin and MinGW Options>: Add -muse-libstdc-wrappers. |
| <M680x0 Options>: Add several missing CPU options, plus -mxtls. |
| <MIPS Options>: Add -mno-data-in-code and -mcode-xonly. |
| <MMIX Options>: Add mset-data-start, -mset-program-start, and |
| -mno-set-program-start. |
| <Nvidia PTX Options>: Add -msoft-stack-reserve-local. |
| <RS/6000 and PowerPC Options>: Add -mprofile-kernel, -mbit-word, |
| -mno-splat-word-constant, -mno-splat-float-constant, |
| -mno-ieee128-constant, and -mno-warn-altivec-long. |
| (Optimization Options): Document -flto-toplevel-asm-heuristics. |
| (ARC Options): Document -mbitops and -mcmem. |
| (ARM Options): Add index entries for mbe32, |
| m[no-]fix-cortex-a57-aes-1742098, m[no-]fix-cortex-a72-aes-1655431. |
| Document -mvectorize-with-neon-quad and -mvectorize-with-neon-double. |
| (AVR Options): Document -mpmem-wrap-around. |
| (CRIS Options): Fix typo in -mmax-stackframe. |
| (Cygwin and MinGW Options): Document -muse-libstdc-wrappers. |
| (DEC Alpha Options): Fix typo in -mfp-regs. |
| (eBPF Options): Add @opindex for -mframe-limit. |
| (HPPA Options): Fix typos in -mno-disable-fpregs and -mno-gas |
| index entries. |
| (m680x0 Options): Document -m68302, -m68332, -m68851, and -mfidoa. |
| Document -mnoshort and -mnortd aliases. Document -mxtls. |
| (MCore Options): Fix typos in -m[no-]relax-immediates. |
| (MIPS Options): Document -mno-data-in-code and -mcode-xonly. |
| (MMIX Options): Document -mset-data-start, -mset-program-start, and |
| -mno-set-program-start. |
| (Nvidia PTX Options): Document -msoft-stack-reserve-local. |
| (RS/6000 and PowerPC Options): Document -mprofile-kernel, |
| -mbit-word, -msplat-word-constant, -msplat-float-constant, |
| -mieee128-constant, and -mwarn-altivec-long. |
| (SH Options): Add index entry for -m2e. Document -m4-400. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt (fbounds-check): Mark as Undocumented, expand comments |
| to explain why. |
| * config/frv/frv.opt (msched-lookahead=): Mark unused option as |
| Undocumented. |
| * config/m68k/m68k.opt (m68851): Add RejectNegative. |
| * config/nvptx/nvptx.opt (minit-regs=): Mark as Undocumented. It's |
| not currently documented and seems to have been introduced as a |
| stopgap to experiment with different implementation strategies. |
| * config/rs6000/476.opt (mpreserve-link-stack): Mark as Undocumented. |
| It seems to be an internal option that is enabled by default on the |
| cpu that can benefit from it. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * common.opt (gtoggle): Mark RejectNegative. |
| * doc/invoke.texi (Option Summary) <Debugging Options>: Remove |
| redundant -gno- forms from the list. |
| (Debugging Options): Add @opindex for -gno- option forms. |
| Copy-edit option descriptions to avoid future tense and use of |
| implementor jargon. |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/67300 |
| * common.opt (foffload-abi, foffload-abi-host-opts): Mark |
| "Undocumented". |
| |
| 2026-01-25 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <LynxOS Options>: New. |
| (LynxOS Options): New section. |
| |
| 2026-01-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123803 |
| * gimple-ssa-strength-reduction.cc (replace_rhs_if_not_dup): For |
| pointer lhs use sizetype. |
| |
| 2026-01-23 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123780 |
| * config/riscv/vector.md: Correct output template. |
| |
| 2026-01-23 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123767 |
| * tree-vect-stmts.cc (vectorizable_store): Only scale offset |
| once. |
| (vectorizable_load): Ditto. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123778 |
| * genmatch.cc (parser::parse_expr): Peek on the next |
| token after eating the `!` or `^`. |
| * match.pd (`(op (cnd @0 @1 @2) @3)`, `(op @3 (cnd @0 @1 @2))`): |
| Add the type to resulting op. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/120258 |
| PR tree-optimization/106883 |
| * gimple-ssa-strength-reduction.cc (replace_mult_candidate): Allow for |
| basis_name and bump_tree not to be the same type as the lhs. |
| Rewrite added multiply for undefined overflow. |
| (create_add_on_incoming_edge): Allow for init |
| to be a different type from the wanted type. |
| Rewrite added add for undefined overflow. |
| (replace_rhs_if_not_dup): Rewrite replaced stmts |
| for undefined overflow. |
| (replace_one_candidate): Allow for basis_name and |
| rhs2 to be a different type from lhs. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/106883 |
| * gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Rewrite |
| the new addition on the edge too. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * gimple-ssa-strength-reduction.cc (introduce_cast_before_cand): Use |
| gimple_convert instead of manually creating the gimple_assign. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/121347 |
| PR tree-optimization/106883 |
| * gimple-ssa-strength-reduction.cc (insert_initializers): Rewrite |
| newly inserted statements for undefinedness (overflow). |
| |
| 2026-01-23 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/123492 |
| * config/riscv/riscv-cores.def (RISCV_CORE): Add zvfbfmin to |
| tt-ascalon-d8. |
| |
| 2026-01-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123776 |
| * gimple-fold.cc (gimple_fold_partial_load_store): Copy |
| the vdef from the old statement to the new statement of a |
| load that is also a store to non gimple_reg. |
| |
| 2026-01-23 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/80357 |
| PR rtl-optimization/94014 |
| PR rtl-optimization/123144 |
| * haifa-sched.cc (model_recompute): Ignore dying uses of registers |
| that are not assumed to be live. |
| |
| 2026-01-23 Richard Biener <rguenther@suse.de> |
| |
| * match.pd ((convert (vec_cond ...))): Make sure the |
| resulting vec_cond can be expanded. |
| |
| 2026-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123775 |
| * match.pd ((view_convert (vec_cond ...))): Make sure the |
| resulting vec_cond can be expanded. |
| |
| 2026-01-23 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| Revert: |
| 2026-01-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/123584 |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>): Use |
| aarch64_simd_rshift_imm predicate for rotate amount. |
| |
| 2026-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123703 |
| * builtins.cc (fold_builtin_abs): Return NULL_TREE if type is not |
| integral. |
| |
| 2026-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123771 |
| * tree-vect-loop.cc (vectorizable_induction): Convert step |
| also for VLA vectors. |
| |
| 2026-01-23 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.cc (ix86_vector_costs::finish_cost): |
| Avoid selecting masked epilogs for in-order reductions. |
| |
| 2026-01-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (avx2_vbroadcasti128_<mode>): Constraint |
| alternative 0 with jm and add gpr16 attr to avoid egpr usage. |
| |
| 2026-01-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/123742 |
| * config/arm/neon.md (*smin<mode>3_neon): Renamed to ... |
| (*smin<VDQWH:mode>3_neon): ... this. Add HFmode support. |
| (*smax<mode>3_neon): Renamed to ... |
| (*smax<VDQWH:mode>3_neon): ... this. Add HFmode support. |
| |
| 2026-01-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123741 |
| * tree-vect-stmts.cc (vectorizable_store): Add missing check |
| on loop vectorization. |
| |
| 2026-01-22 Jonathan Wakely <jwakely@redhat.com> |
| |
| * tree-vrp.cc (remove_unreachable::fully_replaceable): Fix typo |
| in comment. |
| |
| 2026-01-22 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123731 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Handle nop |
| conversion between during extraction. |
| |
| 2026-01-22 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/122869 |
| * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load): |
| Remove |
| * config/riscv/riscv-vector-builtins.cc (function_expander::use_contiguous_load_insn): |
| Use new helper. |
| (function_expander::prepare_contiguous_load_insn): New helper. |
| (function_expander::use_fof_load_insn): New function to emit FoF |
| loads. |
| * config/riscv/riscv-vector-builtins.h: Declare new functions. |
| |
| 2026-01-22 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR target/123279 |
| * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): |
| Add VECTOR_EXT_NO_XTHEAD. |
| (vlm): Move to VECTOR_EXT_NO_XTHEAD. |
| (vsm): Ditto. |
| (vzext): Ditto. |
| (vsext): Ditto. |
| (vaaddu): Ditto. |
| (vaadd): Ditto. |
| (vasubu): Ditto. |
| (vasub): Ditto. |
| (vfrsqrt7): Ditto. |
| (vfrec7): Ditto. |
| (vfrec7_frm): Ditto. |
| (vfslide1up): Ditto. |
| (vfslide1down): Ditto. |
| (vluxei8): Ditto. |
| (vluxei16): Ditto. |
| (vluxei32): Ditto. |
| (vluxei64): Ditto. |
| (vsuxei8): Ditto. |
| (vsuxei16): Ditto. |
| (vsuxei32): Ditto. |
| (vsuxei64): Ditto. |
| (vluxseg): Ditto. |
| (vsuxseg): Ditto. |
| (vrgatherei16): Ditto. |
| (vlseg): Keep. |
| (vsseg): Keep. |
| (vlsseg): Keep. |
| (vssseg): Keep. |
| (vloxseg): Keep. |
| (vsoxseg): Keep. |
| (vlsegff): Keep. |
| * config/riscv/riscv-vector-builtins.cc (GTY): Split |
| registered_functions into multiple partitions. |
| (is_fractional_lmul): New function. |
| (xthvector_unsupported_p): Ditto. |
| (get_builtin_partition): Ditto. |
| (function_builder::add_function): Use new functions. |
| (lookup_registered_function): Ditto. |
| (builtin_decl): Use lookup_registered_function. |
| (gimple_fold_builtin): Ditto. |
| (expand_builtin): Ditto. |
| (check_builtin_call): Ditto. |
| (resolve_overloaded_builtin): Ditto. |
| * config/riscv/riscv-vector-builtins.h (enum required_ext): |
| (enum rvv_builtin_partition): New enum. |
| (required_ext_to_isa_name): Add NO_XTHEAD. |
| (required_extensions_specified): Ditto. |
| * config/riscv/riscv-vector-switch.def (ENTRY): Remove |
| XTheadVector. |
| (TUPLE_ENTRY): Ditto. |
| * config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Fix |
| whitespace. |
| (riscv_legitimize_poly_move): Ditto. |
| (riscv_vector_fractional_lmul_p): New function. |
| (riscv_validate_vector_type): Use new function. |
| |
| 2026-01-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123755 |
| * tree-vect-stmts.cc (vectorizable_call): Register mask when |
| the call could trap. |
| |
| 2026-01-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123756 |
| * tree-vect-loop.cc (vect_transform_reduction): Remove |
| bogus assert. |
| |
| 2026-01-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123736 |
| * tree-ssa-loop-unswitch.cc (hoist_guard): Guard dump message |
| on dump_file && (dump_flags & TDF_DETAILS) condition. |
| |
| 2026-01-22 David Malcolm <dmalcolm@redhat.com> |
| |
| PR diagnostics/122622 |
| * diagnostics/paths-output.cc: Include "diagnostics/file-cache.h". |
| (event_range::print_as_text): Generalize the fallback logic for |
| special locations to also cover the case where source-printing |
| will fail, and show the location for that case. |
| (event_range::print_as_html): Likewise. |
| (event_range::can_print_source_p): New. |
| |
| 2026-01-22 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/123631 |
| * config/i386/i386-expand.cc (ix86_vector_duplicate_value): |
| Don't force CONST_INT to reg !TARGET_PREFER_BCST_FROM_INTEGER, |
| force it to mem instead. |
| * config/i386/i386.h (TARGET_PREFER_BCST_FROM_INTEGER): New macro. |
| * config/i386/x86-tune.def |
| (X86_TUNE_PREFER_BCST_FROM_INTEGER): New tune. |
| |
| 2026-01-21 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| PR target/122781 |
| * config/s390/vector.md: Don't emulate vec_cmpgtu for 128-bit |
| integers for VXE3. |
| |
| 2026-01-20 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/123380 |
| * combine.cc (gen_lowpart_for_combine): Don't try to create a |
| paradoxical SUBREG if it's going to be rejected by validate_subreg. |
| |
| 2026-01-20 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123626 |
| * config/riscv/vector.md (vxrm_mode): Handle CALL_INSNs, which set |
| the attribute to the new VXRM_MODE_CLOBBER state. |
| * config/riscv/riscv.cc (riscv_emit_mode_set): Don't emit code when |
| VXRM's state changes to VXRM_MODE_CLOBBER. |
| |
| 2026-01-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/123314 |
| * gimple-range.cc (gimple_ranger::range_on_entry): Do not check |
| ranger cache for an SSA_NAME with no BB. |
| (gimple_ranger::prefill_stmt_dependencies): Stop filling |
| dependencies when an out-of IL name is encountered. |
| |
| 2026-01-20 supers1ngular <supers1ngular@baylibre.com> |
| |
| * doc/extend.texi: Swap samp fields to fix overfull hbox. |
| * doc/invoke.texi: Ditto. |
| |
| 2026-01-20 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> |
| |
| PR c++/123639 |
| * doc/invoke.texi: Add @item for -Wsfinae-incomplete. |
| |
| 2026-01-20 Nathan Sidwell <nathan@acm.org> |
| |
| * diagnostics/context.cc (context::action_after_output): Print |
| invocation on ICE. |
| |
| 2026-01-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR sarif-replay/123056 |
| * libsarifreplay.cc (struct embedded_link): Move decl earlier. |
| (sarif_replayer::append_embeddded_link): New. |
| (sarif_replayer::make_plain_text_within_result_message): Move the |
| link-replay logic to the above, and skip the link part of |
| intra-sarif links. |
| |
| 2026-01-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.cc (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): |
| Return true when WITH_AVRLIBC. |
| |
| 2026-01-20 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.md: Update comment. |
| * config/aarch64/aarch64-simd.md: Change comment to refer to |
| aarch64.md. |
| * config/aarch64/aarch64-sme.md: Likewise. |
| * config/aarch64/aarch64-sve.md: Likewise. |
| * config/aarch64/aarch64-sve2.md: Likewise. |
| * config/aarch64/aarch64-sve-builtins.def: Update comment. |
| * config/aarch64/aarch64-sve-builtins-base.def: Update to refer |
| to aarch64-sve-builtins.def. |
| * config/aarch64/aarch64-sve-builtins-sme.def: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. |
| |
| 2026-01-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123724 |
| * config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): Ignore |
| debug stmts. |
| |
| 2026-01-20 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR rtl-optimization/123585 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) |
| <case VEC_SELECT>: Correct gcc_assert when optimizing a vec_select |
| of a vec_select with differing vector lengths. |
| |
| 2026-01-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/123584 |
| * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>): Use |
| aarch64_simd_rshift_imm predicate for rotate amount. |
| |
| 2026-01-20 Kyrylo Tkachov <ktkachov@nvidia.com> |
| |
| PR target/123584 |
| * config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Leave zero |
| rotate amounts as zero during expansion. |
| (*aarch64_xarqv2di_insn): Account for zero rotate amounts. Print # |
| in rotate immediate. |
| |
| 2026-01-20 Prachi Godbole <pgodbole@nvidia.com> |
| |
| * flag-types.h (enum lto_locality_heuristics): New enum. |
| * ipa-locality-cloning.cc (struct templ_info): New struct. |
| (struct locality_info): Add templ_info field. |
| (templ_hash_map): New hash_map. |
| (callee_templ_cmp): Ditto. |
| (static_profile_templ_cmp): Ditto. |
| (sort_templ_hashes_cmp): Ditto. |
| (order_templ_hashes): Ditto. |
| (locality_dc_template_p): Ditto. |
| (populate_templ_info): Ditto. |
| (create_locality_info): Call populate_templ_info. |
| (partition_callchain): Call callee_templ_cmp. |
| (locality_determine_static_order): Populate and sort templ_hash_map. |
| (locality_partition_and_clone): Handle lto_locality_heuristics. |
| (lc_execute): Initialize templ_hash_map. |
| * params.opt: New param. |
| |
| 2026-01-20 Prachi Godbole <pgodbole@nvidia.com> |
| |
| * ipa-locality-cloning.cc (struct locality_callee_info): New struct. |
| (struct locality_info): Ditto. |
| (loc_infos): Ditto. |
| (get_locality_info): New function. |
| (sort_all_callees_default): Ditto. |
| (callee_default_cmp): Ditto. |
| (populate_callee_locality_info): Ditto. |
| (populate_caller_locality_info): Ditto. |
| (create_locality_info): Ditto. |
| (adjust_recursive_callees): Access node_to_clone by reference. |
| (inline_clones): Access node_to_clone and clone_to_node by reference. |
| (clone_node_as_needed): Ditto. |
| (accumulate_incoming_edge_frequency): Remove function. |
| (clone_node_p): New function. |
| (partition_callchain): Refactor the function. |
| (is_entry_node_p): Call local_p (). |
| (locality_determine_ipa_order): Call create_locality_info (). |
| (locality_determine_static_order): Ditto. |
| (locality_partition_and_clone): Update call to partition_callchain () |
| according prototype. |
| (lc_execute): Allocate and free node_to_ch_info, node_to_clone, |
| clone_to_node. |
| |
| 2026-01-20 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123697 |
| * gimple-fold.cc (gimple_fold_partial_load_store): Use an |
| empty CTOR for a zero else value in .MASK_LOAD_LANES. |
| |
| 2026-01-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123729 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): Set |
| SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the reduction flows |
| across an abnomal edge. |
| |
| 2026-01-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-phinodes.h (phi_arg_index_from_use): Use gphi *. |
| (phi_arg_edge_from_use): New helper composing |
| phi_arg_index_from_use and gimple_phi_arg_edge. |
| |
| 2026-01-19 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR rtl-optimization/121787 |
| * config/riscv/riscv-vsetvl.cc (pre_vsetvl): Adjust call to |
| loop_optimizer_init to avoid making CFG changes. |
| |
| 2026-01-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.opt.urls: Regenerate. |
| * config/darwin.opt.urls: Likewise. |
| * config/dragonfly.opt.urls: Likewise. |
| * config/freebsd.opt.urls: Likewise. |
| * config/gnu-user.opt.urls: Likewise. |
| * config/hpux11.opt.urls: Likewise. |
| * config/i386/cygwin.opt.urls: Likewise. |
| * config/mingw/mingw.opt.urls: Likewise. |
| * config/netbsd.opt.urls: Likewise. |
| * config/openbsd.opt.urls: Likewise. |
| * config/rs6000/aix64.opt.urls: Likewise. |
| * config/rtems.opt.urls: Likewise. |
| |
| 2026-01-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (CPP_SUBTARGET_SPEC): Remove. |
| * config/sol2.opt (pthread): Ignore. |
| (pthreads): Likewise. |
| * config/i386/sol2.h (CPP_SPEC): Remove. |
| (SUBTARGET_CPU_EXTRA_SPECS): Remove cpp_subtarget. |
| * doc/invoke.texi (Solaris 2 Options, pthread): Remove. |
| |
| 2026-01-19 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/113666 |
| * fold-const-call.cc (fold_const_vec_extract): New function. |
| (fold_const_call, case CFN_VEC_EXTRACT): Call it. |
| * match.pd (IFN_VEC_EXTRACT): Handle extraction from a uniform |
| vector. |
| |
| 2026-01-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123061 |
| PR tree-optimization/123636 |
| * tree-ssa-loop-im.cc (fill_always_executed_in_1): Change |
| outer-to-inner to inner-to-outer iteration. Update inner |
| loop state only when always executed in an immediately |
| nested loop. |
| |
| 2026-01-19 Tobias Burnus <tburnus@baylibre.com> |
| |
| * doc/install.texi (GCN): gfx9-4-generic requires LLVM 20. |
| |
| 2026-01-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123602 |
| * tree-ssa-pre.cc (find_or_generate_expression): Do not |
| generate references to abnormal SSA names. |
| |
| 2026-01-19 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config.gcc: Deprecate -m31. |
| * doc/invoke.texi: Deprecate -m31. |
| |
| 2026-01-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123656 |
| * tree-vect-generic.cc (expand_vector_mult): Fix up alg_sub_factor |
| handling. Fix up formatting in alg_add_t_m2 handling. |
| |
| 2026-01-19 Richard Biener <rguenther@suse.de> |
| |
| PR target/123603 |
| * config/i386/i386.opt (-param=ix86-vect-compare-costs=): Add. |
| * config/i386/i386.cc (ix86_autovectorize_vector_modes): Honor it. |
| * doc/invoke.texi (ix86-vect-compare-costs): Document. |
| |
| 2026-01-19 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/117575 |
| * config/loongarch/lasx.md: Modify the range of operand1. |
| |
| 2026-01-18 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123645 |
| * tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Rewrite |
| the canonicalization of the args code based on e1/e2 being edges into |
| the join block. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| * config/darwin.opt.urls: Regenerated. |
| * config/dragonfly.opt.urls: Regenerated. |
| * config/freebsd.opt.urls: Regenerated. |
| * config/gnu-user.opt.urls: Regenerated. |
| * config/hpux11.opt.urls: Regenerated. |
| * config/i386/cygwin.opt.urls: Regenerated. |
| * config/i386/i386.opt.urls: Regenerated. |
| * config/mingw/mingw.opt.urls: Regenerated. |
| * config/nds32/nds32.opt.urls: Regenerated. |
| * config/netbsd.opt.urls: Regenerated. |
| * config/nvptx/nvptx.opt.urls: Regenerated. |
| * config/openbsd.opt.urls: Regenerated. |
| * config/pru/pru.opt.urls: Regenerated. |
| * config/riscv/riscv.opt.urls: Regenerated. |
| * config/rl78/rl78.opt.urls: Regenerated. |
| * config/rs6000/aix64.opt.urls: Regenerated. |
| * config/rs6000/rs6000.opt.urls: Regenerated. |
| * config/rs6000/sysv4.opt.urls: Regenerated. |
| * config/rtems.opt.urls: Regenerated. |
| * config/rx/rx.opt.urls: Regenerated. |
| * config/s390/s390.opt.urls: Regenerated. |
| * config/s390/tpf.opt.urls: Regenerated. |
| * config/sh/sh.opt.urls: Regenerated. |
| * config/sol2.opt.urls: Regenerated. |
| * config/sparc/sparc.opt.urls: Regenerated. |
| * config/v850/v850.opt.urls: Regenerated. |
| * config/vax/vax.opt.urls: Regenerated. |
| * config/vxworks.opt.urls: Regenerated. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/nds32/nds32.opt: Tidy documentation strings. |
| (mbig-endian, mlittle-endian): Remove "Undocumented" flag since |
| these are, in fact, documented. |
| * doc/invoke.texi (Option Summary) <NDS32 Options>: Document |
| -EB, -EL, -mabi, -mfloat-abi, -malways-align, -malign-functions, |
| -mfp-as-gp, -mext-dsp, -mext-fpu-fma, -mext-fpu-sp, -mext-fpu-dp, |
| -misr-vector-size, -misr-secure, -mcpu, -mconfig-fpu, |
| -mconfig-mul, -mconfig-register-ports, -mrelax-hint, |
| -msched-prolog-epilog, -mno-ret-in-naked-func, -malways-save-lp, |
| -munaligned-access, and -minline-asm-r15. |
| (NDS32 Options): Likewise. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/xtensa/uclinux.opt (elf2flt, elf2flt=): Mark as Undocumented. |
| * config/xtensa/xtensa.opt (mlra): Likewise. |
| * doc/invoke.texi (Option Summary) <Xtensa Options>: Remove |
| redundant negative forms plus obsolete -mfused-madd option. |
| (Xtensa Options): Likewise undocument -mfused-madd. List |
| negative form of -mforce-no-pic. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/i386/i386.opt (malign-functions): Mark undocumented/unused |
| option as Undocumented. |
| (malign-jumps): Likewise. |
| (malign-loops): Likewise. |
| (mbranch-cost, mforce-drap): Mark undocumented options likely |
| intended for developer use only as Undocumented. |
| (mstv): Correct sense of option in doc string. |
| (mavx512cd): Remove extra "and" from doc string. |
| (mavx512dq): Likewise. |
| (mavx512bw): Likewise. |
| (mavx512vl): Likewise. |
| (mavx512ifma): Likewise. |
| (mavx512bvmi): Likewise. |
| * doc/invoke.texi (Options Summary) <x86 Options>: Add |
| missing options. Correct whitespace and re-wrap long lines. |
| Remove -mthreads which is now classed as a MinGW option. |
| (Cygwin and MinGW Options): Replace existing documentation of |
| -mthreads with the more detailed text moved from x86 Options. |
| (x86 Options): Move introductory text about ISA extensions before |
| the individual options instead of after. Document them all |
| individually instead of as a group, and move immediately after |
| -march/-mtune documentation. Rewrap long lines. Document |
| interaction between SSE and AVX with -mfpmath=sse. Move -masm |
| documentation farther down instead of grouped with options |
| affecting floating-point behavior. Add missing @opindex |
| entries. Rewrite the -mdaz-ftz documentation. Document |
| -mstack-arg-probe. Copy-editing. Document -mstv. Remove |
| obsolete warning about -mskip-rax-setup in very old GCC versions. |
| Rewrite the -mapx-inline-asm-use-gpr32 documentation. |
| Document -mgather and -mscatter. Split -miamcu documentation |
| from -m32/-m64/etc. Rewrite -munroll-only-small-loops documentation. |
| Document -mdispatch-scheduler. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <VxWorks Options>: Add -mvthreads. |
| (VxWorks Options): Likewise. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/vms/vms.opt (map): Mark as Undocumented. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/visium/visium.opt (menable-trampolines): Mark Undocumented. |
| * doc/invoke.texi (Options Summary) <Visium Options>: Remove |
| redundant -mno- option. |
| (Visium Options): Copy-editing to put in active voice and add markup. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/vax/elf.opt (mno-asm-pic): Mark as Undocumented. |
| * doc/invoke.texi (Option Summary) <VAX Options>: Add |
| -mvaxc-alignment and -mqmath. |
| (VAX Options): Likewise. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/v850/v850.opt: Copy-edit documentation strings. |
| (mdebug): Make Undocumented. |
| (mno-strict-align): Add RejectNegative. |
| (mUS-bit-set): Make Undocumented. |
| * doc/invoke.texi (Option Summary) <V850 Options>: Remove |
| redundant -mno- forms from list. Add missing entries. |
| (V850 Options): Add @opindex for negative forms. Combine |
| entries for -mapp-regs and -mno-app-regs. Document -msmall-sld, |
| -mno-strict-align, and -mjump-tables-in-data-section. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <SPARC Options>: Remove |
| redundant -mno- forms from the list. Add -mptr32 and -mptr64. |
| (SPARC Options): Document -mptr32 and -mptr64. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * doc/invoke.texi (Option Summary) <Solaris 2 Options>: |
| Remove redundant negative option forms from list. List both |
| -pthread and -pthreads. |
| (Solaris 2 Options): Index and list the negative forms here. |
| Combine the two @table environments. Document both -pthread |
| and -pthreads. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/sh/sh.opt (mhitachi, mpadstruct): Mark obsolete options |
| as Undocumented. |
| * doc/invoke.texi (Option Summary) <SH Options>: Add missing |
| entries for -m4-* and other options. Remove redundant -mno- entries |
| and obsolete options. Add missing options -mfdpic, -mlra. |
| (SH Options): Combine entries for -mrenesas and -mno-renesas. |
| Index and list -mno- forms for other options that have them. |
| Remove documentation for obsolete options -mpadstruct and |
| -mfused-madd. Add documentation for -mlra. Copy-edit and wrap long |
| lines throughout the section. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/s390/s390.opt (mbranch-cost): Mark as Undocumented. |
| * config/s390/tpf.opt (mtpf-trace-hook-prologue-check=): Likewise. |
| (mtpf-trace-hook-prologue-target=): Likewise. |
| (mtpf-trace-hook-epilogue-check=): Likewise. |
| (mtpf-trace-hook-epilogue-target=): Likewise. |
| * doc/invoke.texi (Option Summary) <S/390 and zSeries Options>: |
| Remove redundant -mno- entries and add missing options. Make |
| entries with arguments match the syntax in the main documentation. |
| (S/390 and zSeries Options): Light copy-editing. Wrap overly-long |
| lines. Add missing @opindex entries. Add documention for |
| -mmain, -mno-pic-data-is-text-relative, -mindirect-branch, |
| -mindirect-branch-jump, -mindirect-branch-call, |
| -mfunction-return, -mfunction-return-mem, -mfunction-return-reg, |
| -mindirect-branch-table, -mfentry, -mrecord-mcount, -mnop-mcount, |
| -mpreserve-args, and -munaligned-symbols. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/rx/rx.opt (mgcc-abi, mrx-abi): Mark as Undocumented. |
| * doc/invoke.texi (Option Summary) <RX Options>: Remove redundant |
| entries for -mno-forms, correct name of -msmall-data-limit option, |
| add -mlra, clean up formatting. |
| (RX Options): Minor copy-editing, add -mlra. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| * config/rs6000/darwin.opt (Waltivec-long-deprecated): Mark as |
| Undocumented. |
| (faltivec, ffix-and-continue, findirect-data): Likewise. |
| * config/rs6000/rs6000.opt (mvrsave): Likewise. |
| * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback): Likewise. |
| (mshlib, mnewlib): Likewise. |
| * doc/invoke.texi (Option Summary) <RS/6000 and PowerPC Options>: |
| Document only one form of each option. Add missing options. |
| Correct whitespace. |
| (RS/6000 and PowerPC Options): Separately document -mpowerpc-gpopt, |
| -mpowerpc-gfxopt, -mpowerpc64, -mmfcrf, -mpopcntb, -mpopcntd, |
| -mfprnd, -mcmpb, and -mhard-dfp and move their documentation after |
| -mcpu=. Remove documentation for -mtoc which is unimplemented. |
| Add missing @opindex entries. Minor copy-editing and whitespace |
| fixes. |
| |
| 2026-01-17 Sandra Loosemore <sloosemore@baylibre.com> |
| |
| PR other/122243 |
| PR target/71340 |
| * doc/invoke.texi (Option Summary) <RL78 Options>: Remove |
| never-implemented -m64bit-doubles and -m32bit-doubles options. |
| Add missing entries for -mrelax, -mes0, -mmul=rl78, -mcpu=rl78, |
| and -mrl78. |
| (RL78 Options): Likewise. Add missing @opindex entries. |
| Light copy-editing. |
| |
| 2026-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123513 |
| * tree.cc (valid_new_delete_pair_p): If new_name[3] or delete_name[3] |
| is 'I', return false with *pcertain set to false rather than true. |
| |
| 2026-01-16 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * hierarchical_discriminator.cc (init_copyid_allocator): Walks the function |
| body to find existing max copyids per location. |
| (record_existing_copyid): New. |
| |
| 2026-01-16 Alice Carlotti <alice.carlotti@arm.com> |
| |
| PR target/123460 |
| * config.gcc: Accept hyphens in aarch64 --with-arch extensions. |
| |
| 2026-01-16 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/123145 |
| * timevar.def (TV_ANALYZER_SUPERGRAPH): Rename to... |
| (TV_ANALYZER_SUPERGRAPH_CREATION): ...this. |
| (TV_ANALYZER_SUPERGRAPH_FIXUP_LOCATIONS): New. |
| (TV_ANALYZER_SUPERGRAPH_SIMPLIFY): New. |
| (TV_ANALYZER_SUPERGRAPH_SORTING): New. |
| |
| 2026-01-16 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/123092 |
| * lra-constraints.cc (lra_constraints): Push insn on processing |
| stack after equivalence substitution. |
| |
| 2026-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR pch/110746 |
| * config/host-freebsd.cc: New file. |
| * config.host <*-*-freebsd*>: Use it. |
| * config/x-freebsd: New file. |
| |
| 2026-01-16 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123412 |
| * ipa-cp.cc (devirtualization_time_bonus): Do add the indirect |
| edge frequency at least once even for targets which cannot be |
| inlined. |
| |
| 2026-01-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123607 |
| * config/i386/i386.md (movhf_mask): Change constraint on |
| match_operand 2's second alternative from 0C to 0. |
| |
| 2026-01-16 Lulu Cheng <chenglulu@loongson.cn> |
| |
| PR target/123521 |
| * config/loongarch/loongarch.cc |
| (loongarch_expand_vector_init_same): Fixed a bug in the |
| vector initialization section.. |
| |
| 2026-01-16 David Guillen Fandos <david@davidgf.net> |
| |
| * config/mips/mips.h (ISA_HAS_FMIN_FMAX): Add R5900; |
| note that, R5900 is not IEEE754 fully compatiable. |
| |
| 2026-01-15 Marek Polacek <polacek@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/120775 |
| PR c++/123081 |
| PR c++/122634 |
| * attribs.cc (attribute_value_equal): Return false if either attribute |
| is ATTR_UNIQUE_VALUE_P. |
| (merge_attributes): Handle lists with ATTR_UNIQUE_VALUE_P values. |
| * doc/invoke.texi: Document -freflection. |
| * dwarf2out.cc (is_base_type) <case default>: Check |
| TREE_CODE >= LAST_AND_UNUSED_TREE_CODE instead of is_cxx_auto. |
| (gen_type_die_with_usage): For TREE_CODE >= LAST_AND_UNUSED_TREE_CODE |
| trees use use DW_TAG_unspecified_type. |
| * tree-core.h (struct tree_base): Update a comment. |
| * tree.h (ATTR_UNIQUE_VALUE_P): Define. |
| (BINFO_BASE_ACCESSES): Update the comment. |
| |
| 2026-01-15 Peter Damianov <peter0x44@disroot.org> |
| |
| PR driver/123504 |
| * config/i386/cygming.h (EXTRA_DEFAULT_COMPILERS): Comment out |
| .res spec to allow COFF files with .res extension to pass |
| through to the linker. |
| * config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise. |
| |
| 2026-01-15 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Honor hard |
| register constraints. |
| * ira.cc (ira_setup_alts): Ditto. |
| |
| 2026-01-15 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * doc/extend.texi: Document current limitations of hard register |
| constraints. |
| * stmt.cc (parse_output_constraint): Reject multiple hard |
| register constraints or a combination of hard register |
| constraints and regular register constraints in one alternative. |
| (parse_input_constraint): Ditto. |
| |
| 2026-01-15 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-simd.md: Add comment. |
| * config/aarch64/aarch64-sme.md: Likewise. |
| * config/aarch64/aarch64-sve-builtins-base.def: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sme.def: Likewise. |
| * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. |
| * config/aarch64/aarch64-sve-builtins.def: Likewise. |
| * config/aarch64/aarch64-sve.md: Likewise. |
| * config/aarch64/aarch64-sve2.md: Likewise. |
| * config/aarch64/aarch64.md: Likewise. |
| |
| 2026-01-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/sparc.h (TARGET_SUN_TLS): Remove. |
| * config/sparc/sol2.h (TARGET_SUN_TLS): Likewise. |
| * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Guard |
| with HAVE_GNU_AS. |
| (sparc_tls_got): Guard with !HAVE_GNU_AS. |
| (sparc_legitimize_tls_address): Likewise. |
| * config/sparc/sparc.md ("tls_delay_slot"): Likewise. |
| ("@tie_add<P:mode>"): Likewise. |
| |
| 2026-01-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/121045 |
| * tree-pretty-print.h (dump_location): Add new dump_flags_t |
| argument defaulted to TDF_NONE. |
| * tree-pretty-print.cc (dump_location): Add flags argument. Don't |
| print discriminator if TDF_COMPARE_DEBUG bit is set in flags. |
| (dump_block_node, dump_generic_node): Pass through flags to |
| dump_location. |
| * gimple-pretty-print.cc (dump_gimple_phi, pp_gimple_stmt_1, |
| dump_implicit_edges): Likewise. |
| (gimple_dump_bb_as_sarif_properties): Pass dump_flags to |
| dump_location. |
| * print-rtl.cc (rtx_writer::print_rtx_operand_code_L): If dump_flags |
| has TDF_COMPARE_DEBUG bit set, don't print discriminators. |
| |
| 2026-01-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h [!HAVE_GNU_AS] (ASM_CPU32_DEFAULT_SPEC): Use -m32. |
| (ASM_CPU64_DEFAULT_SPEC): Use -m64. |
| |
| 2026-01-15 Josef Melcr <josef.melcr@suse.com> |
| |
| PR ipa/122852 |
| * cgraph.cc (cgraph_node::verify_node): Verify that callback |
| edges are unreachable when the carrying edge is unreachable. |
| * ipa-fnsummary.cc (redirect_to_unreachable): Redirect callback |
| edges to unreachable when redirecting the carrying edge. |
| |
| 2026-01-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_sparc_ua_pcrel): Remove. |
| (gcc_cv_as_sparc_ua_pcrel_hidden): Likewise. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove |
| !HAVE_AS_SPARC_UA_PCREL, !HAVE_AS_SPARC_UA_PCREL_HIDDEN support. |
| * config/sparc/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. |
| * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Remove |
| HAVE_AS_SPARC_UA_PCREL guard. |
| |
| 2026-01-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/sparc.h (TARGET_TLS): Define as HAVE_AS_TLS. |
| Update comment. |
| (TARGET_SUN_TLS): Define as 0. |
| (TARGET_GNU_TLS): Remove. |
| * config/sparc/freebsd.h (TARGET_SUN_TLS): Remove. |
| (TARGET_GNU_TLS): Remove. |
| * config/sparc/linux.h: Likewise. |
| * config/sparc/linux64.h: Likewise. |
| * config/sparc/sol2.h (TARGET_SUN_TLS): Redefine as 1. |
| Guard with HAVE_AS_TLS && !HAVE_GNU_AS. |
| (TARGET_GNU_TLS): Remove. |
| * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Use |
| !TARGET_SUN_TLS in guard. |
| with !TARGET_SUN_TLS only. |
| * config/sparc/sparc.md ("tls_delay_slot"): Guard with |
| !TARGET_SUN_TLS. |
| |
| 2026-01-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/38118 |
| * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. |
| |
| 2026-01-15 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Assign |
| hierarchical discriminators for loop unrolling. |
| * cfgloopmanip.h (DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR): New flag. |
| * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Pass flag |
| to enable hierarchical discriminator assignment. |
| (try_peel_loop): Likewise. |
| |
| 2026-01-15 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * gimple-loop-versioning.cc (loop_versioning::version_loop): Assign |
| copyid discriminators to distinguish different loop versions. |
| |
| 2026-01-15 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * tree-vect-loop-manip.cc (vect_loop_versioning): Assign copyid |
| discriminators for vectorized and scalar loop versions. |
| * tree-vect-loop.cc (vect_transform_loop): Assign copyid |
| discriminators for vectorized and scalar loop versions. |
| |
| 2026-01-15 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * Makefile.in: Add hierarchical_discriminator.o to OBJS. |
| * hierarchical_discriminator.cc: New file. |
| * hierarchical_discriminator.h: New file. |
| * function.h (copyid_alloc): New. |
| * input.cc (location_with_discriminator_components): New function. |
| (get_discriminator_components_from_loc): Likewise. |
| * input.h (DISCR_BASE_BITS): New constant. |
| (DISCR_MULTIPLICITY_BITS): Likewise. |
| (DISCR_COPYID_BITS): Likewise. |
| (DISCR_UNUSED_BITS): Likewise. |
| (DISCR_BASE_MASK): Likewise. |
| (DISCR_MULTIPLICITY_MASK): Likewise. |
| (DISCR_COPYID_MASK): Likewise. |
| (DISCR_BASE_SHIFT): Likewise. |
| (DISCR_MULTIPLICITY_SHIFT): Likewise. |
| (DISCR_COPYID_SHIFT): Likewise. |
| (DISCR_BASE_MAX): Likewise. |
| (DISCR_MULTIPLICITY_MAX): Likewise. |
| (DISCR_COPYID_MAX): Likewise. |
| (location_with_discriminator_components): New function declaration. |
| (get_discriminator_components_from_loc): Likewise. |
| |
| 2026-01-15 DengJianbo <dengjianbo@loongson.cn> |
| |
| * config/loongarch/loongarch.md: Remove condition in template |
| movdi_symbolic_off64. |
| |
| 2026-01-14 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/123092 |
| * config/riscv/constraints.md (ZD): Disable when xmipscbop is disabled. |
| |
| 2026-01-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123542 |
| * ipa-cp.cc (ipa_value_from_jfunc): Always use |
| ipacp_value_safe_for_type. Bail out if parm_type is NULL. |
| |
| 2026-01-14 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/121240 |
| * config/aarch64/aarch64.md (mov<mode>): Expand FP immediates early. |
| * config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force |
| immediates <= 8 bytes to constdata. |
| (aarch64_rtx_costs): Increase cost of CONST_DOUBLE loaded from memory. |
| |
| 2026-01-14 Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| PR target/114528 |
| * config/aarch64/aarch64.cc (aarch64_check_mov_add_imm12): |
| New function to check and emit MOV+ADD/SUB immediates. |
| (aarch64_internal_mov_immediate): Add support for MOV+ADD/SUB |
| immediates. |
| |
| 2026-01-14 Tejas Belagod <tejas.belagod@arm.com> |
| |
| PR middle-end/123392 |
| * cfgexpand.cc (expand_debug_expr): Handle variable-length initializer |
| for CONSTRUCTOR. |
| |
| 2026-01-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/123115 |
| * defaults.h (EH_RETURN_DATA_REGNO): Add void (N) to the macro |
| definition inside of a comma expression before INVALID_REGNUM. |
| |
| 2026-01-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/120250 |
| * combine.cc (recog_for_combine): Don't try to put SET_SRC |
| into a constant pool if SET_DEST is pc_rtx. |
| |
| 2026-01-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123190 |
| * tree-vectorizer.h (vect_load_store_data): Add n_loads member. |
| * tree-vect-stmts.cc (get_load_store_type): Record the |
| number of required loads for permuted loads. |
| (vectorizable_load): Make use of this when costing loads |
| for VMAT_CONTIGUOUS[_REVERSE]. |
| |
| 2026-01-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123190 |
| * tree-vect-loop.cc (vect_analyze_loop_costing): Allow |
| vectorizing loops with a single scalar iteration iff the |
| vectorization factor is 1. |
| |
| 2026-01-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/123544 |
| * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) |
| <case AND>: Don't canonicalize (subreg (lshiftrt (x cnt)) low) into |
| (lshiftrt (subreg x low) cnt) if the SUBREG is paradoxical. |
| |
| 2026-01-14 Prathamesh Kulkarni <prathameshk@nvidia.com> |
| |
| * auto-profile.cc: (string_table::filenames): New method. |
| (function_instance::timestamp_): New member. |
| (function_instance::timestamp): New accessor for timestamp_ member. |
| (function_instance::set_timestamp): New function. |
| (function_instance::prop_timestamp): Likewise. |
| (function_instance::prop_timestamp_1): Likewise. |
| (function_instance::function_instance): Initialize timestamp_ to 0. |
| (function_instance::read_function_instance): Adjust prototype by |
| replacing head_count with toplevel param with default value true, and |
| stream in head_count and timestamp values from gcov file. |
| (autofdo::timestamp_info_map): New std::map. |
| (autofdo_source_profile::get_function_instance_by_decl): New argument |
| filename with default value NULL. |
| (autofdo_source_profile::read): Populate timestamp_info_map and |
| propagate timestamp to inlined instances from toplevel function. |
| (afdo_annotate_cfg): Assign node->tp_first_run based on |
| timestamp_info_map and bail out of annotation if |
| param_auto_profile_reorder_only is enabled. |
| * params.opt: New param auto-profile-reorder-only. |
| |
| 2026-01-14 Lili Cui <lili.cui@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS): |
| disable tight loop alignment for m_CORE_ATOM. |
| |
| 2026-01-14 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| * match.pd: remove 'fold_overflow_warning' references. |
| * tree.h (TYPE_OVERFLOW_UNDEFINED): remove note telling |
| that we must use warn_strict_overflow for every optimization |
| based on TYPE_OVERFLOW_UNDEFINED. |
| |
| 2026-01-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * match.pd (`(T1)(a bit_op (T2)b)`): Remove redundant |
| type checks. |
| |
| 2026-01-13 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com> |
| |
| PR tree-optimization/123109 |
| * fold-const.cc (fold_binary_loc): Remove (X >> C) NE/EQ 0 -> X LT/GE 0 |
| folding. |
| * match.pd (`(X >> C) NE/EQ 0 -> X LT/GE 0`): New pattern. |
| |
| 2026-01-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/119402 |
| * match.pd (`(a*zero_one_valued_p) & b`): New pattern. |
| |
| 2026-01-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123312 |
| * ifcvt.cc (noce_try_cond_zero_arith): Rename to ... |
| (noce_try_cond_arith): This. For AND try `cmp ? a : -1` |
| also to see which one cost less. |
| (noce_process_if_block): Handle the rename. |
| |
| 2026-01-13 Jonathan Yong <10walls@gmail.com> |
| |
| * config/i386/winnt-utf8.manifest: enable longPathAware. |
| |
| 2026-01-13 Jonathan Yong <10walls@gmail.com> |
| |
| PR driver/108865 |
| * config/i386/winnt-utf8.manifest: correct XML tags |
| |
| 2026-01-13 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR tree-optimization/123530 |
| * match.pd (reassociating xor to enable rotations): Verify constants |
| fit into a uhwi before trying to extract them as a uhwi. |
| |
| 2026-01-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123573 |
| * fold-const.cc (fold_vec_perm): Actually check, not assert, |
| that input and output vector element numbers agree. |
| * match.pd (vec_perm @0 @1 @2): Make sure element numbers |
| are the same when folding to an input vector and wrap that |
| inside a VIEW_CONVERT_EXPR. |
| |
| 2026-01-13 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123525 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): Use |
| converted source type for conversion bit field ref. |
| |
| 2026-01-13 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123301 |
| * tree-if-conv.cc (convert_scalar_cond_reduction): |
| Disallow vector types. |
| |
| 2026-01-13 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR rtl-optimization/123501 |
| PR rtl-optimization/123444 |
| * rtlanal.cc (nonzero_bits1): Use operand mode instead of |
| operation mode. |
| |
| 2026-01-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libstdc++/123396 |
| * configure.ac (gcc_cv_ld_use_as_needed_ldscript): New test. |
| (USE_LD_AS_NEEDED_LDSCRIPT): New AC_DEFINE. |
| * gcc.cc (LINK_LIBATOMIC_SPEC): Use "-latomic_asneeded" instead |
| of LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION |
| if USE_LD_AS_NEEDED_LDSCRIPT is defined. |
| (init_gcc_specs): Use "-lgcc_s_asneeded" instead of |
| LD_AS_NEEDED_OPTION " -lgcc_s " LD_NO_AS_NEEDED_OPTION |
| if USE_LD_AS_NEEDED_LDSCRIPT is defined. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2026-01-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123539 |
| * tree-vect-loop.cc (vect_create_epilog_for_reduction): |
| Use the compute vectype to pun down to smaller or element |
| size for by-element reductions. |
| |
| 2026-01-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use |
| build_bitint_type for BITINT_TYPE when maxsizei exceeds |
| MAX_FIXED_MODE_SIZE. |
| |
| 2026-01-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/117581 |
| * config/riscv/riscv.cc (riscv_bitint_type_info): New function. |
| (TARGET_C_BITINT_TYPE_INFO): Define. |
| |
| 2026-01-13 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/123484 |
| * config/i386/mmx.md (divv4hf3): Add TARGET_MMX_WITH_SSE to |
| the condition. |
| (cmlav4hf4): Ditto. |
| (cmla_conjv4hf4): Ditto. |
| (cmulv4hf3): Ditto. |
| (cmul_conjv4hf3): Ditto. |
| |
| 2026-01-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/122845 |
| PR tree-optimization/122843 |
| * match.pd (`(T1)(a bit_op (T2)b)`): Also |
| simplify if T1 is the same type as b and T2 is wider |
| type than T1. |
| |
| 2026-01-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123528 |
| * tree-vect-patterns.cc (vect_recog_bool_pattern): Restore |
| INTEGRAL_TYPE_P check but also allow SCALAR_FLOAT_TYPE_P. |
| |
| 2026-01-12 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/123543 |
| * ipa-cp.cc (propagate_bits_across_jump_function): Fix test for |
| recipient_only_p. |
| |
| 2026-01-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122830 |
| PR tree-optimization/122824 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize |
| aggregate copy handling when no variable offsets are |
| involved. |
| |
| 2026-01-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Only tentatively |
| accumulate extra_off when tentatively consuming components |
| during aggregate copy handling. |
| |
| 2026-01-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123175 |
| * match.pd (vec_perm @0 @1 @2): Fixup for inputs having a |
| different number of elements than the result. |
| * tree-vect-generic.cc (lower_vec_perm): Likewise. |
| |
| 2026-01-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/123523 |
| * simplify-rtx.cc (simplify_const_binary_operation): Use |
| DImode for VOIDmode shift and truncation counts if int_mode |
| is narrower than HOST_BITS_PER_WIDE_INT rather than |
| word_mode if int_mode it is narrower than BITS_PER_WORD. |
| |
| 2026-01-12 Dhruv Chawla <dhruvc@nvidia.com> |
| |
| * auto-profile.cc (autofdo_source_profile::offline_unrealized_inlines): |
| Add missing check for in_map. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * asm-toplevel.cc (mark_fragile_ref_by_asm): |
| Add marked_local to handle symbol as local. |
| (ipa_asm_heuristics): New. |
| (class pass_ipa_asm): New. |
| (make_pass_ipa_asm_lgen): New. |
| (make_pass_ipa_asm_wpa): New. |
| * common.opt: New flto-toplevel-asm-heuristics. |
| * passes.def: New asm passes. |
| * timevar.def (TV_IPA_LTO_ASM): New. |
| * tree-pass.h (make_pass_ipa_asm_lgen): New. |
| (make_pass_ipa_asm_wpa): New. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * asm-toplevel.cc (mark_fragile_ref_by_asm): New. |
| (struct constraint_data): New. |
| (walk_through_constraints): Handle .local definitions. |
| (analyze_toplevel_extended_asm): Propagate constraint_data. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * cgraph.h: Add must_remain_in_tu_*. |
| * cgraphclones.cc (cgraph_node::create_clone): Propagate |
| must_remain_in_tu_body. |
| * cif-code.def (MUST_REMAIN_IN_TU): New. |
| * ipa-icf.cc (sem_function::equals_wpa): Check |
| must_remain_in_tu_* |
| (sem_variable::equals_wpa): Likewise. |
| * ipa-inline-transform.cc (inline_call): Propagate |
| must_remain_in_tu_body. |
| * ipa-inline.cc (can_inline_edge_p): Check |
| must_remain_in_tu_body. |
| * lto-cgraph.cc (lto_output_node): Output must_remain_in_tu_* |
| (lto_output_varpool_node): Likewise. |
| (input_overwrite_node): Input must_remain_in_tu_*. |
| (input_varpool_node): Likewise. |
| * tree.cc (decl_address_ip_invariant_p): Check |
| must_remain_in_tu_name. |
| * varpool.cc (varpool_node::ctor_useable_for_folding_p): Check |
| must_remain_in_tu_body. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * lto-cgraph.cc (compute_ltrans_boundary): Add symbols |
| referenced from asm_nodes. |
| * lto-streamer-out.cc (lto_output): Move adding asm_nodes |
| to... |
| * passes.cc (ipa_write_summaries): ...here. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * ipa-free-lang-data.cc (find_decls_types_in_asm): New. |
| (free_lang_data_in_cgraph): Use find_decls_types_in_asm. |
| * lto-cgraph.cc (input_cgraph_1): Move asm to.. |
| (input_toplevel_asms): ..here. |
| * lto-streamer-in.cc (lto_input_toplevel_asms): |
| Allow extended asm. |
| * lto-streamer-out.cc (lto_output_toplevel_asms): |
| Allow extended asm. |
| (lto_output_toplevel_asms): Allow ASM_EXPR. |
| * lto-streamer.h (input_toplevel_asms): New. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| PR ipa/122458 |
| * Makefile.in: Add new file. |
| * cgraph.h (analyze_toplevel_extended_asm): New. |
| * cgraphunit.cc (symbol_table::finalize_compilation_unit): |
| Call analyze_toplevel_extended_asm. |
| * asm-toplevel.cc: New file. |
| |
| 2026-01-11 Michal Jires <mjires@suse.cz> |
| |
| * cgraph.cc (cgraph_node_cannot_be_local_p_1): Check ref_by_asm. |
| (cgraph_node::verify_node): Likewise. |
| * cgraph.h (cgraph_node::only_called_directly_or_aliased_p): |
| Likewise. |
| (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): |
| Likewise. |
| (varpool_node::can_remove_if_no_refs_p): Likewise. |
| (varpool_node::all_refs_explicit_p): Likewise. |
| * cgraphunit.cc (symtab_node::needed_p): Likewise. |
| (analyze_functions): Likewise. |
| * gimple-ssa-pta-constraints.cc (refered_from_nonlocal_fn): |
| Likewise. |
| (refered_from_nonlocal_var): Likewise. |
| (ipa_create_global_variable_infos): Likewise. |
| * ipa-comdats.cc (ipa_comdats): Likewise. |
| * ipa-visibility.cc (cgraph_externally_visible_p): Likewise. |
| (varpool_node::externally_visible_p): Likewise. |
| * ipa.cc (symbol_table::remove_unreachable_nodes): Likewise. |
| * lto-cgraph.cc (lto_output_node): Output ref_by_asm. |
| (lto_output_varpool_node): Likewise. |
| (input_overwrite_node): Input ref_by_asm. |
| (input_varpool_node): Likewise. |
| * symtab.cc (address_matters_1): Check ref_by_asm. |
| |
| 2026-01-11 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.cc (cris_rtx_costs) <POST_INC>: Handle POST_INC |
| as ZERO_EXTEND and SIGN_EXTEND, i.e. as an operator without cost. |
| |
| 2026-01-10 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/mcore/mcore.h (ASM_OUT_ADDR_DIFF_ELT): Remove. |
| |
| 2026-01-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390-modes.def (FLOAT_MODE): Add HF mode. |
| (VECTOR_MODE): Add V{1,2,4,8,16}HF modes. |
| * config/s390/s390.cc (s390_scalar_mode_supported_p): For 64-bit |
| targets z10 and newer support HF mode. |
| (s390_vector_mode_supported_p): Add HF mode. |
| (s390_register_move_cost): Keep HF mode operands in registers. |
| (s390_legitimate_constant_p): Support zero constant. |
| (s390_secondary_reload): For GPR to FPR moves a secondary reload |
| register is required. |
| (s390_secondary_memory_needed): GPR<->FPR moves don't require |
| secondary memory. |
| (s390_libgcc_floating_mode_supported_p): For 64-bit targets z10 |
| and newer support HF mode. |
| (s390_hard_regno_mode_ok): Allow HF mode for FPRs and VRs. |
| (s390_function_arg_float): Consider HF mode, too. |
| (s390_excess_precision): For EXCESS_PRECISION_TYPE_FLOAT16 |
| return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. |
| * config/s390/s390.md (movhf): Define. |
| (reload_half_gprtofpr_z10): Define. |
| (signbithf2): Define. |
| * config/s390/vector.md: Add new vector modes to various |
| iterators. |
| |
| 2026-01-10 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123417 |
| * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Always |
| protect latches. |
| |
| 2026-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123431 |
| * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call): |
| Punt if type-generic builtins with a single argument don't have |
| exactly one argument. For returns_arg punt if call doesn't have |
| at least one argument. |
| |
| 2026-01-09 Robin Dapp <rdapp@oss.qualcomm.com> |
| |
| PR tree-optimization/123414 |
| * tree-ssa-forwprop.cc (simplify_vector_constructor): |
| Use ssizetype as mask type. |
| |
| 2026-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/loongarch/genopts/gen-evolution.awk: Update |
| copyright year. |
| (copyright_header): Separate parts of Copyright word |
| with " " so that it doesn't get matched by update-copyright.py. |
| (gen_full_header, gen_full_source, gen_full_def): Include |
| 2026 year in the ranges. |
| |
| 2026-01-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * channels.h (gcc::topics::analyzer_events::subscriber): New |
| forward decl. |
| (compiler_channels::analyzer_events_channel): New field. |
| * doc/plugins.texi (PLUGIN_ANALYZER_INIT): Delete. |
| * plugin.cc (register_callback): Delete PLUGIN_ANALYZER_INIT. |
| (invoke_plugin_callbacks_full): Likewise. |
| * plugin.def (PLUGIN_ANALYZER_INIT): Delete this event. |
| |
| 2026-01-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Add tree-diagnostic-cfg.o. |
| (OBJS-libcommon): Add custom-sarif-properties/cfg.o, |
| diagnostics/digraphs-to-dot.o, and |
| diagnostics/digraphs-to-dot-from-cfg.o. |
| * cfghooks.cc: Define INCLUDE_VECTOR. Add includes of |
| "diagnostics/sarif-sink.h" and "custom-sarif-properties/cfg.h". |
| (dump_bb_as_sarif_properties): New. |
| * cfghooks.h (diagnostics::sarif_builder): New forward decl. |
| (json::object): New forward decl. |
| (cfg_hooks::dump_bb_as_sarif_properties): New callback field. |
| (dump_bb_as_sarif_properties): New decl. |
| * cfgrtl.cc (rtl_cfg_hooks): Populate the new callback |
| field with rtl_dump_bb_as_sarif_properties. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| * custom-sarif-properties/cfg.cc: New file. |
| * custom-sarif-properties/cfg.h: New file. |
| * diagnostics/digraphs-to-dot-from-cfg.cc: New file, partly |
| adapted from gcc/graph.cc. |
| * diagnostics/digraphs-to-dot.cc: New file. |
| * diagnostics/digraphs-to-dot.h: New file, based on material in... |
| * diagnostics/digraphs.cc: Include |
| "diagnostics/digraphs-to-dot.h". |
| (class conversion_to_dot): Rework and move to above. |
| (make_dot_graph_from_diagnostic_graph): Likewise. |
| (make_dot_node_from_digraph_node): Likewise. |
| (make_dot_edge_from_digraph_edge): Likewise. |
| (conversion_to_dot::get_dot_id_for_node): Likewise. |
| (conversion_to_dot::has_edges_p): Likewise. |
| (digraph::make_dot_graph): Use to_dot::converter::make and invoke |
| the result to make the dot graph. |
| * diagnostics/digraphs.h (digraph:get_all_nodes): New accessor. |
| * diagnostics/html-sink.cc |
| (html_builder::m_per_logical_loc_graphs): New field. |
| (html_builder::add_graph_for_logical_loc): New. |
| (html_sink::report_digraph_for_logical_location): New. |
| * diagnostics/sarif-sink.cc (sarif_array_of_unique::get_element): |
| New. |
| (sarif_builder::report_digraph_for_logical_location): New. |
| (sarif_sink::report_digraph_for_logical_location): New. |
| * diagnostics/sink.h: Include "diagnostics/logical-locations.h". |
| (sink::report_digraph_for_logical_location): New vfunc. |
| * diagnostics/text-sink.h |
| (text_sink::report_digraph_for_logical_location): New. |
| * doc/invoke.texi (fdiagnostics-add-output): Clarify wording. |
| Distinguish between scheme-specific vs GCC-specific keys, and add |
| "cfgs" as the first example of the latter. |
| * gimple-pretty-print.cc: Include "cfghooks.h", "json.h", and |
| "custom-sarif-properties/cfg.h". |
| (gimple_dump_bb_as_sarif_properties): New. |
| * gimple-pretty-print.h (diagnostics::sarif_builder): New forward |
| decl. |
| (json::object): Likewise. |
| (gimple_dump_bb_as_sarif_properties): New. |
| * graphviz.cc (get_compass_pt_from_string): New |
| * graphviz.h (get_compass_pt_from_string): New decl. |
| * libsarifreplay.cc (sarif_replayer::handle_graph_object): Fix |
| overlong line. |
| * opts-common.cc: Define INCLUDE_VECTOR. |
| * opts-diagnostic.cc: Define INCLUDE_LIST. Include |
| "diagnostics/sarif-sink.h", "tree-diagnostic-sink-extensions.h", |
| "opts-diagnostic.h", and "pub-sub.h". |
| (class gcc_extra_keys): New class. |
| (opt_spec_context::opt_spec_context): Add "client_keys" param and |
| pass to dc_spec_context. |
| (handle_gcc_specific_keys): New. |
| (try_to_make_sink): New. |
| (gcc_extension_factory::singleton): New. |
| (handle_OPT_fdiagnostics_add_output_): Rework to use |
| try_to_make_sink. |
| (handle_OPT_fdiagnostics_set_output_): Likewise. |
| * opts-diagnostic.h: Include "diagnostics/sink.h". |
| (class gcc_extension_factory): New. |
| * opts.cc: Define INCLUDE_LIST. |
| * print-rtl.cc: Include "dumpfile.h", "cfghooks.h", "json.h", and |
| "custom-sarif-properties/cfg.h". |
| (rtl_dump_bb_as_sarif_properties): New. |
| * print-rtl.h (diagnostics::sarif_builder): New forward decl. |
| (json::object): Likewise. |
| (rtl_dump_bb_as_sarif_properties): New decl. |
| * tree-cfg.cc (gimple_cfg_hooks): Use |
| gimple_dump_bb_as_sarif_properties for new callback field. |
| * tree-diagnostic-cfg.cc: New file, based on material in graph.cc. |
| * tree-diagnostic-sink-extensions.h: New file. |
| * tree-diagnostic.cc: Define INCLUDE_LIST. Include |
| "tree-diagnostic-sink-extensions.h". |
| (compiler_ext_factory): New. |
| (tree_diagnostics_defaults): Set gcc_extension_factory::singleton |
| to be compiler_ext_factory. |
| |
| 2026-01-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * channels.h: New file. |
| * context.cc: Define INCLUDE_LIST. Include "channels.h". |
| (gcc::context::context): Create m_channels. |
| (gcc::context::~context): Delete it. |
| * context.h (struct compiler_channels): New forward decl. |
| (gcc::context::get_channels): New accessor. |
| (gcc::context::m_channels): New field. |
| * passes.cc: Define INCLUDE_LIST. Include "topics/pass-events.h" |
| and "channels.h". |
| (execute_one_pass): If the global context's pass_events_channel |
| has subscribers, publish before_pass and after_pass events to it. |
| * topics/pass-events.h: New file. |
| |
| 2026-01-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add pub-sub.o. |
| * pub-sub.cc: New file. |
| * pub-sub.h: New file. |
| * selftest-run-tests.cc (selftest::run_tests): Call |
| selftest::pub_sub_cc_tests. |
| * selftest.h (selftest::pub_sub_cc_tests): New decl. |
| |
| 2026-01-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR target/123457 |
| * config/aarch64/aarch64-sve-builtins.cc (struct registered_function_hasher): |
| Change base class to ggc_ptr_hash. |
| (initial_indexes): Mark with GTY. |
| (function_table): Likewise. |
| (handle_arm_sve_h): Allocate function_table from ggc instead of heap. |
| |
| 2026-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi (-x): Add c++-system-module, objc-cpp-output, |
| objc++-cpp-output, adascil, adawhy, modula-2, modula-2-cpp-output, |
| rust, algol68 and lto as further possible option arguments. |
| |
| 2026-01-09 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/123121 |
| * lra-remat.cc (bad_for_rematerialization_p): Consider div/mod ops. |
| (operand_to_remat): Exclude rematerialization of insns with |
| multiple sets. |
| |
| 2026-01-09 Peter Bergner <bergner@tenstorrent.com> |
| |
| PR target/123492 |
| * config/riscv/riscv-cores.def (RISCV_CORE)<tt-ascalon-d8>: Add missing |
| extensions via use of rva23s64 profile and adding zkr, smaia, smmpm, |
| smnpm, smrnmi, smstateen, ssaia, ssstrict, svadu. |
| |
| 2026-01-09 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.h (class ipcp_bits_lattice): New members set_recipient_only, |
| recipient_only_p and m_recipient_only. |
| (class ipcp_vr_lattice): Likewise. |
| (ipcp_vr_lattice::init): Initialize also m_recipient_only. |
| * ipa-cp.cc (ipcp_bits_lattice::print): Adjust printting to also |
| print the new flag. |
| (ipcp_vr_lattice::print): Likewise. |
| (ipcp_vr_lattice::set_recipient_only): New function. |
| (ipcp_bits_lattice::set_recipient_only): Likewise. |
| (set_all_contains_variable): New parameter MAKE_SIMPLE_RECIPIENTS, set |
| bits and vr lattices to recibient only insted to bottom when it is |
| true. |
| (initialize_node_lattices): Pass true to the second parameter of |
| set_all_contains_variable. |
| (propagate_bits_across_jump_function): Treat recipient_only source |
| lattices like bottom. |
| (propagate_vr_across_jump_function): Likewise. |
| (ipcp_store_vr_results): Skip non-local nodes. |
| |
| 2026-01-09 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.cc (good_cloning_opportunity_p): Dump a message when |
| bailing out early too. |
| (find_more_scalar_values_for_callers_subset): Rename to |
| find_scalar_values_for_callers_subset, collect constants regardless of |
| what is already in the vector. Remove dumping. |
| (find_more_contexts_for_caller_subset): Rename to |
| find_contexts_for_caller_subset, collect contexts regardless of what |
| is already in the vector. Remove dumping. |
| (find_aggregate_values_for_callers_subset): Rename to |
| find_aggregate_values_for_callers_subset_gc, implement using new |
| functions. |
| (find_aggregate_values_for_callers_subset_1): New function. |
| (find_aggregate_values_for_callers_subset): Likewise. |
| (copy_known_vectors_add_val): Removed. |
| (dump_reestimation_message): New function. |
| (decide_about_value): Remove formal parameter avals, compute it |
| independently, and use it to estimate local cloning effects. |
| (struct cloning_opportunity_ranking): New type. |
| (compare_cloning_opportunities): New function. |
| (cloning_opportunity_ranking_evaluation): Likewise. |
| (decide_whether_version_node): Pre-sort candidates for cloning before |
| really evaluating them. Calculate context independent values only |
| when considering versioning for all contexts. |
| (ipcp_val_agg_replacement_ok_p): Renamed to |
| ipcp_val_replacement_ok_p, check also non-aggregate values. |
| |
| 2026-01-09 Alexandre Oliva <oliva@gnu.org> |
| |
| PR target/119430 |
| * config/arm/arm.cc (arm_function_ok_for_sibcall): Disable |
| sibcalls for long-calls that use all call-clobbered |
| general-purpose registers, including the static chain. |
| |
| 2026-01-09 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (print_operand): Align %cN with %N. |
| * config/s390/s390.md: Remove comment. |
| |
| 2026-01-09 Filip Kastl <fkastl@suse.cz> |
| |
| PR c/123212 |
| * opts.cc: Enable -fbit-tests and -fjump-tables at -Og. |
| |
| 2026-01-09 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (aarch64_expand_pragma_builtin): Add case for FMMLA. |
| * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): |
| Add new __ARM_FEATURE_X macros. |
| * config/aarch64/aarch64-simd-pragma-builtins.def |
| (vmmlaq_f16_mf8): New intrinsic. |
| (vmmlaq_f32_mf8): Likewise. |
| * config/aarch64/aarch64-simd.md |
| (@aarch64_<insn><VDQ_HSF_FMMLA:mode>): New instruction. |
| * config/aarch64/aarch64-sve-builtins-base.cc: Update mmla_impl |
| for new instructions. |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (struct mmla_def): Add support for the new widening forms. |
| * config/aarch64/aarch64-sve-builtins-sve2.def (svmmla) Add new |
| intrinsics. |
| * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_narrow_s): |
| Fix comment. |
| * config/aarch64/aarch64-sve2.md |
| (@aarch64_sve2_<sve_fp_op><SVE_FULL_HSF_FMMLA:mode><VNx16QI_ONLY:mode>): New instruction. |
| (@aarch64_sve2_<sve_fp_op><VNx4SF_ONLY:mode><VNx8HF_ONLY:mode>): Likewise. |
| * config/aarch64/aarch64.h (TARGET_F8F32MM): New macro. |
| (TARGET_F8F16MM): Likewise. |
| (TARGET_SVE_F16F32MM): Likewise. |
| * config/aarch64/iterators.md (insn): Add fmmla entry. |
| (VDQ_HSF_FMMLA): New iterator. |
| (SVE_FULL_HSF_FMMLA): Likewise. |
| |
| 2026-01-09 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Remove |
| TARGET_HAVE_MVE condition. |
| (class arm_target_switcher): New. |
| (arm_init_mve_builtins): Remove calls to |
| arm_init_simd_builtin_types and |
| arm_init_simd_builtin_scalar_types. Switch to MVE isa flags. |
| (arm_init_neon_builtins): Remove calls to |
| arm_init_simd_builtin_types and |
| arm_init_simd_builtin_scalar_types. |
| (arm_need_mve_mode_regs): New. |
| (arm_need_neon_mode_regs): New. |
| (arm_target_switcher::arm_target_switcher): New. |
| (arm_target_switcher::~arm_target_switcher): New. |
| (arm_init_builtins): Call arm_init_simd_builtin_scalar_types and |
| arm_init_simd_builtin_types. Always call arm_init_mve_builtins |
| and arm_init_neon_builtins. |
| |
| 2026-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/123489 |
| * config/i386/i386-builtin.def (__builtin_ia32_cvttsd2sis64_round, |
| __builtin_ia32_cvttsd2usis64_round, __builtin_ia32_cvttss2sis64_round, |
| __builtin_ia32_cvttss2usis64_round): Require OPTION_MASK_ISA_64BIT. |
| |
| 2026-01-09 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR rtl-optimization/123491 |
| * ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar |
| integer modes for the inner mode of the subreg. |
| |
| 2026-01-09 Shreya Munnangi <smunnangi1@ventanamicro.com> |
| Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/121778 |
| * match.pd: Add pattern to recognize rotate with one or more |
| bits flipped via xor. |
| * config/sh/sh.md (*rotcl); New variant which handles the output |
| we get after the match.pd change above. |
| |
| 2026-01-09 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/andes-23-series.md: Clamp reservations to 7c. |
| * config/riscv/andes-25-series.md: Likewise. |
| * config/riscv/andes-45-series.md: Likewise. |
| * config/riscv/generic.md: Likewise. |
| * config/riscv/mips-p8700.md: Likewise. |
| * config/riscv/sifive-7.md: Likewise. |
| * config/riscv/spacemit-x60.md: Likewise. |
| |
| 2026-01-09 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| PR gcov-profile/123019 |
| * auto-profile.cc (auto_profile): Call execute_fixup_cfg. |
| |
| 2026-01-09 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| PR ipa/123383 |
| * cgraph.cc (cgraph_edge::get_next_speculative_id): Check |
| lto_stmt_uid in get_next_speculative_id. |
| |
| 2026-01-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/111817 |
| * stmt.cc (parse_input_constraint): For matching construct, goto |
| before the loop without changing j instead of break. Remove comment |
| about that problem. |
| |
| 2026-01-08 Robin Dapp <rdapp@ventanamicro.com> |
| |
| PR target/122846 |
| * config/riscv/riscv-opts.h (enum rvv_max_lmul_enum): Add |
| RVV_CONV_DYNAMIC. |
| (TARGET_MAX_LMUL): Ditto. |
| * config/riscv/riscv-string.cc (use_vector_stringop_p): Use |
| LMUL1 for RVV_CONV_DYNAMIC. |
| (expand_rawmemchr): Ditto. |
| (expand_strcmp): Ditto. |
| (check_vectorise_memory_operation): Ditto. |
| * config/riscv/riscv-vector-costs.cc (get_smallest_mode): |
| New function. |
| (compute_lmul_from_conversion_ratio): Calculate LMUL from |
| largest/smallest type. |
| (costs::has_unexpected_spills_p): Split. |
| (costs::compute_live_ranges_and_lmul): Compute smallest type and |
| call new function. |
| (costs::cleanup_live_range_data): New function. |
| (costs::compute_conversion_dynamic_lmul): New function. |
| (costs::record_potential_unexpected_spills): Use new function. |
| (costs::better_main_loop_than_p): Allow appropriate LMUL. |
| * config/riscv/riscv-vector-costs.h: Declare. |
| * config/riscv/riscv.opt: New option |
| -mrvv-max-lmul=conv-dynamic. |
| |
| 2026-01-08 Qing Zhao <qing.zhao@oracle.com> |
| |
| * doc/extend.texi: Update doc to support pointers inside structures. |
| |
| 2026-01-08 Olivier Hainque <hainque@adacore.com> |
| Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc [x86_64-*-*]: Match *abi32 target, default to m32 |
| abi. Accept 32 or m32 for --with-abi. |
| |
| 2026-01-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Fix typo in |
| documentation of -flang-info-module-cmi. |
| |
| 2026-01-08 Aleksandar Rakic <aleksandar.rakic@htecgroup.com> |
| |
| * Makefile.in: Add with_multi_buildlist for multilib |
| configuration control. Pass an additional argument to |
| genmultilib indicating whether --with-multi-buildlist is set |
| (true or false). Use with_multi_buildlist to filter |
| multilib directories in fixinc_list. |
| * configure: Regenerate. |
| * configure.ac: Restrict the installed fixedincludes multilibs. |
| * configure.tgt: New file. |
| * doc/install.texi: Add --with-multi-buildlist configure option |
| for multilib filtering. |
| * genmultilib: Document the new eleventh argument indicating |
| whether --with-multi-buildlist configure option is set (true or |
| false). Update argument parsing to include this flag before |
| enable_multilib. Modify reuse rule validation: |
| - Keep the original error for reuse of nonexistent multilibs |
| when --with-multi-buildlist is not used. |
| - Suppress the error only when the new configure option is |
| active, allowing reuse rules to reference multilibs that are |
| intentionally excluded from the build. |
| |
| 2026-01-08 Tomas Glozar <tglozar@gmail.com> |
| |
| * config/ia64/ia64.cc (MAX_VECT_LEN): Set to 16 from 8. |
| |
| 2026-01-08 Robin Dapp <rdapp.gcc@gmail.com> |
| |
| PR target/123268 |
| * gimple-match-exports.cc (convert_conditional_op): Check if |
| orig_op->type and type of else value match. |
| |
| 2026-01-08 Richard Sandiford <rdsandiford@googlemail.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/122793 |
| * tree-vect-slp.cc (vect_add_slp_permutation): Document the existing |
| identity_offset parameter. Handle identities that take from the |
| second input rather than the first. |
| |
| 2026-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123310 |
| * tree-ssa-sccvn.cc (vn_reference_lookup_3): Properly |
| test against unknown offset. |
| |
| 2026-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123298 |
| * tree-ssa-alias.h (get_continuation_for_phi): Take a gphi *, |
| add is_backedge hook argument. |
| (walk_non_aliased_vuses): Add is_backedge hook argument. |
| * tree-ssa-alias.cc (maybe_skip_until): Adjust. |
| (get_continuation_for_phi): Use new hook to classify an |
| edge into the PHI as backedge. |
| (walk_non_aliased_vuses): Adjust. |
| * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): |
| Likewise. |
| * ipa-prop.cc (determine_known_aggregate_parts): Likewise. |
| * tree-ssa-scopedtables.cc (avail_exprs_stack::lookup_avail_expr): |
| Likewise. |
| * tree-ssa-pre.cc (translate_vuse_through_block): Likewise. |
| * tree-ssa-sccvn.cc (vn_bb_to_rpo): Make BB to RPO order |
| mapping accessible from new hook. |
| (do_rpo_vn_1): Likewise. |
| (vn_is_backedge): New hook to classify edge. |
| (vn_reference_lookup_pieces): Adjust. |
| (vn_reference_lookup): Likewise. |
| |
| 2026-01-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.cc (vectorizable_shift): Improve missing |
| optab or optab support messages. |
| (vectorizable_operation): Likewise. |
| |
| 2026-01-08 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> |
| |
| * config/s390/s390.cc (s390_logical_operator_ok_p): Test for |
| volatile memory. |
| (s390_mem_constraint): Remove volatile condition. |
| * config/s390/s390.md (*andc_split_<mode>): Test for volatile |
| memory. |
| |
| 2026-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/123107 |
| * fold-const.cc (fold_binary_loc): Guard (v >> CST) == { 0, 0.. } |
| to v < { 0, 0.. } folding. |
| |
| 2026-01-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| PR tree-optimization/123382 |
| * tree-if-conv.cc: Reject VEC_PERM_EXPR for factoring |
| if it is the mask and they are constant. |
| |
| 2026-01-08 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * cse.cc (cse_find_path): Change follow_jumps to bool. |
| |
| 2026-01-07 Tomas Glozar <tglozar@gmail.com> |
| |
| PR target/121535 |
| * config/ia64/ia64.cc (TARGET_ZERO_CALL_USED_REGS): Override |
| function with target-specific one. |
| (struct gcc_target): Move to end of file. |
| (ia64_zero_call_used_regs): Add target-specific function. |
| |
| 2026-01-07 Xinhui Yang <cyan@cyano.uk> |
| |
| * config.gcc: limit -lunwind usage by testing if the system |
| libunwind is being used. |
| |
| 2026-01-07 Xi Ruoyao <xry111@xry111.site> |
| |
| PR target/123320 |
| * config/loongarch/loongarch.md (<optab><mode>3): Only expand |
| using psuedos when can_create_pseudo_p (). |
| (addsi3): Likewise. |
| |
| 2026-01-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/123300 |
| * gimple-range-gori.cc (gori_map::exports_and_deps): New. |
| * gimple-range-gori.h (exports_and_deps): New prototype. |
| (FOR_EACH_GORI_EXPORT_AND_DEP_NAME): New macro. |
| * tree-vrp.cc (remove_unreachable:remove_unreachable): Initialize |
| m_tmp bitmap. |
| (remove_unreachable:~remove_unreachable): Dispose of m_tmp bitmap. |
| (remove_unreachable:fully_replaceable): Move from static function |
| and check reachability of exports and dependencies. |
| |
| 2026-01-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/123319 |
| * value-range.cc (irange::intersect): If there is a bitmask, snap |
| subranges after creating them. |
| |
| 2026-01-07 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/102486 |
| * match.pd (`popcount (X & -X) -> -X != 0`): New pattern. |
| |
| 2026-01-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/119291 |
| PR rtl-optimization/121773 |
| * combine.cc (try_combine): Check that SET_DEST (setN) is neither |
| modified_between_p nor reg_used_between_p instead of just not |
| reg_used_between_p or pc_rtx. |
| |
| 2026-01-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/123390 |
| * config/arm/arm.cc (arm_gen_constant): Fix types of HWI literals. |
| (arm_const_double_prefer_rsbs_rsc): Likewise. |
| |
| 2026-01-07 Alfie Richards <alfie.richards@arm.com> |
| |
| * config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Add parsing |
| for priority arguments. |
| (aarch64_process_target_version_attr): Update call to |
| aarch64_parse_fmv_features. |
| (get_feature_mask_for_version): Update call to |
| aarch64_parse_fmv_features. |
| (aarch64_compare_version_priority): Add logic to order by priority if present. |
| (aarch64_functions_b_resolvable_from_a): Update call to |
| aarch64_parse_fmv_features. |
| (aarch64_mangle_decl_assembler_name): Update call to |
| aarch64_parse_fmv_features. |
| (dispatch_function_versions): Add logic to sort by priority. |
| (aarch64_same_function_versions): Add diagnostic if invalid use of |
| priority syntax. |
| (aarch64_merge_decl_attributes): Add logic to make suer priority |
| arguments are preserved. |
| (aarch64_check_target_clone_version): Update call to |
| aarch64_parse_fmv_features. |
| |
| 2026-01-07 Alfie Richards <alfie.richards@arm.com> |
| |
| * target.def (TARGET_OPTION_SAME_FUNCTION_VERSIONS): Update |
| documentation. |
| * tree.cc (disjoint_version_decls): Change for new NULL parameter |
| to same_function_versions. |
| (diagnose_versioned_decls): Update to pass diagnostic location to |
| same_function_versions. |
| * doc/tm.texi: Regenerate. |
| * config/aarch64/aarch64.cc (aarch64_same_function_versions): |
| Update hook impl for new arguments. |
| * config/riscv/riscv.cc (riscv_same_function_versions): Update |
| hook impl for new arguments. |
| * config/loongarch/loongarch.cc |
| (loongarch_same_function_versions): Likewise |
| * hooks.cc (hook_stringslice_stringslice_unreachable): Changed |
| to... |
| (hook_stringslice_consttree_stringslice_consttree_unreachable): |
| ...this and add extra arguments. |
| * hooks.h (hook_stringslice_stringslice_unreachable): Changed |
| to... |
| (hook_stringslice_consttree_stringslice_consttree_unreachable): |
| and add extra arguments. |
| |
| 2026-01-07 Martin Jambor <mjambor@suse.cz> |
| |
| * params.opt (param_ipa_cp_sweeps): New. |
| * doc/invoke.texi (ipa-cp-sweeps): New. |
| * ipa-cp.cc (max_number_sweeps): New. |
| (get_max_overall_size): New parameter cur_sweep, use it and the total |
| number of sweeps from the NODE to calculate the result too. |
| (ipcp_propagate_stage): Get the maximum number of sweeps specified in |
| the corresponding parameter of any possibly affected node. |
| (good_cloning_opportunity_p): Add parameter cur_sweep, adjust the |
| threshold according to it. |
| (decide_about_value): New parameter cur_sweep, pass it to |
| get_max_overall_size and to good_cloning_opportunity_p. |
| (decide_whether_version_node): New parameter cur_sweep, pass it to |
| decide_about_value and get_max_overall_size. Make sure the node is |
| not dead. |
| (ipcp_decision_stage): Make multiple sweeps over the call-graph. |
| |
| 2026-01-07 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_node_params): Remove member do_clone_for_all_contexts. |
| (ipa_node_params::ipa_node_params): Do not initialize |
| do_clone_for_all_contexts. |
| * ipa-cp.cc (gather_context_independent_values): Remove parameter |
| calculate_aggs, calculate them always. |
| (estimate_local_effects): Move the decision whether to clone for |
| all context... |
| (decide_whether_version_node): ...here. Fix dumps. |
| (decide_about_value): Adjust alignment in dumps. |
| |
| 2026-01-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123315 |
| * tree-vect-loop.cc (vect_analyze_loop_2): Reset |
| LOOP_VINFO_USING_DECREMENTING_IV_P before retrying. |
| |
| 2026-01-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123221 |
| * tree-vect-loop.cc (vectorizable_reduction): When we did not |
| find the non-conversion reduction operation, bail. |
| |
| 2026-01-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/123316 |
| * tree-vect-loop.cc (vectorizable_reduction): Detect missing |
| PHI patterns for bools. |
| |
| 2026-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR debug/123259 |
| * toplev.cc (process_options): Guard CTF non-C warning by |
| -Wcomplain-wrong-lang. |
| * doc/invoke.texi (Warning Options, -Wno-complain-wrong-lang): |
| Document effect on -gctf/-gsctf. |
| |
| 2026-01-07 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| PR tree-optimization/123374 |
| * gimple-ssa-warn-access.cc (pass_waccess::set_pass_param): Add |
| a second parameter. |
| (pass_waccess::check_call): Skip access checks for waccess2. |
| (pass_waccess::execute): Drop initialization of |
| M_CHECK_DANGLING_P. |
| * passes.def: Adjust. |
| |
| 2026-01-06 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tree-profile.cc (tree_profiling): Do not use atomic operations |
| if they are not available. Try to use at least partial atomic |
| updates as a fallback. |
| |
| 2026-01-06 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| * config/xtensa/xtensa.h (EPILOGUE_USES): New macro definition. |
| * config/xtensa/xtensa.md (return): |
| Remove '(use (reg:SI A0_REG))' from the template description, and |
| reload_completed from the condition. |
| (sibcall_epilogue): Remove emitting '(use (reg:SI A0_REG))'. |
| |
| 2026-01-06 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * tree-if-conv.cc (ifcvt_can_predicate): Add check for |
| normal builtins. |
| |
| 2026-01-06 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (enum aarch64_builtins): New builtin flag. |
| (aarch64_init_pcdphint_builtins): New builtin function. |
| (aarch64_expand_pldir_builtin): Expander for new intrinsic. |
| (aarch64_general_expand_builtin): Call new expander. |
| * config/aarch64/aarch64.md |
| (aarch64_pldir): New pattern for instrinsic. |
| * config/aarch64/arm_acle.h |
| (__attribute__): New call to builtin. |
| (__pldir): Likewise. |
| |
| 2026-01-06 Richard Ball <Richard.Ball@arm.com> |
| |
| * config/aarch64/aarch64-builtins.cc |
| (enum aarch64_builtins): Add new flags. |
| (aarch64_init_pcdphint_builtins): Create new Builtin functions. |
| (aarch64_general_init_builtins): Call init for PCDPHINT. |
| (aarch64_expand_stshh_builtin): Expander for new intrinsic. |
| (aarch64_general_expand_builtin): Call new expander. |
| * config/aarch64/aarch64-c.cc |
| (aarch64_update_cpp_builtins): New feature. |
| * config/aarch64/aarch64.h (TARGET_PCDPHINT): Likewise. |
| * config/aarch64/arm_acle.h |
| (__atomic_store_with_stshh): Generic to call builtins. |
| * config/aarch64/atomics.md |
| (@aarch64_atomic_store_stshh<mode>): New pattern for intrinsic. |
| * config/aarch64/iterators.md: New UNSPEC. |
| |
| 2026-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/121192 |
| * expr.cc (store_constructor) <VECTOR_TYPE>: Disable the special |
| trick for uniform boolean vectors with integer modes and single-bit |
| mask entries on big-endian platforms. |
| |
| 2026-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/install.texi (Prerequisites): Remove reference to Ada in |
| conjunction with GCC 9.5 and adjust its GCC version requirement. |
| |
| 2026-01-06 Jakub Jelinek <jakub@redhat.com> |
| Marco Falke <falke.marco@gmail.com> |
| |
| PR tree-optimization/123351 |
| * tree-object-size.cc (object_sizes_set_temp): Separate calls to |
| make_ssa_name to ensure deterministic execution order. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * tree-vect-stmts.cc (vectorizable_call): Handle trapping math. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * tree-if-conv.cc (ifcvt_can_predicate): Support gimple_call_builtin_p. |
| (if_convertible_stmt_p, predicate_rhs_code, |
| predicate_statements): Likewise. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * match.pd: Add COND_FMA to COND_FMS rewrite rules. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * doc/md.texi: Document them |
| * internal-fn.cc (FOR_EACH_COND_FN_PAIR, internal_fn_else_index): Add |
| SQRT, CEIL, FLOOR, ROUND and RINT. |
| * internal-fn.def (IFN_COND_SQRT, IFN_COND_CEIL, IFN_COND_FLOOR, |
| IFN_COND_ROUND, IFN_COND_RINT, IFN_COND_LEN_SQRT, IFN_COND_LEN_CEIL, |
| IFN_COND_LEN_FLOOR, IFN_COND_LEN_ROUND, IFN_COND_LEN_RINT): New. |
| * optabs.def (cond_rint_optab, cond_sqrt_optab, cond_round_optab, |
| cond_ceil_optab, cond_floor_optab, cond_len_rint_optab, |
| cond_len_sqrt_optab, cond_len_round_optab, cond_len_ceil_optab, |
| cond_len_floor_optab): New. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/122103 |
| * gimple.cc (gimple_could_trap_p_1): Handle __builtin_ calls. |
| |
| 2026-01-05 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv-string.cc (expand_block_move): Restore using |
| inlined memcpy/memmove for unknown counts if the param hasn't been |
| specified. |
| (expand_vec_setmem): Similarly for memset. |
| |
| 2026-01-05 Pan Li <pan2.li@intel.com> |
| |
| PR target/123317 |
| * config/riscv/autovec-opt.md: Take zero_extend for |
| both the vwaddu and vwsubu wx pattern. |
| |
| 2026-01-05 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * config/aarch64/aarch64-sme.md |
| (aarch64_sme_write_zt): Add TARGET_STREAMING requirement. |
| (aarch64_sme_lut_zt): Ditto. |
| |
| 2026-01-05 Alice Carlotti <alice.carlotti@arm.com> |
| |
| * doc/invoke.texi: Fix incorrect function name. |
| |
| 2026-01-05 Pan Li <pan2.li@intel.com> |
| |
| * tree-vect-slp.cc (vec_slp_has_scalar_use): Adjust the |
| depth_limit from 2 to 3. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/121290 |
| * config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): New. |
| (aarch64_vector_costs): Add m_num_dup_stmts and m_num_total_stmts. |
| (aarch64_vector_costs::add_stmt_cost): Use them. |
| (adjust_body_cost): Likewise. |
| |
| 2026-01-05 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/123017 |
| * config/aarch64/aarch64-json-schema.h: Add br_mispredict_factor. |
| * config/aarch64/aarch64-json-tunings-parser-generated.inc |
| (parse_branch_costs): Add br_mispredict_factor. |
| * config/aarch64/aarch64-json-tunings-printer-generated.inc |
| (serialize_branch_costs): Add br_mispredict_factor. |
| * config/aarch64/aarch64-protos.h (struct cpu_branch_cost): Add |
| br_mispredict_factor. |
| * config/aarch64/aarch64.cc (aarch64_max_noce_ifcvt_seq_cost, |
| aarch64_noce_conversion_profitable_p, |
| TARGET_MAX_NOCE_IFCVT_SEQ_COST, |
| TARGET_NOCE_CONVERSION_PROFITABLE_P): New. |
| * config/aarch64/tuning_models/generic.h (generic_branch_cost): Add |
| br_mispredict_factor. |
| * config/aarch64/tuning_models/generic_armv8_a.h: Remove |
| generic_armv8_a_branch_cost and use generic_branch_cost. |
| |
| 2026-01-04 Andrew Pinski <andrew.pinski@oss.qualcomm.com> |
| |
| * configure: Regenerate. |
| |
| 2026-01-04 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * config/riscv/riscv.cc (riscv_conditional_register_usage): Revert |
| patch that made VXRM a global register. |
| |
| 2026-01-04 Keith Packard <keithp@keithp.com> |
| |
| * config.gcc: Add clause for picolibc. |
| * config/picolibc-spec.h: New file. |
| * config/picolibc.opt: Likewise. |
| * config/picolibc.opt.urls: Likewise. |
| * configure.ac: Add support for --with-picolibc. |
| * configure: Rebuilt. |
| * doc/invoke.texi: Document picolibc options. |
| * doc/tm.texi.in (LIBC_CPP_SPEC): Document. |
| (LIBC_LINK_SPEC): Similarly. |
| * doc/tm.texi: Rebuilt. |
| * gcc.cc (LIBC_CPP_SPEC): Provide default definition. |
| (LIBC_LINK_SPEC): Likewise. |
| (cpp_spec): Include LIBC_CPP_SPEC. |
| (link_spec): Similarly for LIBC_LINK_SPEC. |
| |
| 2026-01-04 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| * doc/contrib.texi: Add Kazumoto & Oleg. |
| |
| 2026-01-04 Richard Braun <rbraun@sceen.net> |
| |
| * config/c6x/c6x-sched.md.in (mpydp_m_N__CROSS_, |
| mpyspdp_m_N__CROSS_, mpysp2dp_m_N__CROSS_): Update reservations. |
| * config/c6x/c6x-sched.md: Regenerated. |
| * config/c6x/c6x.md (m1dp, m1spdp, m2dp, m2spdp): New CPU units. |
| |
| 2026-01-04 Kalvis Duckmanton <kalvisd@gmail.com> |
| |
| * config/host-netbsd.cc (netbsd_gt_pch_use_address): Support PCH |
| loading at addresses other than its preferred address. |
| * config/host-openbsd.cc (openbsd_gt_pch_use_address): Likewise. |
| |
| 2026-01-04 Daniel Barboza <daniel.barboza@oss.qualcomm.com> |
| |
| PR tree-optimization/122608 |
| * match.pd (`(c ? a : b) op d -> c ? (a op d) : (b op d)`): New |
| pattern. |
| (`d op (c ? a : b) -> c ? (d op a) : (d op b)`): Likewise |
| |
| 2026-01-04 Jeff Law <jeffrey.law@oss.qualcomm.com> |
| |
| PR target/123010 |
| * simplify-rtx.cc (simplify_binary_operation_1, case ASHIFT): Simplify |
| case where a left shift of the sign extracted field can be turned into |
| a sign extension of a left shift. |
| |
| 2026-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/123372 |
| * tree-ssa-math-opts.cc |
| (build_saturation_binary_arith_call_and_replace): Pass type of op_0 |
| rather than type of lhs as second argument to |
| direct_internal_fn_supported_p. |
| |
| 2026-01-02 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/aarch64/aarch64-sve-builtins-shapes.cc |
| (INCLUDE_ALGORITHM): Define. |
| |
| 2026-01-01 Kugan Vivekanandarajah <kvivekananda@nvidia.com> |
| |
| * cgraph.cc (cgraph_edge::get_next_speculative_id): New. |
| * cgraph.h (cgraph_edge::get_next_speculative_id): New. |
| * ipa-devirt.cc (ipa_devirt): Use get_next_speculative_id |
| in make_speculative. |
| |
| 2026-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.cc (process_command): Update copyright notice dates. |
| * gcov-dump.cc (print_version): Ditto. |
| * gcov.cc (print_version): Ditto. |
| * gcov-tool.cc (print_version): Ditto. |
| * gengtype.cc (create_file): Ditto. |
| * doc/cpp.texi: Bump @copying's copyright year. |
| * doc/cppinternals.texi: Ditto. |
| * doc/gcc.texi: Ditto. |
| * doc/gccint.texi: Ditto. |
| * doc/gcov.texi: Ditto. |
| * doc/install.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| |
| |
| Copyright (C) 2026 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |