1 2024-04-16 Andrew Pinski <quic_apinski@quicinc.com>
4 * doc/extend.texi (Using Vector Instructions): Add that
5 the base_types could be a typedef of them.
7 2024-04-16 Richard Biener <rguenther@suse.de>
9 PR tree-optimization/114736
10 * tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge):
11 Do not consider VEC_PERM_EXPRs as PHI use.
13 2024-04-16 Richard Biener <rguenther@suse.de>
15 PR tree-optimization/114733
16 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject
17 neg induction vectorization of single element vectors.
19 2024-04-16 Jakub Jelinek <jakub@redhat.com>
21 * tree.cc (array_type_nelts): Ensure 2 spaces after . in comment
23 (build_variant_type_copy): Likewise.
24 (tree_check_failed): Likewise.
25 (build_atomic_base): Likewise.
26 * ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite
27 article rather than a.
29 2024-04-16 Fei Gao <gaofei@eswincomputing.com>
31 * config/riscv/riscv.cc (riscv_expand_conditional_move):
32 replace or with add when expanding zicond if possible.
34 2024-04-16 Alexandre Oliva <oliva@adacore.com>
37 * ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
39 (maybe_make_indirect): Restore volatility in dereferences.
41 2024-04-16 Lulu Cheng <chenglulu@loongson.cn>
43 * config/loongarch/loongarch.opt.urls: Regenerate.
44 * config/mn10300/mn10300.opt.urls: Likewise.
45 * config/msp430/msp430.opt.urls: Likewise.
46 * config/nds32/nds32-elf.opt.urls: Likewise.
47 * config/nds32/nds32-linux.opt.urls: Likewise.
48 * config/nds32/nds32.opt.urls: Likewise.
49 * config/pru/pru.opt.urls: Likewise.
50 * config/riscv/riscv.opt.urls: Likewise.
51 * config/rx/rx.opt.urls: Likewise.
52 * config/sh/sh.opt.urls: Likewise.
53 * config/sparc/sparc.opt.urls: Likewise.
54 * doc/invoke.texi: Add indexes for some compilation options.
56 2024-04-15 Georg-Johann Lay <avr@gjlay.de>
58 * config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
59 avr16du32, avr32du14, avr32du20, avr32du28, avr32du32.
60 * doc/avr-mmcu.texi: Rebuild.
62 2024-04-15 Robin Dapp <rdapp@ventanamicro.com>
65 * config/riscv/autovec.md: Add VLS.
67 2024-04-15 Richard Biener <rguenther@suse.de>
69 PR gcov-profile/114715
70 * gimplify.cc (gimplify_switch_expr): Set the location of the
73 2024-04-15 H.J. Lu <hjl.tools@gmail.com>
76 * config/i386/i386.md (isa): Add apx_ndd_64.
78 (*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
79 signed integer constant and enable jO only for apx_ndd_64.
80 (*add<dwi>3_doubleword_cc_overflow_1): Likewise.
81 (*and<dwi>3_doubleword): Likewise.
82 (*<code><dwi>3_doubleword): Likewise.
84 2024-04-15 Tamar Christina <tamar.christina@arm.com>
86 PR tree-optimization/114403
87 * tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
88 peeling for gaps and early break.
90 2024-04-15 Jakub Jelinek <jakub@redhat.com>
93 * attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
94 decls with NULL TREE_TYPE.
96 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com>
98 * config/aarch64/aarch64-option-extensions.def: Add RCPC to
100 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
103 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com>
105 * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
108 2024-04-12 Will Schmidt <will_schmidt@linux.ibm.com>
109 Peter Bergner <bergner@linux.ibm.com>
112 * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
114 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
116 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
117 (ISA_2_7_MASKS_SERVER): Likewise.
118 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
119 comment. Use OPTION_MASK_POWER8 and TARGET_POWER8.
120 * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
121 * config/rs6000/rs6000.md (define_attr "isa"): Add p8.
122 (define_attr "enabled"): Handle it.
123 (define_insn "prefetch"): Use TARGET_POWER8.
124 * config/rs6000/rs6000.opt (mpower8-internal): New.
126 2024-04-12 Jason Merrill <jason@redhat.com>
127 Patrick Palka <ppalka@redhat.com>
130 * doc/invoke.texi: Document -Wcast-user-defined.
132 2024-04-12 Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
134 * config/riscv/riscv.opt.urls: Regenerated.
136 2024-04-12 Andrew Pinski <quic_apinski@quicinc.com>
138 PR tree-optimization/114666
139 * match.pd (`!a?b:c`): Reject signed types for the condition.
140 (`a?~t:t`): Likewise.
142 2024-04-12 Richard Sandiford <richard.sandiford@arm.com>
144 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
145 all tiles to have the same suffix.
147 2024-04-12 Pan Li <pan2.li@intel.com>
149 * config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
150 as the return value instead of unsigned.
151 (riscv_vector_element_bitsize): Ditto.
152 (riscv_vector_required_min_vlen): Ditto.
153 (riscv_validate_vector_type): Take int type for local variable(s).
155 2024-04-12 Jakub Jelinek <jakub@redhat.com>
157 * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
158 returns_twice diagnostics translatable.
160 2024-04-12 Jakub Jelinek <jakub@redhat.com>
163 * gimple-iterator.cc (gsi_safe_insert_before): Only use
164 edge_before_returns_twice_call if bb_has_abnormal_pred.
165 (gsi_safe_insert_seq_before): Likewise.
166 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
167 push to m_returns_twice_calls if bb_has_abnormal_pred.
169 2024-04-12 Pan Li <pan2.li@intel.com>
172 * config/riscv/riscv.cc (riscv_function_value_regno_p): Add
173 TARGET_VECTOR predicate for V_RETURN regno.
175 2024-04-11 David Faust <david.faust@oracle.com>
177 * btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
178 fix potentially looking up wrong type for asm debug comment info.
180 (btf_asm_datasec_type_ref): ... This. New.
181 (btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
182 (btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
183 (btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
185 2024-04-11 David Faust <david.faust@oracle.com>
187 * btfout.cc (btf_asm_sou_member): Always emit non-representable
188 bitfield members as having 'void' type. Refactor slightly.
190 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
192 * config/aarch64/aarch64-option-extensions.def:
193 Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
194 and "ls64_accdata" FMV features.
196 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
198 * config/aarch64/aarch64-option-extensions.def:
199 Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
200 "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
201 "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
204 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
206 * config/aarch64/aarch64-option-extensions.def:
207 Fix "rmd"->"rdm", and add FMV to "rdma".
208 * config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
210 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
212 * config/aarch64/aarch64.cc (compare_feature_masks):
213 Use ARRAY_SIZE and >=0 for iteration bounds.
214 (aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
216 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
218 * config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
220 2024-04-11 Gaius Mulley <gaiusmod2@gmail.com>
222 * doc/standards.texi (Language Standards Supported by GCC):
223 Add Modula-2 language section.
225 2024-04-11 Jakub Jelinek <jakub@redhat.com>
228 * asan.cc (asan_emit_stack_protection): Assert offsets[0] is
229 zero if there is no stack protect guard, otherwise
230 -ASAN_RED_ZONE_SIZE. If alignb > ASAN_RED_ZONE_SIZE and there is
231 stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
232 the top of the stack into account when computing base_align_bias.
233 Recompute use_after_return_class from asan_frame_size + base_align_bias
234 and set to -1 if that would overflow to 11.
236 2024-04-11 Richard Biener <rguenther@suse.de>
238 PR tree-optimization/109596
239 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
240 debug stmts to nonexit->dest rather than exit->dest.
242 2024-04-11 Richard Biener <rguenther@suse.de>
245 * tree-inline.cc (copy_bb): Key on the remapped stmt
246 to identify gconds to have condition coverage data remapped.
248 2024-04-11 Pan Li <pan2.li@intel.com>
251 * config/riscv/riscv.cc (riscv_function_value_regno_p): New func
252 impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
253 (riscv_get_raw_result_mode): New func imple for hook
254 TARGET_GET_RAW_RESULT_MODE.
255 (TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
256 (TARGET_GET_RAW_RESULT_MODE): Ditto.
257 * config/riscv/riscv.h (V_RETURN): New macro for vector return.
258 (GP_RETURN_FIRST): New macro for the first GPR in return.
259 (GP_RETURN_LAST): New macro for the last GPR in return.
260 (FP_RETURN_FIRST): Diito but for FPR.
261 (FP_RETURN_LAST): Ditto.
262 (FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
263 TARGET_FUNCTION_VALUE_REGNO_P.
265 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com>
267 * btfout.cc (btf_asm_type): Do not skip emitting members of
270 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com>
273 * dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
274 call to ctf_add_slice. Use CTF_K_UNKNOWN type if fail.
276 2024-04-10 Marek Polacek <polacek@redhat.com>
279 * config/i386/i386-options.cc (ix86_option_override_internal): Use
280 opts_set rather than checking == CF_NONE.
282 2024-04-10 David Malcolm <dmalcolm@redhat.com>
284 * doc/analyzer.texi: Various tweaks.
286 2024-04-10 Richard Biener <rguenther@suse.de>
288 PR tree-optimization/114672
289 * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
290 allow mode-precision results.
292 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
294 * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
295 (aarch64_bitint_type_info): New function.
296 (aarch64_return_in_memory_1): Return large _BitInt's in memory.
297 (aarch64_function_arg_alignment): Adapt to correctly return the ABI
298 mandated alignment of _BitInt(N) where N > 128 as the alignment of
300 (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
302 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
304 * config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
305 (aarch64_layout_arg): Don't emit diagnostics for types involving
308 2024-04-10 Jakub Jelinek <jakub@redhat.com>
311 * tree-core.h (enum annot_expr_kind): Add
312 annot_expr_maybe_infinite_kind enumerator.
313 * gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
314 * tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
315 (replace_loop_annotate): Likewise. Move loop->finite_p initialization
316 before the replace_loop_annotate_in_block calls.
317 * tree-pretty-print.cc (dump_generic_node): Handle
318 annot_expr_maybe_infinite_kind.
320 2024-04-10 Richard Biener <rguenther@suse.de>
323 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org>
325 PR rtl-optimization/101523
326 * combine.cc (try_combine): Don't do a 2-insn combination if
327 it does not in fact change I2.
329 2024-04-10 Peter Bergner <bergner@linux.ibm.com>
332 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
333 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
334 OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete redundant
335 OPTION_MASK_DIRECT_MOVE usage. Delete TARGET_DIRECT_MOVE dead code.
336 (rs6000_opt_masks): Neuter the "direct-move" option.
337 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
338 OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete useless
340 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
341 OPTION_MASK_DIRECT_MOVE.
342 (OTHER_VSX_VECTOR_MASKS): Likewise.
343 (POWERPC_MASKS): Likewise.
344 * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
346 2024-04-10 Hongyu Wang <hongyu.wang@intel.com>
348 * config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
350 (sha1msg2): Likewise.
351 (sha1nexte): Likewise.
352 (sha1rnds4): Likewise.
353 (sha256msg1): Likewise.
354 (sha256msg2): Likewise.
355 (sha256rnds2): Likewise.
356 (aes<aesklvariant>u8): Use "jm" instead of "m" for memory
358 (*aes<aeswideklvariant>u8): Likewise.
359 (*encodekey128u32): Use "jr" instead of "r" for register
361 (*encodekey256u32): Likewise.
363 2024-04-09 Juergen Christ <jchrist@linux.ibm.com>
365 * config/s390/s390.cc (expand_perm_as_replicate): Implement.
366 (vectorize_vec_perm_const_1): Call new function.
367 * config/s390/vx-builtins.md (vec_splat<mode>): Change to...
368 (@vec_splat<mode>): ...this.
370 2024-04-09 David Faust <david.faust@oracle.com>
373 * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
374 generating BTF for BPF CO-RE target.
376 2024-04-09 Richard Ball <richard.ball@arm.com>
378 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
379 Add functions_nulls parameter to pragma_handlers.
380 * config/aarch64/aarch64-protos.h: Likewise.
381 * config/aarch64/aarch64-sve-builtins.h
382 (enum handle_pragma_index): Add enum to count
383 number of pragmas to be handled.
384 * config/aarch64/aarch64-sve-builtins.cc
385 (GTY): Add global variable for initial indexes
386 and change overload_names to an array.
387 (function_builder::function_builder):
388 Add pragma handler information.
389 (function_builder::add_function):
390 Add code for overwriting previous
391 registered_functions entries.
392 (add_unique_function):
393 Use an array to register overload_names
394 for both pragma handler modes.
395 (add_overloaded_function): Likewise.
397 Add functions_nulls parameter to pragma_handlers.
399 Initialize pragma handler information.
400 (handle_arm_neon_sve_bridge_h): Likewise.
401 (handle_arm_sme_h): Likewise.
403 2024-04-09 Richard Biener <rguenther@suse.de>
406 * lto-wrapper.cc (merge_flto_options): Add force argument.
407 (merge_and_complain): Do not force here.
408 (run_gcc): But here to make the link-time -flto option override
409 any compile-time one.
411 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
413 * config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
415 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
417 PR gcov-profile/114601
418 * tree-profile.cc (condition_uid): Guard fn->cond_uids access.
420 2024-04-09 Jakub Jelinek <jakub@redhat.com>
423 * config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
424 (enabled): Remove aes isa check, add vaes_avx512vl.
425 * config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
426 jm instead of m for second alternative and emit {evex} prefix
427 for it if !TARGET_AES. Use noavx,avx,vaes_avx512vl isa attribute.
428 (vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
429 vaesenclast_<mode>): Add second alternative with x instead of v
432 2024-04-09 Gaius Mulley <gaiusmod2@gmail.com>
434 * doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
435 Remove -fdebug-trace-api.
436 Add -fm2-debug-trace=.
438 2024-04-09 Yang Yujie <yangyujie@loongson.cn>
441 * config/loongarch/loongarch.cc (loongarch_reg_init):
442 Reinitialize the loongarch_regno_mode_ok cache.
443 (loongarch_option_override): Same.
444 (loongarch_save_restore_target_globals): Restore target globals.
445 (loongarch_set_current_function): Restore the target contexts
447 (TARGET_SET_CURRENT_FUNCTION): Define.
448 * config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
449 switchable target context.
450 * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
451 Initialize all builtin functions at startup.
452 (loongarch_expand_builtin): Turn assertion of builtin availability
455 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
458 * tree-profile.cc (instrument_decisions): Generate constant
459 at the start of loop.
461 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
464 * tree-inline.cc (copy_bb): Copy cond_uids into callee.
465 (prepend_lexical_block): Remove outdated comment.
466 (add_local_variables): Remove bad cond_uids copy.
468 2024-04-09 Jakub Jelinek <jakub@redhat.com>
470 * expr.cc (convert_mode_scalar): Fix duplicated words in comment;
471 into into -> it into.
472 * function.h (function::cond_uids): Fix duplicated words in comment;
474 * config/riscv/riscv-vector-costs.cc
475 (costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
476 model model -> model.
477 * config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
478 duplicated words in comment; for for -> for.
479 * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
480 duplicated words in comment; more more -> more.
481 * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
482 duplicated words in comment; be be -> be.
483 * tree-profile.cc (masking_vectors): Fix duplicated words in comment;
484 has has -> has, the the -> the.
485 * value-range.cc (irange::set_range_from_bitmask): Fix duplicated
486 words in comment; the the -> the.
487 * gcov.cc (add_condition_counts): Fix duplicated words in comment;
489 * vr-values.cc (get_scev_info): Fix duplicated words in comment;
491 * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
493 * mode-switching.cc (single_succ_confluence_n): Fix duplicated words
494 in comment; the the -> the.
495 * tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
496 comment; can can -> we can.
497 * gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
498 in comment; it it -> it is.
499 * tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
501 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
502 words in comment; if if -> if.
503 * doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
504 Change take to takes.
505 * doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
507 (-minline-memops-threshold): Likewise.
509 2024-04-09 Jakub Jelinek <jakub@redhat.com>
512 * gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
513 before returns_twice calls as is, don't push them into arg_stmts
514 vector/move to edges.
516 2024-04-09 Sergey Bugaev <bugaevc@gmail.com>
518 * config.gcc: Recognize aarch64*-*-gnu* targets.
519 * config/aarch64/aarch64-gnu.h: New file.
521 2024-04-09 Sergey Bugaev <bugaevc@gmail.com>
523 * config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
524 * config/gnu.h: ...to here.
526 2024-04-09 Richard Biener <rguenther@suse.de>
529 * gimple-range.cc (enable_ranger): Initialize the global
531 (disable_ranger): Release it.
533 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
535 * config.gcc (aarch64-*-rtems*): Add target makefile fragment
537 * config/aarch64/t-aarch64-rtems: New file.
539 2024-04-09 H.J. Lu <hjl.tools@gmail.com>
542 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
543 __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
545 2024-04-09 Kewen Lin <linkw@linux.ibm.com>
546 Andrew Pinski <quic_apinski@quicinc.com>
549 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
550 wrong align passed to function build_aligned_type.
551 * tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
552 assertion to ensure align_unit should be positive.
553 * tree.cc (build_qualified_type): Update function comments.
555 2024-04-08 Uros Bizjak <ubizjak@gmail.com>
557 PR rtl-optimization/112560
558 * combine.cc (try_combine): Replace cc_use_loc with the entire
559 new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
560 Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
562 * config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
565 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com>
567 * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
569 * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
570 * doc/invoke.texi (Optimize Options): Document it.
572 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com>
574 * doc/sourcebuild.texi (Effective-Target Keywords): Document
575 'asm_goto_with_outputs'. Add comment to 'lra'.
577 2024-04-08 Martin Jambor <mjambor@suse.cz>
580 * ipa-icf-gimple.h (func_checker): New members
581 safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
582 and m_total_scalarization_limit.
583 (func_checker::func_checker): Initialize new member variables.
584 * ipa-icf-gimple.cc: Include tree-sra.h.
585 (func_checker::func_checker): Initialize new member variables.
586 (func_checker::safe_for_total_scalarization_p): New function.
587 (func_checker::compare_operand): Use the new function.
588 * tree-sra.h (sra_get_max_scalarization_size): Declare.
589 (sra_total_scalarization_would_copy_same_data_p): Likewise.
590 * tree-sra.cc (prepare_iteration_over_array_elts): New function.
591 (class sra_padding_collecting): New.
592 (sra_padding_collecting::record_padding): Likewise.
593 (scalarizable_type_p): Rename to totally_scalarizable_type_p. Add
594 ability to record padding when requested.
595 (totally_scalarize_subtree): Split out gathering information necessary
596 to iterate over array elements to prepare_iteration_over_array_elts.
597 Fix errornous early exit.
598 (analyze_all_variable_accesses): Adjust the call to
599 totally_scalarizable_type_p. Move determining of total scalariation
601 (sra_get_max_scalarization_size): ...here.
602 (check_ts_and_push_padding_to_vec): New function.
603 (sra_total_scalarization_would_copy_same_data_p): Likewise.
605 2024-04-08 Martin Jambor <mjambor@suse.cz>
608 * ipa-prop.h (class ipa_vr): Declare new overload of a member function
610 (ipa_jump_functions_equivalent_p): Declare.
611 * ipa-prop.cc (ipa_vr::equal_p): New function.
612 (ipa_agg_pass_through_jf_equivalent_p): Likewise.
613 (ipa_agg_jump_functions_equivalent_p): Likewise.
614 (ipa_jump_functions_equivalent_p): Likewise.
615 * ipa-cp.h (values_equal_for_ipcp_p): Declare.
616 * ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
617 * ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
618 ipa-cp.h and ipa-prop.h.
619 (func_checker::compare_gimple_call): Comapre jump functions.
621 2024-04-08 Richard Sandiford <richard.sandiford@arm.com>
624 * config/aarch64/aarch64-sve-builtins-base.cc
625 (svusdot_impl::expand): Fix botched attempt to swap the operands
628 2024-04-08 Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
630 * config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
631 * config.gcc: Add --with-tls configuration option to change the
633 * config/riscv/riscv.h: Add TARGET_TLSDESC determined from
634 -mtls-dialect and with_tls defaults.
635 * config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
637 * config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
638 * config/riscv/riscv.md: Add instruction sequence for TLSDESC.
639 * config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
640 sequence length data for TLSDESC.
641 (riscv_legitimize_tls_address): Add lowering of TLSDESC.
642 * doc/install.texi: Document --with-tls for RISC-V.
643 * doc/invoke.texi: Document -mtls-dialect for RISC-V.
645 2024-04-08 Jakub Jelinek <jakub@redhat.com>
648 * config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
649 if mem doesn't have MODE_INT mode, or pool constant doesn't
650 have MODE_INT mode, or if pool constant mode is smaller than
651 mem mode. If mem mode is different from pool constant mode,
652 try to simplify subreg. If that doesn't work, punt, if it
653 does, use the simplified constant instead of the constant pool
655 * config/s390/s390.md (movdi from const pool peephole): If
656 either low or high 32-bit part is zero, just emit move insn
657 instead of move + ior.
659 2024-04-08 Richard Biener <rguenther@suse.de>
661 PR tree-optimization/114624
662 * tree-scalar-evolution.cc (final_value_replacement_loop):
663 Get at the PHI arg location before releasing the PHI node.
665 2024-04-08 Pan Li <pan2.li@intel.com>
667 * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
668 required_ext arg when invoke add function.
669 (build_th_loadstore): Ditto.
670 (struct vcreate_def): Ditto.
671 (struct read_vl_def): Ditto.
672 (struct vlenb_def): Ditto.
673 * config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
674 Introduce new arg required_ext to fill in the register func.
675 (function_builder::add_unique_function): Ditto.
676 (function_builder::add_overloaded_function): Ditto.
677 (expand_builtin): Leverage required_extensions_specified to
678 check if the required extension is provided.
679 * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
680 func impl to convert the required_ext enum to the extension name.
681 (required_extensions_specified): New func impl to predicate if
682 the required extension is well feeded.
684 2024-04-08 Iain Sandoe <iain@sandoe.co.uk>
686 * config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
689 2024-04-08 demin.han <demin.han@starfivetech.com>
691 * config/riscv/riscv-vector-costs.cc: Use length()
693 2024-04-08 Pan Li <pan2.li@intel.com>
695 * config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
696 struct to hold all intrinisc related flags.
697 (riscv_pragma_intrinsic_flags_pollute): New func to pollute
698 the intrinsic flags and backup original flags.
699 (riscv_pragma_intrinsic_flags_restore): New func to restore
700 the flags from the backup intrinsic flags.
701 (riscv_pragma_intrinsic): Pollute the flags and register all
702 possible builtin types and functions, then restore and reinit.
703 * config/riscv/riscv-protos.h (reinit_builtins): New func
704 decl to reinit after flags pollution.
705 (riscv_option_override): New extern func decl.
706 * config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
707 New func to register builtin types if null.
708 (DEF_RVV_TYPE): Ditto.
709 (DEF_RVV_TUPLE_TYPE): Ditto.
710 (reinit_builtins): New func impl to reinit after flags pollution.
711 (expand_builtin): Return
712 target rtx after error_at.
713 * config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
714 func to tell one tree type is integer or not.
715 (riscv_vector_float_type_p): New predicate func to tell one tree
716 type is float or not.
717 (riscv_vector_element_bitsize): New func to get the element bitsize
718 of a vector tree type.
719 (riscv_vector_required_min_vlen): New func to get the required min vlen
720 of a vector tree type.
721 (riscv_validate_vector_type): New func to validate the tree type
723 (riscv_return_value_is_vector_type_p): Leverage the func
724 riscv_validate_vector_type to do the tree type validation.
725 (riscv_arguments_is_vector_type_p): Ditto.
726 (riscv_override_options_internal): Ditto.
728 2024-04-08 Lulu Cheng <chenglulu@loongson.cn>
731 * config/loongarch/loongarch-def.cc (la664_align): Newly defined
732 function that sets alignment rules under the LA664 microarchitecture.
733 * config/loongarch/loongarch-opts.cc
734 (loongarch_target_option_override): If not optimizing for size, set
735 the default alignment to what the target wants.
736 * config/loongarch/loongarch-tune.h (struct loongarch_align): Add
737 new member variables jump and loop.
739 2024-04-06 H.J. Lu <hjl.tools@gmail.com>
742 * config/i386/i386.md (x86_64_shld): Use explicit shift count in
744 (x86_64_shld_ndd): Likewise.
745 (x86_shld): Likewise.
746 (x86_shld_ndd): Likewise.
747 (x86_64_shrd): Likewise.
748 (x86_64_shrd_ndd): Likewise.
749 (x86_shrd): Likewise.
750 (x86_shrd_ndd): Likewise.
752 2024-04-06 Jørgen Kvalsvik <j@lambda.is>
755 * tree-inline.cc (add_local_variables): Copy cond_uids mappings.
757 2024-04-05 David Malcolm <dmalcolm@redhat.com>
760 * diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
761 color capability names.
762 * doc/invoke.texi: Document them in description of GCC_COLORS.
763 * text-art/style.cc: Include "diagnostic-color.h".
764 (text_art::get_style_from_color_cap_name): New.
765 * text-art/types.h (get_style_from_color_cap_name): New decl.
767 2024-04-05 Alex Coplan <alex.coplan@arm.com>
769 * config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
770 Fix double space after const qualifier on valid ().
772 2024-04-05 Martin Jambor <mjambor@suse.cz>
775 * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
776 Force values obtined through pass-through maps to the expected
779 2024-04-05 Mark Wielaard <mark@klomp.org>
781 * common.opt.urls: Regenerate.
783 2024-04-05 Richard Sandiford <richard.sandiford@arm.com>
786 * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
788 (@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
790 (*cnot<mode>): Require operand 1 to be a ptrue.
791 * config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
792 Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
793 with a ptrue. Represent other _x operations as fully-defined _m
796 2024-04-05 Jakub Jelinek <jakub@redhat.com>
798 PR tree-optimization/114566
799 * tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
802 2024-04-05 Richard Biener <rguenther@suse.de>
805 PR gcov-profile/114115
806 * symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
807 (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
809 (symtab_node::check_ifunc_callee_symtab_nodes): Properly
810 allocate ifunc_ref_map here.
812 2024-04-04 Martin Jambor <mjambor@suse.cz>
815 * ipa-param-manipulation.cc
816 (ipa_param_body_adjustments::common_initialization): Avoid creating
817 duplicate replacement entries.
819 2024-04-04 Vladimir N. Makarov <vmakarov@redhat.com>
821 PR rtl-optimization/114415
822 * sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
823 (sched_analyze_1): Treat stack pointer modification as memory read.
824 (sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
825 * sched-int.h (deps_desc): Add comment to pending_read_mems.
827 2024-04-04 Tobias Burnus <tburnus@baylibre.com>
829 * config/nvptx/mkoffload.cc (main): Call
830 gcc_init_libintl and diagnostic_color_init.
832 2024-04-04 H.J. Lu <hjl.tools@gmail.com>
835 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
836 __APX_F__ when APX is enabled.
838 2024-04-04 Jørgen Kvalsvik <j@lambda.is>
840 * builtins.cc (expand_builtin_fork_or_exec): Check
841 condition_coverage_flag.
842 * collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
843 * common.opt: Add new options -fcondition-coverage and
844 -Wcoverage-too-many-conditions.
845 * doc/gcov.texi: Add --conditions documentation.
846 * doc/invoke.texi: Add -fcondition-coverage documentation.
847 * function.cc (free_after_compilation): Free cond_uids.
848 * function.h (struct function): Add cond_uids.
849 * gcc.cc: Link gcov on -fcondition-coverage.
850 * gcov-counter.def (GCOV_COUNTER_CONDS): New.
851 * gcov-dump.cc (tag_conditions): New.
852 * gcov-io.h (GCOV_TAG_CONDS): New.
853 (GCOV_TAG_CONDS_LENGTH): New.
854 (GCOV_TAG_CONDS_NUM): New.
855 * gcov.cc (class condition_info): New.
856 (condition_info::condition_info): New.
857 (condition_info::popcount): New.
858 (struct coverage_info): New.
859 (add_condition_counts): New.
860 (output_conditions): New.
861 (print_usage): Add -g, --conditions.
862 (process_args): Likewise.
863 (output_intermediate_json_line): Output conditions.
864 (read_graph_file): Read condition counters.
865 (read_count_file): Likewise.
866 (file_summary): Print conditions.
867 (accumulate_line_info): Accumulate conditions.
868 (output_line_details): Print conditions.
869 * gimplify.cc (next_cond_uid): New.
870 (reset_cond_uid): New.
871 (shortcut_cond_r): Set condition discriminator.
872 (tag_shortcut_cond): New.
873 (gimple_associate_condition_with_expr): New.
874 (shortcut_cond_expr): Set condition discriminator.
875 (gimplify_cond_expr): Likewise.
876 (gimplify_function_tree): Call reset_cond_uid.
877 * ipa-inline.cc (can_early_inline_edge_p): Check
878 condition_coverage_flag.
879 * ipa-split.cc (pass_split_functions::gate): Likewise.
880 * passes.cc (finish_optimization_passes): Likewise.
881 * profile.cc (struct condcov): New declaration.
882 (cov_length): Likewise.
883 (cov_blocks): Likewise.
884 (cov_masks): Likewise.
885 (cov_maps): Likewise.
886 (cov_free): Likewise.
887 (instrument_decisions): New.
888 (read_thunk_profile): Control output to file.
889 (branch_prob): Call find_conditions, instrument_decisions.
890 (init_branch_prob): Add total_num_conds.
891 (end_branch_prob): Likewise.
892 * tree-core.h (struct tree_exp): Add condition_uid.
893 * tree-profile.cc (struct conds_ctx): New.
894 (CONDITIONS_MAX_TERMS): New.
895 (EDGE_CONDITION): New.
896 (topological_cmp): New.
900 (contract_edge_up): New.
901 (struct outcomes): New.
902 (conditional_succs): New.
903 (condition_index): New.
904 (condition_uid): New.
905 (masking_vectors): New.
907 (emit_bitwise_op): New.
908 (make_top_index_visit): New.
909 (make_top_index): New.
910 (paths_between): New.
911 (struct condcov): New.
917 (find_conditions): New.
918 (struct counters): New.
919 (find_counters): New.
920 (resolve_counter): New.
921 (resolve_counters): New.
922 (instrument_decisions): New.
923 (tree_profiling): Check condition_coverage_flag.
924 (pass_ipa_tree_profile::gate): Likewise.
925 * tree.h (SET_EXPR_UID): New.
926 (EXPR_COND_UID): New.
928 2024-04-04 Richard Sandiford <richard.sandiford@arm.com>
931 * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
933 * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
935 * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
936 (svset_neonq_impl::expand): Optimise expansions whose first argument
939 2024-04-04 Richard Biener <rguenther@suse.de>
941 PR tree-optimization/114485
942 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
943 vect_step_op_neg isn't OK for partial vectors but only
946 2024-04-04 Jakub Jelinek <jakub@redhat.com>
949 * fold-const.cc (native_encode_initializer): Look through
950 NON_LVALUE_EXPR if val is INTEGER_CST.
952 2024-04-04 Jakub Jelinek <jakub@redhat.com>
954 PR tree-optimization/114555
955 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
956 m_bitfld_load and save_cast_conditional add any needed PHIs
957 and adjust t4 accordingly.
959 2024-04-04 Richard Biener <rguenther@suse.de>
961 PR tree-optimization/114551
962 * tree-ssa-loop-split.cc (split_loop): If the guard is
963 only conditionally evaluated rewrite computations with
964 possibly undefined overflow to unsigned arithmetic.
966 2024-04-04 Eugene Rozenfeld <erozen@microsoft.com>
968 PR gcov-profile/113765
969 * auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
971 2024-04-03 Mark Wielaard <mark@klomp.org>
973 * config/i386/i386.opt.urls: Regenerate.
975 2024-04-03 H.J. Lu <hjl.tools@gmail.com>
977 PR tree-optimization/114115
978 * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
979 (cgraph_node): Add called_by_ifunc_resolver.
980 * cgraphunit.cc (symbol_table::compile): Call
981 symtab_node::check_ifunc_callee_symtab_nodes.
982 * symtab.cc (check_ifunc_resolver): New.
983 (ifunc_ref_map): Likewise.
984 (is_caller_ifunc_resolver): Likewise.
985 (symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
986 * tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
987 call profiling for IFUNC resolvers and their callees.
989 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
991 * lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
992 suffix by the target name.
994 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
996 * doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
997 and update wording for LLVM 18 release.
999 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
1002 * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
1004 (main): ... here; call it to handle --with-arch config option
1005 and -march= commandline.
1007 2024-04-03 Jakub Jelinek <jakub@redhat.com>
1009 PR middle-end/114552
1010 * expr.cc (emit_push_insn): Only use store_constructor for
1011 immediate_const_ctor_p if int_expr_size matches size.
1013 2024-04-03 Richard Biener <rguenther@suse.de>
1015 PR tree-optimization/114557
1016 PR tree-optimization/114480
1017 * tree-phinodes.cc (release_phi_node): Return PHIs from
1018 allocation buckets not covered by free_phinodes to GC.
1019 (remove_phi_node): Release the PHI LHS before freeing the
1021 * tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
1022 before releasing it.
1024 2024-04-03 Jiahao Xu <xujiahao@loongson.cn>
1026 * config/loongarch/lasx.md: Remove unused code.
1027 * config/loongarch/loongarch-protos.h
1028 (loongarch_split_lsx_copy_d): Remove.
1029 (loongarch_split_lsx_insert_d): Ditto.
1030 (loongarch_split_lsx_fill_d): Ditto.
1031 * config/loongarch/loongarch.cc
1032 (loongarch_split_lsx_copy_d): Ditto.
1033 (loongarch_split_lsx_insert_d): Ditto.
1034 (loongarch_split_lsx_fill_d): Ditto.
1035 * config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
1036 (lsx_vpickve2gr_<lsxfmt_f>): Ditto.
1037 (abs<mode>2): Remove expander.
1038 (vabs<mode>2): Rename 2 abs<mode>2.
1040 2024-04-02 Christophe Lyon <christophe.lyon@linaro.org>
1042 * config/aarch64/aarch64-option-extensions.def: Fix comment.
1044 2024-04-02 Tom Tromey <tromey@adacore.com>
1046 * dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
1047 print newline when not recursing.
1049 2024-04-02 Iain Sandoe <iain@sandoe.co.uk>
1051 * config/darwin.cc (darwin_override_options): Update the
1052 clang major version value in the dsymutil check.
1054 2024-04-02 Iain Sandoe <iain@sandoe.co.uk>
1056 * config/darwin.cc (darwin_override_options): Reduce the debug
1057 level to 2 if dsymutil cannot handle .macinfo sections.
1059 2024-04-02 Yang Yujie <yangyujie@loongson.cn>
1061 * config/loongarch/t-loongarch: Add loongarch-def-arrays.h
1064 2024-04-02 mengqinggang <mengqinggang@loongson.cn>
1065 Lulu Cheng <chenglulu@loongson.cn>
1066 Xi Ruoyao <xry111@xry111.site>
1068 * config.gcc: Add --with-tls option to change TLS flavor.
1069 * config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
1070 configure TLS flavor.
1071 * config/loongarch/loongarch-def.h (struct loongarch_target): Add
1073 * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
1075 * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
1077 (loongarch_config_target): Ditto.
1078 (loongarch_update_gcc_opt_status): Ditto.
1079 * config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
1080 (TARGET_TLS_DESC): New define.
1081 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
1082 DESC instructions sequence length.
1083 (loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
1084 (loongarch_option_override_internal): Add la_opt_tls_dialect.
1085 (loongarch_option_restore): Add la_target.tls_dialect.
1086 * config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
1087 code model for TLS DESC.
1088 (got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
1089 * config/loongarch/loongarch.opt: Regenerate.
1090 * config/loongarch/loongarch.opt.urls: Ditto.
1091 * doc/invoke.texi: Add a description of the compilation option
1092 '-mtls-dialect={trad,desc}'.
1094 2024-04-02 Lulu Cheng <chenglulu@loongson.cn>
1096 * config/loongarch/loongarch.opt.urls: Regenerate.
1098 2024-04-01 Yang Yujie <yangyujie@loongson.cn>
1100 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
1101 aliases to -mrecip={all,none}, respectively.
1102 * config/loongarch/loongarch.opt: Regenerate.
1103 * config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
1104 (ABI_FPU64_P): ...this.
1105 (ABI_FPU_32): Rename to...
1106 (ABI_FPU32_P): ...this.
1107 (ABI_FPU_NONE): Rename to...
1108 (ABI_NOFPU_P): ...this.
1109 (ABI_LP64_P): Define.
1110 * config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
1111 Merged into loongarch_global_init.
1112 (loongarch_cpu_option_override): Renamed to
1113 loongarch_target_option_override.
1114 (loongarch_option_override_internal): Move the work after
1115 loongarch_config_target into loongarch_target_option_override.
1116 (loongarch_global_init): Define.
1117 (INIT_TARGET_FLAG): Move to loongarch-opts.cc.
1118 (loongarch_option_override): Call loongarch_global_init
1120 * config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
1121 Split the parsing of -mrecip=<string> from
1122 loongarch_option_override_internal.
1123 (loongarch_generate_mrecip_scheme): Define. Split from
1124 loongarch_option_override_internal.
1125 (loongarch_target_option_override): Define. Renamed from
1126 loongarch_cpu_option_override.
1127 (loongarch_init_misc_options): Define. Split from
1128 loongarch_option_override_internal.
1129 (INIT_TARGET_FLAG): Move from loongarch.cc.
1130 * config/loongarch/loongarch-opts.h (loongarch_target_option_override):
1132 (loongarch_parse_mrecip_scheme): New prototype.
1133 (loongarch_init_misc_options): New prototype.
1134 (TARGET_ABI_LP64): Simplify with ABI_LP64_P.
1135 * config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
1136 Do not reference specific CPU architecture (LA664).
1137 (TARGET_RECIP_SQRT): Same.
1138 (TARGET_RECIP_RSQRT): Same.
1139 (TARGET_RECIP_VEC_DIV): Same.
1140 (TARGET_RECIP_VEC_SQRT): Same.
1141 (TARGET_RECIP_VEC_RSQRT): Same.
1143 2024-04-01 Lulu Cheng <chenglulu@loongson.cn>
1145 * doc/invoke.texi: Add descriptions for the compilation
1148 2024-03-31 Jeff Law <jlaw@ventanamicro.com>
1150 * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
1153 2024-03-31 Pan Li <pan2.li@intel.com>
1155 * config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
1156 the term built-in over builtin.
1158 2024-03-31 Pan Li <pan2.li@intel.com>
1160 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1161 Remove unused var decl.
1163 2024-03-30 Xi Ruoyao <xry111@xry111.site>
1166 * config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
1167 mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
1168 functions if arg.type is NULL.
1170 2024-03-29 Andrew Pinski <quic_apinski@quicinc.com>
1172 * lto-compress.cc (lto_end_uncompression): Use
1173 fatal_error instead of internal_error when ZSTD
1176 2024-03-28 Jeff Law <jlaw@ventanamicro.com>
1178 * config/h8300/extensions.md (zero_extendqihi*): Add output
1179 template for reg->reg case where the regs don't match.
1181 2024-03-28 Gaius Mulley <(no_default)>
1184 * doc/gm2.texi: Mention gm2 treats a # in the first column
1185 as a preprocessor directive unless -fno-cpp is supplied.
1187 2024-03-28 Jakub Jelinek <jakub@redhat.com>
1189 * predict.cc (estimate_bb_frequencies): Fix comment typo,
1190 scalling -> scaling.
1192 2024-03-28 Jakub Jelinek <jakub@redhat.com>
1194 PR tree-optimization/112303
1195 * profile-count.h (profile_count::operator+): Perform
1196 addition in uint64_t variable and set m_val to MIN of that
1198 (profile_count::operator+=): Likewise.
1199 (profile_count::operator-=): Formatting fix.
1200 (profile_count::apply_probability): Use safe_scale_64bit
1201 even in the int overload.
1203 2024-03-28 Jan Hubicka <jh@suse.cz>
1205 PR middle-end/113907
1206 * ipa-icf.cc (sem_function::init): Hash PHI operands
1207 (sem_function::compare_phi_node): Add argument about preserving order
1209 2024-03-28 Richard Biener <rguenther@suse.de>
1211 PR middle-end/114480
1212 * cfganal.cc (compute_idf): Use simpler bitmap iteration,
1213 touch work_set only when phi_insertion_points changed.
1215 2024-03-28 Palmer Dabbelt <palmer@rivosinc.com>
1217 * config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
1219 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org>
1221 PR rtl-optimization/101523
1222 * combine.cc (try_combine): Don't do a 2-insn combination if
1223 it does not in fact change I2.
1225 2024-03-27 Jakub Jelinek <jakub@redhat.com>
1227 * doc/invoke.texi (Spec Files): Use @var{S} instead of S,
1228 @var{X} instead of X etc. for other placeholders.
1230 2024-03-27 Richard Biener <rguenther@suse.de>
1232 PR tree-optimization/114057
1233 * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
1234 BB reduction remain defs as scalar uses.
1236 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com>
1238 * config/aarch64/aarch64-option-extensions.def (rcpc3):
1239 Fix FEATURE_STRING field to "lrcpc3".
1241 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com>
1243 * config/aarch64/aarch64-option-extensions.def: Add LSE128
1244 AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
1246 * doc/invoke.texi (AArch64 Options): Document +lse128.
1248 2024-03-26 Richard Sandiford <richard.sandiford@arm.com>
1250 * config/aarch64/aarch64-feature-deps.h: Use constexpr for
1251 out-of-line statics.
1253 2024-03-26 Cupertino Miranda <cupertino.miranda@oracle.com>
1256 * btfout.cc (get_name_for_datasec_entry): Add function.
1257 (btf_asm_datasec_entry): Print label when possible.
1259 2024-03-26 Richard Ball <richard.ball@arm.com>
1262 * config/aarch64/aarch64-cores.def (AARCH64_CORE):
1263 Change SCHEDULER_IDENT from cortexa55 to cortexa53
1264 for Cortex-A510 and Cortex-A520.
1266 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1268 PR middle-end/111151
1269 * fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
1270 MULT_EXPR altogether, or for MAX_EXPR if c is -1.
1272 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1275 * tsan.cc (instrument_expr): Punt on non-generic address space
1278 2024-03-26 Richard Biener <rguenther@suse.de>
1280 PR tree-optimization/114471
1281 * tree-vect-stmts.cc (vectorizable_operation): Verify operand
1282 types are compatible with the result type.
1284 2024-03-26 Richard Biener <rguenther@suse.de>
1286 PR tree-optimization/114464
1287 * tree-vect-loop.cc (vectorizable_recurr): Verify the latch
1288 vector type is compatible with what we chose for the recurrence.
1290 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1292 * cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
1293 Fix comment typo - multple -> multiple.
1294 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
1297 2024-03-26 YunQiang Su <syq@gcc.gnu.org>
1299 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
1300 __mips_strict_alignment if STRICT_ALIGNMENT.
1302 2024-03-25 Richard Biener <rguenther@suse.de>
1304 * config.gcc (amdgcn): Add gfx1036 entries.
1305 * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
1306 (gcn_local_sym_hash): Likewise.
1307 * config/gcn/gcn-opts.h (enum processor_type): Likewise.
1308 (TARGET_GFX1036): New macro.
1309 * config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
1310 (gcn_omp_device_kind_arch_isa): Likewise.
1311 (output_file_start): Likewise.
1312 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
1313 (TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
1314 * config/gcn/gcn.opt: Add gfx1036.
1315 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
1316 (main): Handle gfx1036.
1317 * config/gcn/t-omp-device: Add gfx1036 isa.
1318 * doc/install.texi (amdgcn): Add gfx1036.
1319 * doc/invoke.texi (-march): Likewise.
1321 2024-03-25 Pan Li <pan2.li@intel.com>
1323 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
1324 when V is disabled and init the RVV types and intrinic APIs.
1325 * config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
1326 error if V ext is disabled.
1327 * config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
1329 (riscv_arguments_is_vector_type_p): Ditto.
1330 (riscv_vector_cc_function_p): Ditto.
1331 * config/riscv/riscv_vector.h: Remove error if V is disable.
1333 2024-03-23 John David Anglin <danglin@gcc.gnu.org>
1335 * config/pa/pa.cc (pa_output_global_address): Handle
1336 UNSPEC_DLTIND14R addresses.
1337 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
1338 UNSPEC_DLTIND14R address.
1340 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1342 PR tree-optimization/114433
1343 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
1344 m_bitfld_load check save_first rather than m_first.
1346 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1348 PR tree-optimization/114425
1349 * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
1350 _Complex large/huge _BitInt types like the large/huge _BitInt types.
1352 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1354 PR middle-end/111683
1355 * tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
1356 and comp_step is RS_NONZERO, return false if any reference in the
1357 component doesn't have DR_STEP a multiple of access size.
1359 2024-03-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1361 * config/xtensa/xtensa.md: Add new split pattern described above.
1363 2024-03-22 Georg-Johann Lay <avr@gjlay.de>
1365 * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
1366 for deprecated SIGNAL and INTERRUPT usage without respective header.
1368 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1370 * config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
1371 (atomic_load<mode>): Adjust RDNA cache settings.
1372 (atomic_store<mode>): Likewise.
1373 (atomic_exchange<mode>): Likewise.
1375 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1377 * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
1380 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1382 * config.gcc (amdgcn): Add gfx1103 entries.
1383 * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
1384 (gcn_local_sym_hash): Likewise.
1385 * config/gcn/gcn-opts.h (enum processor_type): Likewise.
1386 (TARGET_GFX1103): New macro.
1387 * config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
1388 (gcn_omp_device_kind_arch_isa): Likewise.
1389 (output_file_start): Likewise.
1390 (gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
1391 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
1392 * config/gcn/gcn.opt: Add gfx1103.
1393 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
1394 (main): Handle gfx1103.
1395 * config/gcn/t-omp-device: Add gfx1103 isa.
1396 * doc/install.texi (amdgcn): Add gfx1103.
1397 * doc/invoke.texi (-march): Likewise.
1399 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1401 * dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
1403 (do_compare_and_jump): Remove now-redundant similar code.
1404 * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
1406 (add_mask_and_len_args): Likewise.
1408 2024-03-22 Pan Li <pan2.li@intel.com>
1410 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
1411 macro __riscv_v_fixed_vlen when zvl.
1412 * config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
1413 New static func to take care of the RVV types decorated by
1416 2024-03-22 Andrew Pinski <quic_apinski@quicinc.com>
1419 * builtins.cc (fold_builtin_1): Use error_operand_p
1420 instead of checking against ERROR_MARK.
1421 (fold_builtin_2): Likewise.
1422 (fold_builtin_3): Likewise.
1424 2024-03-22 Jakub Jelinek <jakub@redhat.com>
1427 * ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
1428 SANITIZE_NULL instrumentation for non-generic address spaces
1429 for which targetm.addr_space.zero_address_valid (as) is true.
1431 2024-03-22 Jakub Jelinek <jakub@redhat.com>
1433 PR tree-optimization/114405
1434 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
1435 Set rprec to limb_prec rather than 0 if tprec is divisible by
1436 limb_prec. In the last bf_cur handling, set rprec to (tprec + bo_bit)
1437 % limb_prec rather than tprec % limb_prec and use just rprec instead
1438 of rprec + bo_bit. For build_bit_field_ref offset, divide
1439 (tprec + bo_bit) by limb_prec rather than just tprec.
1441 2024-03-22 Christoph Müllner <christoph.muellner@vrull.eu>
1444 * config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
1445 Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
1447 2024-03-22 Jeff Law <jlaw@ventanamicro.com>
1449 * config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
1450 tie for scalable and final stack adjustment if needed.
1451 Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
1453 2024-03-22 Pan Li <pan2.li@intel.com>
1456 * common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
1457 New struct for func decl and target name.
1458 (struct riscv_func_target_hasher): New hasher for hash table mapping
1459 from the fn_decl to fn_target_name.
1460 (riscv_func_decl_hash): New func to compute the hash for fn_decl.
1461 (riscv_func_target_hasher::hash): New func to impl hash interface.
1462 (riscv_func_target_hasher::equal): New func to impl equal interface.
1463 (riscv_cmdline_subset_list): New static var for cmdline subset list.
1464 (riscv_func_target_table_lazy_init): New func to lazy init the func
1466 (riscv_func_target_get): New func to get target name from hash table.
1467 (riscv_func_target_put): New func to put target name into hash table.
1468 (riscv_func_target_remove_and_destory): New func to remove target
1469 info from the hash table and destory it.
1470 (riscv_parse_arch_string): Set the static var cmdline_subset_list.
1471 * config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
1472 var for cmdline subset list.
1473 (riscv_func_target_get): New func decl.
1474 (riscv_func_target_put): Ditto.
1475 (riscv_func_target_remove_and_destory): Ditto.
1476 * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
1477 Take cmdline_subset_list instead of current_subset_list when clone.
1478 (riscv_process_target_attr): Record the func target info to hash table.
1479 (riscv_option_valid_attribute_p): Add new arg tree fndel.
1480 * config/riscv/riscv.cc (riscv_declare_function_name): Consume the
1481 func target info and print the arch message.
1483 2024-03-22 Pan Li <pan2.li@intel.com>
1486 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1487 Replace implied, combine and check to func finalize.
1488 (riscv_subset_list::finalize): New func impl to take care of
1489 implied, combine ext and related checks.
1490 * config/riscv/riscv-subset.h: Add func decl for finalize.
1491 * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
1492 Finalize the ext before return succeed.
1493 * config/riscv/riscv.cc (riscv_set_current_function): Reinit the
1494 machine mode before when set cur function.
1496 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1498 * config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
1500 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1502 * config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
1504 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1506 * config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
1509 2024-03-21 liuhongt <hongtao.liu@intel.com>
1511 PR tree-optimization/114396
1512 * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
1513 and true to wi::from_mpz.
1515 2024-03-21 Richard Biener <rguenther@suse.de>
1517 PR tree-optimization/111736
1518 * asan.cc (instrument_derefs): Do not instrument accesses
1519 to non-generic address-spaces.
1521 2024-03-21 Richard Biener <rguenther@suse.de>
1523 PR tree-optimization/113727
1524 * tree-sra.cc (analyze_access_subtree): Do not allow
1525 replacements in subtrees when grp_partial_lhs.
1527 2024-03-21 liuhongt <hongtao.liu@intel.com>
1529 PR middle-end/114347
1530 * doc/invoke.texi: Document -fexcess-precision=16.
1532 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1534 * config/bpf/core-builtins.cc (bpf_core_get_index): Check if
1535 field contains a DECL_NAME.
1537 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1539 * config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
1540 Add assert to validate the string is set.
1541 * config/bpf/core-builtins.cc (cr_final): Make string struct
1543 (process_enum_value): Correct for field type change.
1544 (process_type): Set access string to "0".
1546 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1548 * config/bpf/core-builtins.cc (core_field_info): Add
1549 support for POINTER_PLUS_EXPR in the root of the field expression.
1550 (bpf_core_get_index): Likewise.
1551 (pack_field_expr): Make the BTF type to point to the structure
1552 related node, instead of its pointer type.
1553 (make_core_safe_access_index): Correct to new code.
1555 2024-03-20 Xi Ruoyao <xry111@xry111.site>
1558 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
1559 Fix typo in diagnostic message, enabing -> enabling.
1561 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1564 * config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
1565 TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
1566 if arg.type is NULL.
1568 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1571 * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
1572 nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1573 if arg.type is NULL.
1575 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1578 * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
1579 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1580 if arg.type is NULL.
1582 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1585 * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
1586 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1587 if arg.type is NULL.
1589 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1592 * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
1593 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1594 if arg.type is NULL.
1596 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1599 * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
1600 skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1601 if arg.type is NULL.
1603 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1606 * config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
1607 csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1608 if arg.type is NULL.
1610 2024-03-20 Yury Khrustalev <yury.khrustalev@arm.com>
1612 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
1614 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1616 PR tree-optimization/114365
1617 * gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
1618 a PHI node, set iv2 to its result afterwards.
1620 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1622 * tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
1623 probabbility -> probability.
1624 (ch_base::copy_headers): Fix comment typo: itrations -> iterations.
1626 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1629 * system.h (vec_step): Define to vec_step_ when compiling
1630 with clang on PowerPC.
1632 2024-03-20 demin.han <demin.han@starfivetech.com>
1635 * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
1636 (enum rvv_max_lmul_enum): Ditto
1637 (TARGET_MAX_LMUL): Ditto
1638 * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
1639 * config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
1640 (costs::better_main_loop_than_p): Ditto
1641 * config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
1643 2024-03-20 Richard Biener <rguenther@suse.de>
1645 PR middle-end/113396
1646 * tree-dfa.cc (get_ref_base_and_extent): Use index range
1647 bounds only if they fit within the address-range constraints
1650 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1652 * config/loongarch/loongarch.cc
1653 (loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
1654 UNITS_PER_FPREG macros.
1655 (loongarch_hard_regno_nregs): Ditto.
1656 (loongarch_class_max_nregs): Ditto.
1657 (loongarch_get_separate_components): Ditto.
1658 (loongarch_process_components): Ditto.
1659 * config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
1660 (UNITS_PER_HWFPVALUE): Ditto.
1661 (UNITS_PER_FPVALUE): Ditto.
1663 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1665 * config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
1666 of loongarch_expand_vec_cmp()'s return value.
1667 (vec_cmpu<ILASX:mode><mode256_i>): Ditto.
1668 * config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
1669 (vec_cmpu<ILSX:mode><mode_i>): Ditto.
1670 * config/loongarch/loongarch-protos.h
1671 (loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
1672 type from bool to void.
1673 * config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
1675 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1677 * config/loongarch/loongarch-protos.h
1678 (loongarch_cfun_has_cprestore_slot_p): Delete.
1679 (loongarch_adjust_insn_length): Delete.
1680 (current_section_name): Delete.
1681 (loongarch_split_symbol_type): Delete.
1682 * config/loongarch/loongarch.cc
1683 (loongarch_case_values_threshold): Delete.
1684 (loongarch_spill_class): Delete.
1685 (TARGET_OPTAB_SUPPORTED_P): Delete.
1686 (TARGET_CASE_VALUES_THRESHOLD): Delete.
1687 (TARGET_SPILL_CLASS): Delete.
1689 2024-03-20 Lewis Hyatt <lhyatt@gmail.com>
1692 * diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
1693 * diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
1694 Make use of DK_ANY to indicate a diagnostic was initially enabled.
1695 (diagnostic_context::diagnostic_enabled): Do not change the type of
1696 a diagnostic if the saved classification is type DK_ANY.
1698 2024-03-19 Martin Jambor <mjambor@suse.cz>
1702 * ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
1703 at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
1704 a pointer parameter.
1705 (ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
1706 parameter, also recognize the case when pfn pointer is loaded in its
1709 2024-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
1712 * lra-constraints.cc (lra_constraints): Prevent removing insn
1713 with reverse equivalence to memory if the memory was reloaded.
1715 2024-03-19 David Malcolm <dmalcolm@redhat.com>
1717 PR middle-end/114348
1718 * diagnostic-format-json.cc
1719 (json_stderr_output_format::machine_readable_stderr_p): New.
1720 (json_file_output_format::machine_readable_stderr_p): New.
1721 * diagnostic-format-sarif.cc
1722 (sarif_stream_output_format::machine_readable_stderr_p): New.
1723 (sarif_file_output_format::machine_readable_stderr_p): New.
1724 * diagnostic.cc (diagnostic_context::action_after_output): Move
1725 "fnotice" to before "finish" call, so that we still have the
1727 (fnotice): Bail out if the user requested one of the
1728 machine-readable diagnostic output formats on stderr.
1730 (diagnostic_output_format::machine_readable_stderr_p): New pure
1732 (diagnostic_text_output_format::machine_readable_stderr_p): New.
1733 (diagnostic_context::get_output_format): New accessor.
1735 2024-03-19 Edwin Lu <ewlu@rivosinc.com>
1738 * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
1739 riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1742 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
1744 * doc/install.texi (Prerequisites): Document use of autogen for
1747 2024-03-19 Richard Biener <rguenther@suse.de>
1749 PR tree-optimization/114151
1750 PR tree-optimization/114269
1751 PR tree-optimization/114322
1752 PR tree-optimization/114074
1753 * tree-chrec.cc (chrec_fold_multiply): Restrict the use of
1754 unsigned arithmetic when actual overflow on constant operands
1757 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1760 * config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
1761 arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1762 if arg.type is NULL.
1764 2024-03-19 Xi Ruoyao <xry111@xry111.site>
1767 * config/loongarch/loongarch.cc
1768 (loongarch_setup_incoming_varargs): Only skip
1769 loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
1770 functions if arg.type is NULL.
1772 2024-03-19 Christophe Lyon <christophe.lyon@linaro.org>
1775 * config/arm/arm-mve-builtins.cc
1776 (function_instance::reads_global_state_p): Take CP_READ_MEMORY
1779 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1782 * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
1783 function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1784 if arg.type is NULL.
1786 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1789 * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
1790 rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
1791 if arg.type is NULL.
1793 2024-03-19 Richard Biener <rguenther@suse.de>
1795 PR tree-optimization/114375
1796 * tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
1797 load permutation for masked loads but reject it when any
1799 * tree-vect-stmts.cc (vectorizable_load): Reject masked
1800 VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
1803 2024-03-19 Mary Bennett <mary.bennett@embecosm.com>
1805 * common/config/riscv/riscv-common.cc: Create XCVbi extension
1807 * config/riscv/riscv.opt: Likewise.
1808 * config/riscv/corev.md: Implement cv_branch<mode> pattern
1809 for cv.beqimm and cv.bneimm.
1810 * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
1811 branch instruction pattern.
1812 * config/riscv/constraints.md: Implement constraints
1813 cv_bi_s5 - signed 5-bit immediate.
1814 * config/riscv/predicates.md: Implement predicate
1815 const_int5s_operand - signed 5 bit immediate.
1816 * doc/sourcebuild.texi: Add XCVbi documentation.
1818 2024-03-19 Chen Jiawei <jiawei@iscas.ac.cn>
1820 * config/riscv/riscv-cores.def (RISCV_TUNE): New def.
1821 (RISCV_CORE): Ditto.
1822 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
1824 * config/riscv/riscv.cc: New def.
1825 * config/riscv/riscv.md: New include.
1826 * config/riscv/xiangshan.md: New file.
1828 2024-03-18 David Malcolm <dmalcolm@redhat.com>
1834 * selftest.h (ASSERT_NE_AT): New macro.
1836 2024-03-18 Uros Bizjak <ubizjak@gmail.com>
1839 * config/i386/i386-features.cc (smode_convert_cst): New function
1840 to handle SImode, DImode and TImode immediates, generalized from
1842 (timode_convert_cst): Remove.
1843 (scalar_chain::convert_op): Unify from
1844 general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
1845 (general_scalar_chain::convert_op): Remove.
1846 (timode_scalar_chain::convert_op): Remove.
1847 (timode_scalar_chain::convert_insn): Update the call to
1848 renamed timode_convert_cst.
1849 * config/i386/i386-features.h (class scalar_chain):
1850 Redeclare convert_op as protected class member.
1851 (class general_calar_chain): Remove convert_op.
1852 (class timode_scalar_chain): Ditto.
1854 2024-03-18 Jan Hubicka <jh@suse.cz>
1856 * config/i386/zn4zn5.md: Add file missed in the previous commit.
1858 2024-03-18 Jan Hubicka <jh@suse.cz>
1859 Karthiban Anbazhagan <Karthiban.Anbazhagan@amd.com>
1861 * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
1862 * common/config/i386/i386-common.cc (processor_names): Add znver5.
1863 (processor_alias_table): Likewise.
1864 * common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
1866 (processor_subtypes): Add znver5.
1867 * config.gcc (x86_64-*-* |...): Likewise.
1868 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
1869 march=native detect znver5 cpu's.
1870 * config/i386/i386-c.cc (ix86_target_macros_internal): Add
1872 * config/i386/i386-options.cc (m_ZNVER5): New definition
1873 (processor_cost_table): Add znver5.
1874 * config/i386/i386.cc (ix86_reassociation_width): Likewise.
1875 * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
1876 (PTA_ZNVER5): New definition.
1877 * config/i386/i386.md (define_attr "cpu"): Add znver5.
1878 (Scheduling descriptions) Add znver5.md.
1879 * config/i386/x86-tune-costs.h (znver5_cost): New definition.
1880 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
1881 (ix86_adjust_cost): Likewise.
1882 * config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
1883 (avx512_store_by_pieces): Add m_ZNVER5.
1884 * doc/extend.texi: Add znver5.
1885 * doc/invoke.texi: Likewise.
1886 * config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
1888 2024-03-18 Georg-Johann Lay <avr@gjlay.de>
1890 * config/avr/constraints.md (CX2, CX3, CX4): New constraints.
1891 * config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
1892 * config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
1893 * config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
1894 (xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
1895 (xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
1897 2024-03-18 liuhongt <hongtao.liu@intel.com>
1900 * config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
1901 (MODEF248): New mode iterator.
1902 (ssevecmodesuffix): Hanlde BF and HF.
1903 * config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
1904 (<code><mode>3): Ditto.
1906 2024-03-18 John David Anglin <danglin@gcc.gnu.org>
1908 PR rtl-optimization/112415
1909 * config/pa/pa.cc (pa_emit_move_sequence): Revise condition
1910 for symbolic memory operands.
1911 (pa_legitimate_address_p): Revise LO_SUM condition.
1912 * config/pa/pa.h (INT14_OK_STRICT): Revise define. Move
1913 comment about GNU linker to predicates.md.
1914 * config/pa/predicates.md (floating_point_store_memory_operand):
1915 Revise condition for symbolic memory operands. Update
1918 2024-03-17 John David Anglin <danglin@gcc.gnu.org>
1920 * config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
1922 2024-03-16 Jakub Jelinek <jakub@redhat.com>
1925 * config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
1926 ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1927 if arg.type is NULL.
1929 2024-03-16 Jakub Jelinek <jakub@redhat.com>
1931 PR tree-optimization/114329
1932 * gimple-lower-bitint.cc (struct bitint_large_huge): Declare
1933 build_bit_field_ref method.
1934 (bitint_large_huge::build_bit_field_ref): New method.
1935 (bitint_large_huge::lower_mergeable_stmt): Use it.
1937 2024-03-15 YunQiang Su <syq@gcc.gnu.org>
1939 * config/riscv/riscv.opt.urls: Regenerated.
1940 * config/rs6000/sysv4.opt.urls: Likewise.
1941 * config/xtensa/xtensa.opt.urls: Likewise.
1943 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1945 * lower-subreg.cc (resolve_simple_move): Fix comment typo,
1947 * edit-context.cc (class line_event): Fix comment typo,
1948 betweeen -> between.
1950 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1953 * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
1954 a pasto, compare code against LE rather than GE.
1956 2024-03-15 Joe Ramsay <Joe.Ramsay@arm.com>
1958 * match.pd: Fix truncation pattern for -fno-signed-zeroes
1960 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1962 PR middle-end/114332
1963 * expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
1965 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1967 PR tree-optimization/113466
1968 * gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
1970 (bitint_large_huge::bitint_large_huge): Initialize it.
1971 (bitint_large_huge::~bitint_large_huge): Release it.
1972 (bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
1973 before which at least one statement has been inserted.
1974 (gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
1975 calls to a different block and add corresponding PHIs.
1977 2024-03-15 YunQiang Su <syq@gcc.gnu.org>
1979 * config/mips/mips.opt: Support -mstrict-align, and use
1980 TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
1982 * config/mips/mips.h: Use TARGET_STRICT_ALIGN.
1983 * config/mips/mips.opt.urls: Regenerate.
1984 * doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
1986 2024-03-15 Tejas Belagod <tejas.belagod@arm.com>
1988 PR middle-end/114108
1989 * tree-vect-patterns.cc (vect_recog_abd_pattern): Call
1990 vect_convert_output with the correct vecitype.
1992 2024-03-15 Chenghui Pan <panchenghui@loongson.cn>
1994 * config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
1995 Remove masking of operand 3.
1997 2024-03-14 Jason Merrill <jason@redhat.com>
1999 * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
2002 2024-03-14 John David Anglin <danglin@gcc.gnu.org>
2005 * config/pa/pa.cc (pa_legitimate_address_p): Don't allow
2006 14-bit displacements before reload for modes that may use
2007 a floating-point load or store.
2009 2024-03-14 David Faust <david.faust@oracle.com>
2011 * config/bpf/bpf.h (INT8_TYPE): Change to signed char.
2013 2024-03-14 Max Filippov <jcmvbkbc@gmail.com>
2015 * config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
2016 patterns ahead of the l32i.n and s32i.n.
2018 2024-03-14 Jakub Jelinek <jakub@redhat.com>
2020 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
2022 2024-03-14 Jakub Jelinek <jakub@redhat.com>
2024 PR middle-end/113907
2025 * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
2026 SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
2029 2024-03-14 Xi Ruoyao <xry111@xry111.site>
2031 * config/loongarch/loongarch.md (any_ge): Remove.
2032 (sge<u>_<X:mode><GPR:mode>): Remove.
2034 2024-03-14 Jakub Jelinek <jakub@redhat.com>
2037 * config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
2038 TImode force newval into a register.
2040 2024-03-14 Chung-Lin Tang <cltang@baylibre.com>
2042 * tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
2043 (OMP_CLAUSE__CACHE__READONLY): New macro.
2044 * tree-core.h (struct GTY(()) tree_base): Adjust comments for new
2045 uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
2046 OMP_CLAUSE__CACHE__READONLY.
2047 * tree-pretty-print.cc (dump_omp_clause): Add support for printing
2048 OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
2050 2024-03-14 Andreas Krebbel <krebbel@linux.ibm.com>
2052 * config/s390/s390.cc (s390_encode_section_info): Adjust the check
2053 for misaligned symbols.
2054 * config/s390/s390.opt: Improve documentation.
2056 2024-03-14 Jakub Jelinek <jakub@redhat.com>
2058 * gimple-iterator.cc (edge_before_returns_twice_call): Copy all
2059 flags and probability from ad_edge to e edge. If CDI_DOMINATORS
2060 are computed, recompute immediate dominator of other_edge->src
2061 and other_edge->dest.
2062 (gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
2063 for the returns_twice call case to the gsi_for_stmt (stmt) to deal
2064 with update it for bb splitting.
2066 2024-03-14 liuhongt <hongtao.liu@intel.com>
2068 * config/i386/i386-features.cc
2069 (general_scalar_chain::convert_op): Handle REG_EH_REGION note.
2070 (convert_scalars_to_vector): Ditto.
2071 * config/i386/i386-features.h (class scalar_chain): New
2072 memeber control_flow_insns.
2074 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2076 PR middle-end/114319
2077 * gimple-ssa-store-merging.cc
2078 (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
2079 allow matching __builtin_bswap64 if there is bswapsi2 optab.
2081 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2083 * config/s390/s390.cc (s390_secondary_reload): Guard
2084 SYMBOL_FLAG_NOTALIGN2_P.
2086 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2088 * config/s390/s390-builtin-types.def: Update to reflect latest
2090 * config/s390/s390-builtins.def: Streamline vector builtins with
2093 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2095 * config/s390/s390-builtins.def (vec_permi): Deprecate.
2096 (vec_ctd): Deprecate.
2097 (vec_ctd_s64): Deprecate.
2098 (vec_ctd_u64): Deprecate.
2099 (vec_ctsl): Deprecate.
2100 (vec_ctul): Deprecate.
2101 (vec_ld2f): Deprecate.
2102 (vec_st2f): Deprecate.
2103 (vec_insert): Deprecate overloads with bool vectors.
2105 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2107 PR middle-end/114313
2108 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
2109 TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
2110 (bitint_large_huge::handle_load): Pass NULL_TREE rather than
2111 rhs_type to limb_access for the bitfield load cases.
2112 (bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
2113 lhs_type to limb_access if nlhs is non-NULL.
2115 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2118 * asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
2119 build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
2120 gsi_safe_insert_before instead of gsi_insert_before.
2122 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2125 * gimple-iterator.h (gsi_safe_insert_before,
2126 gsi_safe_insert_seq_before): Declare.
2127 * gimple-iterator.cc: Include gimplify.h.
2128 (edge_before_returns_twice_call, adjust_before_returns_twice_call,
2129 gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
2130 * ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
2131 instrument_nonnull_arg, instrument_nonnull_return): Use
2132 gsi_safe_insert_before instead of gsi_insert_before.
2133 (maybe_instrument_pointer_overflow): Use force_gimple_operand,
2134 gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
2135 instead of force_gimple_operand_gsi.
2136 (instrument_object_size): Likewise. Use gsi_safe_insert_before
2137 instead of gsi_insert_before.
2139 2024-03-12 Richard Biener <rguenther@suse.de>
2141 PR tree-optimization/114121
2142 * tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
2143 converted operand properly.
2144 (chrec_fold_multiply): Likewise. Handle missed recursion.
2146 2024-03-12 Jakub Jelinek <jakub@redhat.com>
2149 * asan.cc (has_stmt_been_instrumented_p): Don't instrument call
2150 stores on the caller side unless it is a call to a builtin or
2151 internal function or function doesn't return by hidden reference.
2152 (maybe_instrument_call): Likewise.
2153 (instrument_derefs): Instrument stores to RESULT_DECL if
2154 returning by hidden reference.
2156 2024-03-12 Jakub Jelinek <jakub@redhat.com>
2158 PR tree-optimization/114293
2159 * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
2160 max is smaller than min, set max to ~(size_t)0.
2162 2024-03-12 Pan Li <pan2.li@intel.com>
2164 * config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
2165 code style greater than 80 chars.
2166 (riscv_cpu_cpp_builtins): Fix useless empty line, indent
2167 with 3 space(s) and argument unalignment.
2169 2024-03-12 Richard Biener <rguenther@suse.de>
2171 PR tree-optimization/114297
2172 * tree-vect-loop.cc (vectorizable_live_operation): Pass in the
2173 live stmts SLP node to vect_create_epilog_for_reduction.
2175 2024-03-12 Andrew Pinski <quic_apinski@quicinc.com>
2178 * common.opt (fmultiflags): Add RejectNegative.
2180 2024-03-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
2182 * config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
2183 * config/aarch64/aarch64.opt: Likewise.
2184 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
2185 * config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
2186 (aarch64_expand_epilogue): Likewise.
2187 (aarch64_post_cfi_startproc): Likewise.
2188 (aarch64_handle_no_branch_protection): Copy and rename.
2189 (aarch64_handle_standard_branch_protection): Likewise.
2190 (aarch64_handle_pac_ret_protection): Likewise.
2191 (aarch64_handle_pac_ret_leaf): Likewise.
2192 (aarch64_handle_pac_ret_b_key): Likewise.
2193 (aarch64_handle_bti_protection): Likewise.
2194 (aarch64_override_options): Update branch protection validation.
2195 (aarch64_handle_attr_branch_protection): Likewise.
2196 * config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
2197 Pass branch protection type description as argument.
2198 (struct aarch_branch_protect_type): Move from aarch-common.h.
2199 * config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
2201 (aarch_handle_standard_branch_protection): Remove.
2202 (aarch_handle_pac_ret_protection): Remove.
2203 (aarch_handle_pac_ret_leaf): Remove.
2204 (aarch_handle_pac_ret_b_key): Remove.
2205 (aarch_handle_bti_protection): Remove.
2206 (aarch_validate_mbranch_protection): Pass branch protection type
2207 description as argument.
2208 * config/arm/aarch-common.h (enum aarch_key_type): Remove.
2209 (struct aarch_branch_protect_type): Remove.
2210 * config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
2211 * config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
2212 (arm_handle_standard_branch_protection): Likewise.
2213 (arm_handle_pac_ret_protection): Likewise.
2214 (arm_handle_pac_ret_leaf): Likewise.
2215 (arm_handle_bti_protection): Likewise.
2216 (arm_configure_build_target): Update branch protection validation.
2217 * config/arm/arm.opt: Remove aarch_ra_sign_key.
2219 2024-03-11 Richard Biener <rguenther@suse.de>
2221 PR middle-end/114299
2222 * gimplify.cc (internal_get_tmp_var): When gimplification
2223 of VAL failed, return a decl.
2225 2024-03-11 Jakub Jelinek <jakub@redhat.com>
2227 PR tree-optimization/114278
2228 * tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
2229 longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
2231 2024-03-11 Eric Botcazou <ebotcazou@adacore.com>
2235 * dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
2236 generate the DIE with the same parent as in the regular case.
2238 2024-03-11 Andrew Pinski <quic_apinski@quicinc.com>
2241 * fold-const.cc (merge_truthop_with_opposite_arm): Use
2242 the type of the operands of the comparison and not the type
2245 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2247 PR tree-optimization/110199
2248 * tree-ssa-scopedtables.cc
2249 (avail_exprs_stack::simplify_binary_operation): Generalize handling
2250 of MIN_EXPR/MAX_EXPR to allow additional simplifications. Canonicalize
2251 comparison operands for other cases.
2253 2024-03-10 Pan Li <pan2.li@intel.com>
2255 * tree-vect-stmts.cc (vectorizable_store): Enable the assert
2256 during transform process.
2257 (vectorizable_load): Ditto.
2259 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2262 * doc/install.texi: Document need for python when building
2265 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2268 * mode-switching.cc (optimize_mode_switching): Only process
2271 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
2273 * config/avr/avr.md: Fix typos in comment, indentation glitches
2274 and some other nits.
2276 2024-03-09 Jakub Jelinek <jakub@redhat.com>
2279 * fwprop.cc (try_fwprop_subst_pattern): Don't propagate
2280 src containing MEMs unless prop.likely_profitable_p ().
2282 2024-03-09 Xi Ruoyao <xry111@xry111.site>
2284 * config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
2285 Support 'Q' for R_LARCH_RELAX for TLS IE.
2286 (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
2288 * config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
2290 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
2292 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
2293 usum_widenqihi and add_zero_extend1.
2294 [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
2296 * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
2297 Compute exact insn lengths.
2298 (*usum_widenqihi3): Allow input operands to commute.
2300 2024-03-09 Jakub Jelinek <jakub@redhat.com>
2302 * config/i386/i386.opt.urls: Regenerate.
2304 2024-03-09 Lulu Cheng <chenglulu@loongson.cn>
2306 * config/loongarch/sync.md (atomic_cas_value_strong<mode>):
2307 In loongarch64, a sign extension operation is added when
2308 operands[2] is a register operand and the mode is SImode.
2310 2024-03-08 Martin Jambor <mjambor@suse.cz>
2313 * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
2314 id->killed_new_ssa_names.
2316 2024-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
2319 * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
2320 for non-reload pseudo too.
2322 2024-03-08 David Faust <david.faust@oracle.com>
2324 * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
2325 not attempt inline expansion if size is above threshold.
2326 * config/bpf/bpf.opt (-minline-memops-threshold): New option.
2327 * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
2330 2024-03-08 Richard Biener <rguenther@suse.de>
2332 PR tree-optimization/114269
2333 PR tree-optimization/114074
2334 * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
2335 in the third CASE_CONVERT case as well.
2336 (chrec_fold_multiply): Handle sign-conversions from unsigned
2337 by performing the operation in the unsigned type.
2339 2024-03-08 Georg-Johann Lay <avr@gjlay.de>
2341 * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
2342 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
2344 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2346 * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
2347 asm_noperands < 0 means it is not asm goto too.
2349 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2352 * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
2354 * config/i386/i386-options.cc (ix86_set_func_type): Don't use
2355 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
2356 ix86_noreturn_no_callee_saved_registers is enabled.
2357 * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
2359 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2362 * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
2363 on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
2365 2024-03-08 demin.han <demin.han@starfivetech.com>
2368 * config/riscv/riscv-vector-costs.cc: Fix ICE
2370 2024-03-08 Haochen Gui <guihaoc@gcc.gnu.org>
2372 * fwprop.cc (forward_propagate_into): Return false for volatile set
2375 2024-03-07 Wilco Dijkstra <wilco.dijkstra@arm.com>
2378 * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
2379 (aarch64_expand_cpymem): Emit single load/store only.
2380 (aarch64_set_one_block): Emit single stores only.
2382 2024-03-07 Robin Dapp <rdapp@ventanamicro.com>
2384 PR middle-end/114196
2385 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
2386 vectorization guards.
2388 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2390 * doc/cppopts.texi: Remove incorrect claim about -dD not
2391 outputting predefined macros.
2393 2024-03-07 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
2396 * config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
2397 and simplify else if with else.
2399 2024-03-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2401 * system.h: Include safe-ctype.h after C++ standard headers.
2403 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2405 PR rtl-optimization/110079
2406 * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
2409 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2411 PR middle-end/105533
2412 * expmed.cc (choose_mult_variant): Only try the val - 1 variant
2413 if val is not HOST_WIDE_INT_MIN or if mode has exactly
2414 HOST_BITS_PER_WIDE_INT precision. Avoid triggering UB while computing
2417 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2419 PR middle-end/105533
2420 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
2421 Multiple op->off by BITS_PER_UNIT instead of shifting it left by
2424 2024-03-07 Yang Yujie <yangyujie@loongson.cn>
2426 * config.gcc: Add a case for loongarch*-*-linux-musl*.
2427 * config/loongarch/linux.h: Disable the multilib-compatible
2428 treatment for *musl* targets.
2429 * config/loongarch/musl.h: New file.
2431 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2433 PR tree-optimization/114009
2434 * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
2435 argument even for GENERIC, not just for GIMPLE.
2436 * match.pd (a * !a -> 0): New simplifications.
2438 2024-03-07 demin.han <demin.han@starfivetech.com>
2440 * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
2441 * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
2442 (expand_vec_cmp_float): Adapt arguments
2444 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
2447 * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
2448 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
2449 (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
2450 (<plusminus:insn>v2qi3): Enable for optimize_size instead
2451 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
2452 (<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
2453 (<any_shift:insn>v2qi3): Enable for optimize_size instead
2454 of optimize_function_for_size_p.
2456 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
2460 * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
2462 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
2464 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
2465 (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
2467 (costs::add_stmt_cost): Also adjust cost for statements without
2469 * config/riscv/riscv-vector-costs.h: Define zero constant.
2471 2024-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
2474 * config/arm/arm.md (NOCOND): Improve comment.
2475 (arm_rev*) Add predicable.
2476 * config/arm/arm.cc (arm_final_prescan_insn): Add check for
2479 2024-03-06 Jeff Law <jlaw@ventanamicro.com>
2483 * config/riscv/riscv.cc (expand_conditional_move): Do not swap
2484 operands when the comparison operand is the same as the false
2487 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
2489 * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
2490 Eliminate common code and use generic code instead.
2492 2024-03-06 Georg-Johann Lay <avr@gjlay.de>
2494 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
2497 2024-03-06 Richard Biener <rguenther@suse.de>
2499 PR tree-optimization/114239
2500 * tree-vect-loop.cc (vect_get_vect_def): Remove.
2501 (vect_create_epilog_for_reduction): The passed in stmt_info
2502 should now be the live stmt that produces the scalar reduction
2503 result. Revert PR114192 fix. Base reduction info off
2504 info_for_reduction. Remove special handling of
2505 early-break/peeled, restore original vector def gathering.
2506 Make sure to pick the correct exit PHIs.
2507 (vectorizable_live_operation): Pass in the proper stmt_info
2508 for early break exits.
2510 2024-03-06 Richard Sandiford <richard.sandiford@arm.com>
2512 * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
2513 out-of-class definitions of static constants.
2515 2024-03-06 Richard Biener <rguenther@suse.de>
2517 PR tree-optimization/114249
2518 * tree-vect-slp.cc (vect_build_slp_instance): Move making
2519 a BB reduction lane number even ...
2520 (vect_slp_check_for_roots): ... here to avoid leaking
2523 2024-03-06 Richard Biener <rguenther@suse.de>
2525 PR tree-optimization/114246
2526 * tree-ssa-dse.cc (increment_start_addr): Strip useless
2527 type conversions from the adjusted address.
2529 2024-03-06 Jakub Jelinek <jakub@redhat.com>
2531 PR rtl-optimization/114190
2532 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
2533 Call df_remove_problem for df_note before calling df_analyze.
2535 2024-03-05 Cupertino Miranda <cupertino.miranda@oracle.com>
2536 Indu Bhagat <indu.bhagat@oracle.com>
2539 * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
2540 in the correct order of the dimensions.
2541 (gen_ctf_subrange_type): Refactor out handling of
2542 DW_TAG_subrange_type DIE to here.
2544 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
2547 * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
2549 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
2551 * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
2553 * config/aarch64/aarch64-sme.md
2554 (@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
2555 (@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
2556 (@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
2557 * config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
2558 (early_ra::maybe_convert_to_strided_access): Remove support for
2559 strided LUTI2 and LUTI4.
2561 2024-03-05 Richard Earnshaw <rearnsha@arm.com>
2564 * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
2565 low_register_operand.
2567 2024-03-05 Georg-Johann Lay <avr@gjlay.de>
2569 * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
2570 in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
2571 to "X = Y, X o= CST".
2573 2024-03-05 Xi Ruoyao <xry111@xry111.site>
2575 * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
2576 s9 as an alias of r22.
2578 2024-03-05 Roger Sayle <roger@nextmovesoftware.com>
2580 * config/avr/avr-protos.h (avr_out_insv): New proto.
2581 * config/avr/avr.cc (avr_out_insv): New function.
2582 (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
2583 (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
2584 * config/avr/avr.md (define_attr "adjust_len") Add insv.
2585 (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
2586 Add constraint alternative where the 3rd operand is a power
2587 of 2, and the source register may differ from the destination.
2588 (*insv.any_shift.<mode>_split): Call avr_out_insv to output
2589 instructions. Set attr "length" to "insv".
2590 * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
2592 2024-03-05 Richard Biener <rguenther@suse.de>
2594 PR tree-optimization/114231
2595 * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
2596 processing a BB SLP root.
2598 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2600 PR rtl-optimization/114211
2601 * lower-subreg.cc (resolve_simple_move): For double-word
2602 rotates by BITS_PER_WORD if there is overlap between source
2603 and destination use a temporary.
2605 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2607 PR middle-end/114157
2608 * gimple-lower-bitint.cc: Include stor-layout.h.
2609 (mergeable_op): Return true for BIT_FIELD_REF.
2610 (struct bitint_large_huge): Declare handle_bit_field_ref method.
2611 (bitint_large_huge::handle_bit_field_ref): New method.
2612 (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
2614 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2617 * config/i386/i386.h (enum call_saved_registers_type): Add
2618 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
2619 * config/i386/i386-options.cc (ix86_set_func_type): Remove
2620 has_no_callee_saved_registers variable, add no_callee_saved_registers
2621 instead, initialize it depending on whether it is
2622 no_callee_saved_registers function or not. Don't set it if
2623 no_caller_saved_registers attribute is present. Adjust users.
2624 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
2625 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
2626 TYPE_NO_CALLEE_SAVED_REGISTERS.
2627 (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
2629 2024-03-05 Pan Li <pan2.li@intel.com>
2631 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
2632 mode_size related code.
2634 2024-03-05 Patrick Palka <ppalka@redhat.com>
2636 * doc/invoke.texi (-Wno-global-module): Document.
2638 2024-03-04 David Faust <david.faust@oracle.com>
2640 * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
2641 * config/bpf/bpf.cc (bpf_expand_setmem): New.
2642 * config/bpf/bpf.md (setmemdi): New define_expand.
2644 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2646 PR rtl-optimization/113010
2647 * combine.cc (simplify_comparison): Guard the
2648 WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
2649 and initialize inner_mode.
2651 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2653 * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
2654 VMLALDAVAXQ_U cases.
2655 (VMLALDAVXQ): Remove iterator.
2656 (VMLALDAVXQ_P): Likewise.
2657 (VMLALDAVAXQ): Likewise.
2658 * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
2659 mode iterator attribute with V4BI mode.
2660 * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
2661 VMLALDAVAXQ_U): Remove unused unspecs.
2663 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2665 * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
2666 * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
2668 * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
2669 vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
2670 vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
2671 vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
2672 vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
2673 vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
2674 vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
2675 vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
2676 vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
2677 vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
2679 2024-03-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2681 * config/arm/arm.md (mve_unpredicated_insn): New attribute.
2682 * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
2683 (MVE_VPT_UNPREDICATED_INSN_P): Likewise.
2684 (MVE_VPT_PREDICABLE_INSN_P): Likewise.
2685 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
2686 * config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
2687 (arm_vcx1q<a>v16qi): Likewise.
2688 (arm_vcx1qav16qi): Likewise.
2689 (arm_vcx1qv16qi): Likewise.
2690 (arm_vcx2q<a>_p_v16qi): Likewise.
2691 (arm_vcx2q<a>v16qi): Likewise.
2692 (arm_vcx2qav16qi): Likewise.
2693 (arm_vcx2qv16qi): Likewise.
2694 (arm_vcx3q<a>_p_v16qi): Likewise.
2695 (arm_vcx3q<a>v16qi): Likewise.
2696 (arm_vcx3qav16qi): Likewise.
2697 (arm_vcx3qv16qi): Likewise.
2698 (@mve_<mve_insn>q_<supf><mode>): Likewise.
2699 (@mve_<mve_insn>q_int_<supf><mode>): Likewise.
2700 (@mve_<mve_insn>q_<supf>v4si): Likewise.
2701 (@mve_<mve_insn>q_n_<supf><mode>): Likewise.
2702 (@mve_<mve_insn>q_r_<supf><mode>): Likewise.
2703 (@mve_<mve_insn>q_f<mode>): Likewise.
2704 (@mve_<mve_insn>q_m_<supf><mode>): Likewise.
2705 (@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
2706 (@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
2707 (@mve_<mve_insn>q_m_f<mode>): Likewise.
2708 (@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
2709 (@mve_<mve_insn>q_p_<supf>v4si): Likewise.
2710 (@mve_<mve_insn>q_p_<supf><mode>): Likewise.
2711 (@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
2712 (@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
2713 (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
2714 (@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
2715 (mve_v<absneg_str>q_f<mode>): Likewise.
2716 (mve_<mve_addsubmul>q<mode>): Likewise.
2717 (mve_<mve_addsubmul>q_f<mode>): Likewise.
2718 (mve_vadciq_<supf>v4si): Likewise.
2719 (mve_vadciq_m_<supf>v4si): Likewise.
2720 (mve_vadcq_<supf>v4si): Likewise.
2721 (mve_vadcq_m_<supf>v4si): Likewise.
2722 (mve_vandq_<supf><mode>): Likewise.
2723 (mve_vandq_f<mode>): Likewise.
2724 (mve_vandq_m_<supf><mode>): Likewise.
2725 (mve_vandq_m_f<mode>): Likewise.
2726 (mve_vandq_s<mode>): Likewise.
2727 (mve_vandq_u<mode>): Likewise.
2728 (mve_vbicq_<supf><mode>): Likewise.
2729 (mve_vbicq_f<mode>): Likewise.
2730 (mve_vbicq_m_<supf><mode>): Likewise.
2731 (mve_vbicq_m_f<mode>): Likewise.
2732 (mve_vbicq_m_n_<supf><mode>): Likewise.
2733 (mve_vbicq_n_<supf><mode>): Likewise.
2734 (mve_vbicq_s<mode>): Likewise.
2735 (mve_vbicq_u<mode>): Likewise.
2736 (@mve_vclzq_s<mode>): Likewise.
2737 (mve_vclzq_u<mode>): Likewise.
2738 (@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
2739 (@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
2740 (@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
2741 (@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
2742 (@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
2743 (@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
2744 (@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
2745 (@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
2746 (mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
2747 (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
2748 (mve_vcvtaq_<supf><mode>): Likewise.
2749 (mve_vcvtaq_m_<supf><mode>): Likewise.
2750 (mve_vcvtbq_f16_f32v8hf): Likewise.
2751 (mve_vcvtbq_f32_f16v4sf): Likewise.
2752 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
2753 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
2754 (mve_vcvtmq_<supf><mode>): Likewise.
2755 (mve_vcvtmq_m_<supf><mode>): Likewise.
2756 (mve_vcvtnq_<supf><mode>): Likewise.
2757 (mve_vcvtnq_m_<supf><mode>): Likewise.
2758 (mve_vcvtpq_<supf><mode>): Likewise.
2759 (mve_vcvtpq_m_<supf><mode>): Likewise.
2760 (mve_vcvtq_from_f_<supf><mode>): Likewise.
2761 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
2762 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
2763 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
2764 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
2765 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
2766 (mve_vcvtq_n_to_f_<supf><mode>): Likewise.
2767 (mve_vcvtq_to_f_<supf><mode>): Likewise.
2768 (mve_vcvttq_f16_f32v8hf): Likewise.
2769 (mve_vcvttq_f32_f16v4sf): Likewise.
2770 (mve_vcvttq_m_f16_f32v8hf): Likewise.
2771 (mve_vcvttq_m_f32_f16v4sf): Likewise.
2772 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
2773 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
2774 (mve_veorq_s><mode>): Likewise.
2775 (mve_veorq_u><mode>): Likewise.
2776 (mve_veorq_f<mode>): Likewise.
2777 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
2778 (mve_vidupq_u<mode>_insn): Likewise.
2779 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
2780 (mve_viwdupq_wb_u<mode>_insn): Likewise.
2781 (mve_vldrbq_<supf><mode>): Likewise.
2782 (mve_vldrbq_gather_offset_<supf><mode>): Likewise.
2783 (mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
2784 (mve_vldrbq_z_<supf><mode>): Likewise.
2785 (mve_vldrdq_gather_base_<supf>v2di): Likewise.
2786 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
2787 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
2788 (mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
2789 (mve_vldrdq_gather_offset_<supf>v2di): Likewise.
2790 (mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
2791 (mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
2792 (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
2793 (mve_vldrhq_<supf><mode>): Likewise.
2794 (mve_vldrhq_fv8hf): Likewise.
2795 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
2796 (mve_vldrhq_gather_offset_fv8hf): Likewise.
2797 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
2798 (mve_vldrhq_gather_offset_z_fv8hf): Likewise.
2799 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
2800 (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
2801 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
2802 (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
2803 (mve_vldrhq_z_<supf><mode>): Likewise.
2804 (mve_vldrhq_z_fv8hf): Likewise.
2805 (mve_vldrwq_<supf>v4si): Likewise.
2806 (mve_vldrwq_fv4sf): Likewise.
2807 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
2808 (mve_vldrwq_gather_base_fv4sf): Likewise.
2809 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
2810 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
2811 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
2812 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
2813 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
2814 (mve_vldrwq_gather_base_z_fv4sf): Likewise.
2815 (mve_vldrwq_gather_offset_<supf>v4si): Likewise.
2816 (mve_vldrwq_gather_offset_fv4sf): Likewise.
2817 (mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
2818 (mve_vldrwq_gather_offset_z_fv4sf): Likewise.
2819 (mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
2820 (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
2821 (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
2822 (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
2823 (mve_vldrwq_z_<supf>v4si): Likewise.
2824 (mve_vldrwq_z_fv4sf): Likewise.
2825 (mve_vmvnq_s<mode>): Likewise.
2826 (mve_vmvnq_u<mode>): Likewise.
2827 (mve_vornq_<supf><mode>): Likewise.
2828 (mve_vornq_f<mode>): Likewise.
2829 (mve_vornq_m_<supf><mode>): Likewise.
2830 (mve_vornq_m_f<mode>): Likewise.
2831 (mve_vornq_s<mode>): Likewise.
2832 (mve_vornq_u<mode>): Likewise.
2833 (mve_vorrq_<supf><mode>): Likewise.
2834 (mve_vorrq_f<mode>): Likewise.
2835 (mve_vorrq_m_<supf><mode>): Likewise.
2836 (mve_vorrq_m_f<mode>): Likewise.
2837 (mve_vorrq_m_n_<supf><mode>): Likewise.
2838 (mve_vorrq_n_<supf><mode>): Likewise.
2839 (mve_vorrq_s<mode>): Likewise.
2840 (mve_vorrq_s<mode>): Likewise.
2841 (mve_vsbciq_<supf>v4si): Likewise.
2842 (mve_vsbciq_m_<supf>v4si): Likewise.
2843 (mve_vsbcq_<supf>v4si): Likewise.
2844 (mve_vsbcq_m_<supf>v4si): Likewise.
2845 (mve_vshlcq_<supf><mode>): Likewise.
2846 (mve_vshlcq_m_<supf><mode>): Likewise.
2847 (mve_vshrq_m_n_<supf><mode>): Likewise.
2848 (mve_vshrq_n_<supf><mode>): Likewise.
2849 (mve_vstrbq_<supf><mode>): Likewise.
2850 (mve_vstrbq_p_<supf><mode>): Likewise.
2851 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
2852 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
2853 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
2854 (mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
2855 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
2856 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
2857 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
2858 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
2859 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
2860 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
2861 (mve_vstrhq_<supf><mode>): Likewise.
2862 (mve_vstrhq_fv8hf): Likewise.
2863 (mve_vstrhq_p_<supf><mode>): Likewise.
2864 (mve_vstrhq_p_fv8hf): Likewise.
2865 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
2866 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
2867 (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
2868 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
2869 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
2870 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
2871 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
2872 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
2873 (mve_vstrwq_<supf>v4si): Likewise.
2874 (mve_vstrwq_fv4sf): Likewise.
2875 (mve_vstrwq_p_<supf>v4si): Likewise.
2876 (mve_vstrwq_p_fv4sf): Likewise.
2877 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
2878 (mve_vstrwq_scatter_base_fv4sf): Likewise.
2879 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
2880 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
2881 (mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
2882 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
2883 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
2884 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
2885 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
2886 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
2887 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
2888 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
2889 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
2890 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
2891 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
2892 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
2894 2024-03-04 Marek Polacek <polacek@redhat.com>
2896 * doc/extend.texi: Update [[gnu::no_dangling]].
2898 2024-03-04 Andrew Stubbs <ams@baylibre.com>
2900 * dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
2901 * expr.cc (store_constructor): Likewise.
2902 (do_store_flag): Likewise.
2904 2024-03-04 Mark Wielaard <mark@klomp.org>
2906 * common.opt.urls: Regenerate.
2907 * config/avr/avr.opt.urls: Likewise.
2908 * config/i386/i386.opt.urls: Likewise.
2909 * config/pru/pru.opt.urls: Likewise.
2910 * config/riscv/riscv.opt.urls: Likewise.
2911 * config/rs6000/rs6000.opt.urls: Likewise.
2913 2024-03-04 Richard Biener <rguenther@suse.de>
2915 PR tree-optimization/114197
2916 * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
2917 there are volatile bitfield accesses.
2918 (pass_if_conversion::execute): Throw away result if the
2919 if-converted and original loops are not nested as expected.
2921 2024-03-04 Richard Biener <rguenther@suse.de>
2923 PR tree-optimization/114164
2924 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
2925 the code generated for mask argument setup is not supported.
2927 2024-03-04 Richard Biener <rguenther@suse.de>
2929 PR tree-optimization/114203
2930 * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
2931 adjustment before making the result defined at zero.
2933 2024-03-04 Richard Biener <rguenther@suse.de>
2935 PR tree-optimization/114192
2936 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
2937 appropriate def for the live out stmt in case of an alternate
2940 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2942 PR middle-end/114209
2943 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
2944 unshare_expr when creating a MEM_REF from MEM_REF.
2945 (bitint_large_huge::lower_stmt): Call unshare_expr.
2947 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2950 * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
2951 is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
2954 2024-03-04 Roger Sayle <roger@nextmovesoftware.com>
2957 * simplify-rtx.cc (simplify_context::simplify_subreg): Call
2958 lowpart_subreg to perform type conversion, to avoid confusion
2959 over the offset to use in the call to simplify_reg_subreg.
2961 2024-03-03 Greg McGary <gkm@rivosinc.com>
2963 PR rtl-optimization/113010
2964 * combine.cc (simplify_comparison): Simplify a SUBREG on
2965 WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
2968 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2970 * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
2971 Use bool in place of int for boolean logic (if possible).
2972 Move declarations to definitions (if possible).
2973 * config/avr/avr.md: Use C++ comments. Fix some indentation glitches.
2974 * config/avr/avr-dimode.md: Same.
2975 * config/avr/constraints.md: Same.
2976 * config/avr/predicates.md: Same.
2978 2024-03-03 Uros Bizjak <ubizjak@gmail.com>
2981 * config/alpha/alpha.md (umuldi3_highpart): Remove expander.
2982 (*umuldi3_highpart_reg): Rename to umuldi3_highpart and
2983 simplify insn RTX using UMUL_HIGHPART rtx_code.
2984 (*umuldi3_highpart_const): Remove.
2986 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2989 * config/avr/avr-protos.h (_reg_unused_after): Remove proto.
2990 * config/avr/avr.cc (_reg_unused_after): Make static. And
2991 add 3rd argument to skip the current insn.
2992 (reg_unused_after): Adjust call of reg_unused_after.
2993 (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
2994 unneeded frame pointer adjustments.
2996 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2999 * config/avr/avr.md (define_attr "cc"): Remove.
3000 * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
3002 * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
3003 its uses. Add insn argument.
3004 (avr_out_plus_symbol): Remove pcc argument and its uses.
3005 (avr_out_plus): Remove pcc argument and its uses.
3006 Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
3007 (avr_out_round): Adjust call of avr_out_plus.
3009 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
3011 * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
3014 2024-03-03 Oleg Endo <olegendo@gcc.gnu.org>
3017 * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
3018 is not an insn, but e.g. a code label.
3020 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
3022 * config/avr/avr.md (REG_0, ... REG_36): New define_constants.
3023 * config/avr/avr.cc: Use them instead of magic numbers when it
3024 means a register number.
3026 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
3028 * config/avr/avr.cc: Adjust some comments.
3030 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
3033 * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
3034 the low part of the frame pointer with 8-bit stack pointer.
3036 2024-03-01 Patrick Palka <ppalka@redhat.com>
3040 * tree-inline.cc (remap_decl): Handle copy_decl returning the
3042 (remap_decls): Handle remap_decl returning the original decl.
3043 (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
3046 2024-03-01 Jeff Law <jlaw@ventanamicro.com>
3048 * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
3050 (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
3051 (movdi_32bit, movdi_64bit, movsi_internal): Likewise.
3052 (movhi_internal, movqi_internal): Likewise.
3053 (movsf_softfloat, movsf_hardfloat): Likewise.
3054 (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
3055 (movdf_softfloat): Likewise.
3057 2024-03-01 Marek Polacek <polacek@redhat.com>
3061 * doc/extend.texi: Document gnu::no_dangling.
3062 * doc/invoke.texi: Mention that gnu::no_dangling disables
3063 -Wdangling-reference.
3065 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
3067 * config/avr/avr.opt: Overhaul help screen.
3069 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3070 Tobias Burnus <tburnus@baylibre.com>
3073 * gimplify.cc (omp_notice_variable): Fix 'shared' arg to
3074 lang_hooks.decls.omp_disregard_value_expr for
3075 (first)private in target regions.
3077 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3079 PR middle-end/114136
3080 * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
3081 n_named_args initially before INIT_CUMULATIVE_ARGS to
3082 structure_value_addr_parm rather than 0, after it don't modify
3083 it if strict_argument_naming and clear only if
3084 !pretend_outgoing_varargs_named.
3086 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3089 * dwarf2out.cc (should_move_die_to_comdat): Return false for
3090 aggregates without DW_AT_byte_size attribute or with non-constant
3093 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
3095 * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
3096 valid values for level.
3098 2024-03-01 Richard Biener <rguenther@suse.de>
3100 PR middle-end/114070
3101 * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)):
3102 Allow the folding if before lowering and the current IL
3103 isn't supported with vcond_mask.
3105 2024-03-01 xuli <xuli1@eswincomputing.com>
3107 * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
3108 attribute to riscv_attribute_table.
3109 (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
3110 (riscv_fntype_abi): Add riscv_vector_cc attribute check.
3111 * doc/extend.texi: Add riscv_vector_cc attribute description.
3113 2024-03-01 Pan Li <pan2.li@intel.com>
3116 * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
3117 RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
3118 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
3119 (enum rvv_vector_bits_enum): New enum for different RVV vector bits.
3120 * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
3121 comments for option replacement.
3122 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
3123 riscv_autovec_preference to rvv_vector_bits.
3124 (vls_mode_valid_p): Ditto.
3125 (estimated_poly_value): Ditto.
3126 * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
3127 vector chunks and honor new option mrvv-vector-bits.
3128 (riscv_override_options_internal): Update comments and rename the
3130 * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
3131 internal option param=riscv-autovec-preference.
3133 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3135 * function.cc (assign_parms): Only call assign_parms_setup_varargs
3136 early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
3138 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3140 PR middle-end/114156
3141 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
3142 rhs1 of a VCE to have no underlying variable if it is a load and
3145 2024-02-29 David Malcolm <dmalcolm@redhat.com>
3148 * function.cc (function_name): Make param const.
3149 * function.h (function_name): Likewise.
3151 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
3154 * doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
3155 * config/avr/avr.opt (-mfuse-add=): New target option.
3156 * common/config/avr/avr-common.cc (avr_option_optimization_table)
3157 [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
3158 [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
3159 * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
3160 * config/avr/avr-protos.h (avr_split_tiny_move)
3161 (make_avr_pass_fuse_add): New protos.
3162 * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
3163 avr_split_tiny_move to split indirect memory accesses.
3164 (gen_move_clobbercc): New define_expand helper.
3165 * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
3166 (avr_pass_fuse_add): New class from rtl_opt_pass.
3167 (make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
3168 (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
3169 (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
3170 of PLUS addressing for AVR_TINY.
3171 (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
3172 (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
3173 (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
3175 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
3178 * config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
3179 * config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
3180 (avr_function_arg): Set it.
3181 (avr_frame_pointer_required_p): Use it instead of .nregs.
3183 2024-02-29 Andrew Pinski <quic_apinski@quicinc.com>
3186 * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
3187 static and mark with GTY.
3189 2024-02-29 Xi Ruoyao <xry111@xry111.site>
3191 * config/loongarch/loongarch.md
3192 (loongarch_<crc>_w_<size>_w_extended): New define_insn.
3194 2024-02-29 Xi Ruoyao <xry111@xry111.site>
3196 * config/loongarch/loongarch.md (CRC): New define_int_iterator.
3197 (crc): New define_int_attr.
3198 (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
3200 (loongarch_<crc>_w_<size>_w): ... here.
3202 2024-02-29 Kito Cheng <kito.cheng@sifive.com>
3205 * config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
3206 extend the expected value if needed.
3208 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3210 * config.gcc (target_gtfiles): Change coreout to btfext-out.
3211 (extra_objs): Change coreout to btfext-out.
3212 * config/bpf/coreout.cc: Rename to btfext-out.cc.
3213 * config/bpf/btfext-out.cc: Add.
3214 * config/bpf/coreout.h: Rename to btfext-out.h.
3215 * config/bpf/btfext-out.h: Add.
3216 * config/bpf/core-builtins.cc: Change include.
3217 * config/bpf/core-builtins.h: Change include.
3218 * config/bpf/t-bpf: Accomodate renamed files.
3220 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3223 * config/bpf/bpf.cc (bpf_function_prologue): Define target
3225 * config/bpf/coreout.cc (brf_ext_info_section)
3226 (btf_ext_info): Move from coreout.h
3227 (btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
3228 (bpf_core_reloc): Rename to btf_ext_core_reloc.
3229 (btf_ext): Add static variable.
3230 (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
3231 (bpf_create_or_find_funcinfo, bpt_create_core_reloc)
3232 (btf_ext_add_string, btf_funcinfo_type_callback)
3233 (btf_add_func_info_for, btf_validate_funcinfo)
3234 (btf_ext_info_len, output_btfext_func_info): Add function.
3235 (output_btfext_header, bpf_core_reloc_add)
3236 (output_btfext_core_relocs, btf_ext_init, btf_ext_output):
3237 Change to support new structs.
3238 * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
3239 Move and change in coreout.cc.
3240 (btf_add_func_info_for, btf_ext_add_string): Add prototypes.
3242 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3244 * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
3245 enabled by default for BPF.
3246 (bpf_file_end): Call BTF deallocation.
3247 (bpf_asm_init_sections): Correct condition.
3248 * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
3250 (ctf_debuf_finish): Correct condition for calling
3253 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3255 * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
3256 (traverse_btf_func_types): Define function.
3257 * ctfc.h (funcs_traverse_callback): Typedef for function
3259 (traverse_btf_func_types): Add prototype.
3261 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3263 * btfout.cc (btf_collect_dataset): Corrects BTF type id.
3265 2024-02-28 Richard Biener <rguenther@suse.de>
3267 PR tree-optimization/113831
3268 PR tree-optimization/108355
3269 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
3272 2024-02-28 Richard Biener <rguenther@suse.de>
3274 PR tree-optimization/114121
3275 * tree-ssa-sccvn.h (vn_reference_s::offset,
3276 vn_reference_s::max_size): New fields.
3277 (vn_reference_insert_pieces): Adjust prototype.
3278 * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
3279 * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
3280 size, allow using "don't know" state.
3281 (vn_walk_cb_data::finish): Pass along offset/max_size.
3282 (vn_reference_lookup_or_insert_for_pieces): Take offset and
3283 max_size as argument and use it.
3284 (vn_reference_lookup_3): Properly adjust offset and max_size
3285 according to the adjusted ao_ref.
3286 (vn_reference_lookup_pieces): Initialize offset and max_size.
3287 (vn_reference_lookup): Likewise.
3288 (vn_reference_lookup_call): Likewise.
3289 (vn_reference_insert): Likewise.
3290 (visit_reference_op_call): Likewise.
3291 (vn_reference_insert_pieces): Take offset and max_size
3292 as argument and use it.
3294 2024-02-28 Juergen Christ <jchrist@linux.ibm.com>
3296 PR tree-optimization/114075
3297 * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
3300 2024-02-28 Jakub Jelinek <jakub@redhat.com>
3302 PR tree-optimization/114041
3303 * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
3304 INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
3306 2024-02-28 Jakub Jelinek <jakub@redhat.com>
3308 PR tree-optimization/113988
3309 * stor-layout.h (bitwise_mode_for_size): Declare.
3310 * stor-layout.cc (bitwise_mode_for_size): New function.
3311 * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
3312 Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
3313 Use BITS_PER_UNIT instead of 8.
3315 2024-02-27 Uros Bizjak <ubizjak@gmail.com>
3318 * config/i386/mmx.md (V248FI): Add V2BF mode.
3321 2024-02-27 Eric Botcazou <ebotcazou@adacore.com>
3323 * tree-ssa-dse.cc (compute_trims): Fix description. Return early
3324 if either ref->offset is not byte aligned or ref->size is not known
3325 to be equal to ref->max_size.
3326 (maybe_trim_complex_store): Fix description.
3327 (maybe_trim_constructor_store): Likewise.
3328 (maybe_trim_partially_dead_store): Likewise.
3330 2024-02-27 Richard Earnshaw <rearnsha@arm.com>
3332 * config/arm/mmintrin.h: Warn if this header is included without
3333 defining __ENABLE_DEPRECATED_IWMMXT.
3335 2024-02-27 Richard Biener <rguenther@suse.de>
3337 PR tree-optimization/114074
3338 * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
3339 * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
3340 Handle poly vs. non-poly multiplication correctly with respect
3341 to undefined behavior on overflow.
3343 2024-02-27 Jakub Jelinek <jakub@redhat.com>
3345 PR rtl-optimization/114044
3346 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
3347 DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
3348 * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
3349 expand_PARITY): Declare.
3350 * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
3351 expand_CTZ, expand_FFS, expand_PARITY): New functions.
3352 (expand_POPCOUNT): Use expand_bitquery.
3354 2024-02-27 Richard Biener <rguenther@suse.de>
3356 PR tree-optimization/114081
3357 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3358 Perform manual dominator update for prologue peeling.
3359 (vect_do_peeling): Properly update dominators after adding the
3360 prologue-around guard.
3362 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
3364 * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
3365 (mstrict-X): Tag as "Optimization".
3367 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
3369 * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
3370 an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
3372 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3373 H.J. Lu <hjl.tools@gmail.com>
3375 PR rtl-optimization/113617
3376 * varasm.cc (default_elf_select_rtx_section): For
3377 references to private symbols in comdat sections
3378 use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
3379 or .rodata.<comdat> comdat sections.
3381 2024-02-26 Richard Biener <rguenther@suse.de>
3383 PR tree-optimization/114099
3384 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3385 Create and fill in a needed virtual LC PHI for the alternate
3386 exits. Remove code dealing with that missing.
3388 2024-02-26 Richard Biener <rguenther@suse.de>
3390 PR tree-optimization/114068
3391 * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
3393 (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
3394 on the main exit if needed. Remove band-aid for the case
3397 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
3400 * config/i386/i386-options.cc (ix86_set_func_type): Check
3401 interrupt instead of noreturn attribute.
3403 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3405 * config/i386/i386.cc (ix86_bitint_type_info): Add support for
3408 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3410 PR tree-optimization/114090
3411 * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
3412 Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
3414 ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
3416 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3418 PR middle-end/114084
3419 * fold-const.cc (fold_binary_loc): Avoid the final associate_trees
3420 if all subtrees of var0 come from one of the op0 or op1 operands
3421 and all subtrees of con0 come from the other one. Don't clear
3422 variables which are never used afterwards.
3424 2024-02-26 Richard Biener <rguenther@suse.de>
3426 PR middle-end/114070
3427 * genmatch.cc (parser::parse_c_expr): Do not record operand
3428 lists but only mark operators used.
3429 * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)):
3430 Properly guard the case of tcc_comparison changing the VEC_COND
3433 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3436 * config/i386/i386.cc (x86_function_profiler): Add missing new-line
3437 to printed instruction.
3439 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
3442 * config/i386/amxtileintrin.h (_tile_loadconfig): Use
3443 __builtin_ia32_ldtilecfg.
3444 (_tile_storeconfig): Use __builtin_ia32_sttilecfg.
3445 * config/i386/i386-builtin.def (BDESC): Add
3446 __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
3447 * config/i386/i386-expand.cc (ix86_expand_builtin): Handle
3448 IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
3449 * config/i386/i386.md (ldtilecfg): New pattern.
3450 (sttilecfg): Likewise.
3452 2024-02-24 Richard Sandiford <richard.sandiford@arm.com>
3454 PR tree-optimization/113205
3455 * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
3456 the proposed layout if it does not allow a source partition with
3457 layout 2 to keep that layout.
3459 2024-02-24 Jakub Jelinek <jakub@redhat.com>
3461 * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
3462 * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
3463 * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
3464 * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
3465 (mk_attr_alt): Use HOST_WIDE_INT_0 macro.
3466 * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
3468 * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
3469 * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
3470 * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
3471 HOST_WIDE_INT_UC macros.
3472 * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
3473 * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
3474 * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
3475 * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
3477 * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
3478 * config/i386/constraints.md (define_constraint "L"): Use
3479 HOST_WIDE_INT_C macro.
3480 * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
3482 (movl + movb peephole2): Likewise.
3483 * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
3484 (const_32bit_mask): Likewise.
3486 2024-02-24 Jakub Jelinek <jakub@redhat.com>
3488 PR middle-end/114073
3489 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
3490 VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
3491 types like vector or complex types.
3492 (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
3493 types. Fix up VIEW_CONVERT_EXPR handling. Allow merging
3494 VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
3496 2024-02-23 Robin Dapp <rdapp@ventanamicro.com>
3499 * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
3500 Return false if inner mode is already Pmode.
3501 (rvv_builder::is_all_same_sequence): New function.
3502 (expand_vec_init): Emit broadcast if sequence is all same.
3504 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3507 * config/aarch64/aarch64-early-ra.cc
3508 (early_ra::m_current_region): New member variable.
3509 (early_ra::m_fpr_recency): Likewise.
3510 (early_ra::start_new_region): Bump m_current_region.
3511 (early_ra::allocate_colors): Prefer less recently used registers
3512 in the event of a tie. Add a comment to explain why we prefer(ed)
3513 higher-numbered registers.
3514 (early_ra::find_oldest_color): Prefer less recently used registers
3516 (early_ra::finalize_allocation): Update recency information for
3517 allocated registers.
3518 (early_ra::process_blocks): Initialize m_current_region and
3521 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3524 * config/aarch64/aarch64-early-ra.cc
3525 (early_ra::test_strictness): New enum.
3526 (early_ra::is_chain_candidate): Add a strictness parameter to
3527 control whether only correctness matters, or whether both correctness
3528 and heuristics should be used. Handle multiple levels of equivalence.
3529 (early_ra::find_related_start): Update call accordingly.
3530 (early_ra::strided_polarity_pref): Likewise.
3531 (early_ra::form_chains): Likewise.
3532 (early_ra::try_to_chain_allocnos): Use is_chain_candidate in
3533 correctness mode rather than trying to inline the test.
3535 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3538 * config/aarch64/aarch64-early-ra.cc
3539 (early_ra::find_related_start): Account for definitions by shared
3540 registers when testing for a single register definition.
3541 (early_ra::accumulate_defs): New function.
3542 (early_ra::record_copy): If A shares B's register, fold A's
3543 definition information into B's. Fold A's use information into B's.
3545 2024-02-23 H.J. Lu <hjl.tools@gmail.com>
3547 * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
3548 if R_X86_64_CODE_6_GOTTPOFF is supported.
3549 * config.in: Regenerated.
3550 * configure: Likewise.
3551 * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
3552 UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
3554 2024-02-23 Richard Earnshaw <rearnsha@arm.com>
3557 * config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
3558 Gate with ARM_HAVE_NEON_<MODE>_ARITH.
3560 2024-02-23 Jakub Jelinek <jakub@redhat.com>
3562 PR rtl-optimization/114054
3563 * expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
3564 temp variable instead of target parameter for result.
3566 2024-02-23 Jakub Jelinek <jakub@redhat.com>
3568 PR tree-optimization/114040
3569 * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
3570 Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
3571 probability from likely to unlikely. When handling the true true
3572 store, first cast to limb_access_type and then to l's type.
3574 2024-02-23 Richard Biener <rguenther@suse.de>
3577 * config.gcc: Add ia64*-*-* to the list of obsoleted targets.
3579 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
3582 * config/riscv/arch-canonicalize: Move to python3
3583 * config/riscv/multilib-generator: Likewise
3585 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
3587 * doc/invoke.texi: Document -mcpu.
3589 2024-02-23 Lulu Cheng <chenglulu@loongson.cn>
3591 * configure: Regenerate.
3592 * configure.ac: Add parameter "--fatal-warnings" to assemble
3593 when checking whether the assemble support conditional branch
3596 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3599 * doc/extend.texi: (__extension__): Remove comments about scope
3600 tokens vs. two colons.
3602 2024-02-22 Andrew Pinski <quic_apinski@quicinc.com>
3604 PR tree-optimization/109804
3605 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
3606 DEMANGLE_COMPONENT_UNNAMED_TYPE.
3608 2024-02-22 Richard Biener <rguenther@suse.de>
3610 PR tree-optimization/114048
3611 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
3612 can also produce -1 off.
3614 2024-02-22 Richard Biener <rguenther@suse.de>
3616 PR tree-optimization/114027
3617 * tree-vect-loop.cc (vecctorizable_reduction): Use optimized
3618 condition reduction classification only for single-element
3621 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3624 * profile-count.h (profile_count::dump): Remove overload with
3625 char * first argument.
3626 * profile-count.cc (profile_count::dump): Change overload with char *
3627 first argument which uses sprintf into the overfload with FILE *
3628 first argument and use fprintf instead. Remove overload which wrapped
3631 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3633 PR tree-optimization/113993
3634 * tree-call-cdce.cc (get_no_error_domain): Handle
3635 BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle
3636 BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
3637 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
3638 the as the F128 suffixed cases, otherwise as non-suffixed ones.
3639 Handle BUILT_IN_{EXP,POW}10L for
3640 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
3643 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3645 PR tree-optimization/114038
3646 * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
3647 loop exit condition if end is divisible by limb_prec.
3649 2024-02-22 YunQiang Su <syq@gcc.gnu.org>
3651 * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
3652 problem of mabi=, mno-flush-func, mexplicit-relocs;
3653 add missing leading - of mbranch-cost option.
3654 * config/mips/mips.opt.urls: Regenerate.
3656 2024-02-22 Kewen Lin <linkw@linux.ibm.com>
3659 * config/rs6000/constraints.md (we): Update internal doc without
3660 referring to option -mpower9-vector.
3661 * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
3663 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
3664 OTHER_P8_VECTOR_MASKS): Merge to ...
3665 (OTHER_VSX_VECTOR_MASKS): ... here.
3666 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
3667 some error message handlings and explicit option mask adjustments on
3668 explicit option power{8,9}-vector conflicting with other options.
3669 (rs6000_print_isa_options): Update comments.
3670 (rs6000_disable_incompatible_switches): Remove power{8,9}-vector
3671 related array items and handlings.
3672 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
3674 * config/rs6000/rs6000.opt: Make option power{8,9}-vector as
3676 * doc/extend.texi: Remove documentation referring to option
3678 * doc/invoke.texi: Remove documentation for option
3679 -mpower{8,9}-vector and adjust some documentation referring to them.
3680 * doc/md.texi: Update documentation for constraint we.
3681 * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
3683 2024-02-22 Pan Li <pan2.li@intel.com>
3686 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
3687 the version to 0.12.
3689 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3691 * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
3693 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3694 Robin Dapp <rdapp.gcc@gmail.com>
3696 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
3697 (generic_ooo_vec_load): Ditto
3698 (generic_ooo_vec_store): Ditto
3699 (generic_ooo_vec_loadstore_seg): Ditto
3700 (generic_ooo_vec_alu): Ditto
3701 (generic_ooo_vec_fcmp): Ditto
3702 (generic_ooo_vec_imul): Ditto
3703 (generic_ooo_vec_fadd): Ditto
3704 (generic_ooo_vec_fmul): Ditto
3705 (generic_ooo_crypto): Ditto
3706 (generic_ooo_perm): Ditto
3707 (generic_ooo_vec_reduction): Ditto
3708 (generic_ooo_vec_ordered_reduction): Ditto
3709 (generic_ooo_vec_idiv): Ditto
3710 (generic_ooo_vec_float_divsqrt): Ditto
3711 (generic_ooo_vec_mask): Ditto
3712 (generic_ooo_vec_vesetvl): Ditto
3713 (generic_ooo_vec_setrm): Ditto
3714 (generic_ooo_vec_readlen): Ditto
3715 * config/riscv/riscv.md: Include generic-vector-ooo
3716 * config/riscv/generic-vector-ooo.md: New file. To here
3718 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3720 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
3721 (generic_ooo_branch): Ditto
3722 * config/riscv/generic.md (generic_sfb_alu): Ditto
3723 (generic_fmul_half): Ditto
3724 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
3725 * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
3726 (sifive_7_popcount): Ditto
3727 * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
3728 * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
3729 * config/riscv/vector.md: Change rdfrm to fmove
3730 * config/riscv/zc.md: Change pushpop to load/store
3732 2024-02-21 Jonathan Wakely <jwakely@redhat.com>
3734 * doc/invoke.texi (Warning Options): Fix typos.
3736 2024-02-21 David Faust <david.faust@oracle.com>
3738 * config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
3739 * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
3740 * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
3742 2024-02-21 Martin Jambor <mjambor@suse.cz>
3745 * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
3746 initializers in the contructor.
3747 (ipa_node_params::~ipa_node_params): Release lattices as a vector.
3748 * ipa-cp.h: New file.
3749 * ipa-cp.cc: Include sreal.h and ipa-cp.h.
3750 (ipcp_value_source): Move to ipa-cp.h.
3751 (ipcp_value_base): Likewise.
3752 (ipcp_value): Likewise.
3753 (ipcp_lattice): Likewise.
3754 (ipcp_agg_lattice): Likewise.
3755 (ipcp_bits_lattice): Likewise.
3756 (ipcp_vr_lattice): Likewise.
3757 (ipcp_param_lattices): Likewise.
3758 (ipa_get_parm_lattices): Remove assert latticess is non-NULL.
3759 (ipa_value_from_jfunc): Adjust a check for empty lattices.
3760 (ipa_context_from_jfunc): Likewise.
3761 (ipa_agg_value_from_jfunc): Likewise.
3762 (merge_agg_lats_step): Do not memset new aggregate lattices to zero.
3763 (ipcp_propagate_stage): Allocate lattices in a vector as opposed to
3764 just in contiguous memory.
3765 (ipcp_store_vr_results): Adjust a check for empty lattices.
3766 * auto-profile.cc: Include sreal.h and ipa-cp.h.
3767 * cgraph.cc: Likewise.
3768 * cgraphclones.cc: Likewise.
3769 * cgraphunit.cc: Likewise.
3770 * config/aarch64/aarch64.cc: Likewise.
3771 * config/i386/i386-builtins.cc: Likewise.
3772 * config/i386/i386-expand.cc: Likewise.
3773 * config/i386/i386-features.cc: Likewise.
3774 * config/i386/i386-options.cc: Likewise.
3775 * config/i386/i386.cc: Likewise.
3776 * config/rs6000/rs6000.cc: Likewise.
3777 * config/s390/s390.cc: Likewise.
3778 * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
3779 files to be included in gtype-desc.cc.
3780 * gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
3781 * ipa-devirt.cc: Likewise.
3782 * ipa-fnsummary.cc: Likewise.
3783 * ipa-icf.cc: Likewise.
3784 * ipa-inline-analysis.cc: Likewise.
3785 * ipa-inline-transform.cc: Likewise.
3786 * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
3787 * ipa-modref.cc: Include sreal.h and ipa-cp.h.
3788 * ipa-param-manipulation.cc: Likewise.
3789 * ipa-predicate.cc: Likewise.
3790 * ipa-profile.cc: Likewise.
3791 * ipa-prop.cc: Likewise.
3792 (ipa_node_params_t::duplicate): Assert new lattices remain empty
3793 instead of setting them to NULL.
3794 * ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
3795 * ipa-split.cc: Likewise.
3796 * ipa-sra.cc: Likewise.
3797 * ipa-strub.cc: Likewise.
3798 * ipa-utils.cc: Likewise.
3800 * toplev.cc: Likewise.
3801 * tree-ssa-ccp.cc: Likewise.
3802 * tree-ssa-sccvn.cc: Likewise.
3803 * tree-vrp.cc: Likewise.
3805 2024-02-21 Tamar Christina <tamar.christina@arm.com>
3807 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
3810 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3812 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3813 Use aarch64_gen_compare_zero_and_branch rather than emitting
3816 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3818 * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
3819 Remove duplicated call.
3821 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3823 * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
3824 Check that each individual piece of state is shared in the same
3825 way, rather than using an aggregate check for PSTATE.ZA.
3827 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3829 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3830 In the code that commits a lazy save, only zero ZA if the function
3831 has ZA state. Similarly zero ZT0 if the function has ZT0 state.
3833 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3835 * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
3836 directly inserting the associated sequence
3837 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3840 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3843 * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
3844 fold the SVE allocation into the initial allocation if the
3845 initial allocation includes a VG save.
3847 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3850 * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
3851 contain jumps even if called after initial RTL expansion.
3852 * mode-switching.cc: Include cfgbuild.h.
3853 (optimize_mode_switching): Allow the sequence returned by the
3854 emit hook to contain internal jumps. Record which blocks
3855 contain such jumps and split the blocks at the end.
3856 * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
3857 non-debug insns when scanning the sequence.
3859 2024-02-21 Tobias Burnus <tburnus@baylibre.com>
3861 * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
3862 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
3864 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
3866 * doc/invoke.texi (-mmcu): Add information about MCU specs.
3868 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
3870 * doc/invoke.texi (-minrt): Clarify that main
3871 must take no arguments.
3873 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
3875 * config/avr/builtins.def: Use function prototypes of given size
3877 * config/avr/avr.cc (avr_init_builtins): Adjust types required
3879 * doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
3881 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
3883 * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
3886 2024-02-20 Will Hawkins <hawkinsw@obs.cr>
3888 * config/bpf/bpf.opt: Add help information for -mcpu.
3890 2024-02-20 Richard Sandiford <richard.sandiford@arm.com>
3893 * config/aarch64/aarch64-passes.def (pass_late_track_speculation):
3895 * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
3897 * config/aarch64/aarch64.md (is_call): New attribute.
3898 (*and<mode>3nr_compare0): Rename to...
3899 (@aarch64_and<mode>3nr_compare0): ...this.
3900 * config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
3901 (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
3902 * config/aarch64/aarch64-speculation.cc: Update file comment to
3903 describe the new late pass.
3904 (aarch64_do_track_speculation): Handle is_call insns like other calls.
3905 (pass_track_speculation): Add an is_late member variable.
3906 (pass_track_speculation::gate): Run the late pass for streaming-
3907 compatible functions and the early pass for other functions.
3908 (make_pass_track_speculation): Update accordingly.
3909 (make_pass_late_track_speculation): New function.
3910 * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
3912 (aarch64_guard_switch_pstate_sm): Use it.
3914 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
3916 * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
3917 Register these builtins with a pointer to uint64_t rather than unsigned
3920 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
3923 * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
3924 Conditionalize on '!TARGET_RDNA2_PLUS'.
3925 * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
3926 (gcn_expand_reduc_scalar):
3927 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
3929 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
3931 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
3932 '__gfx90a__' target CPU definition. Add some safeguards for the future.
3934 2024-02-19 Richard Biener <rguenther@suse.de>
3936 PR rtl-optimization/54052
3937 * rtl-ssa/blocks.cc (function_info::place_phis): Filter
3938 local defs by LR_OUT.
3940 2024-02-19 Jakub Jelinek <jakub@redhat.com>
3942 PR tree-optimization/113967
3943 * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
3944 in condition that @rpos is multiple of vector element size.
3946 2024-02-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3949 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
3950 Suppress vsetvl fusion.
3952 2024-02-18 H.J. Lu <hjl.tools@gmail.com>
3955 * config/i386/i386.cc (ix86_can_use_push2pop2): New.
3956 (ix86_pro_and_epilogue_can_use_push2pop2): Use it.
3957 (ix86_emit_save_regs): Don't generate push2 if
3958 ix86_can_use_push2pop2 return false.
3959 (ix86_expand_epilogue): Don't generate pop2 if
3960 ix86_can_use_push2pop2 return false.
3962 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
3964 * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
3965 Note on complete device support.
3967 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
3969 * doc/extend.texi (AVR Function Attributes): Fuse description
3970 of "signal" and "interrupt" attribute. Link pseudo instruction.
3972 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
3974 * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
3975 symbol type conversions.
3976 (__cacop_d): Likewise.
3977 (__cpucfg): Likewise.
3978 (__asrtle_d): Likewise.
3979 (__asrtgt_d): Likewise.
3980 (__lddir_d): Likewise.
3981 (__ldpte_d): Likewise.
3982 (__crc_w_b_w): Likewise.
3983 (__crc_w_h_w): Likewise.
3984 (__crc_w_w_w): Likewise.
3985 (__crc_w_d_w): Likewise.
3986 (__crcc_w_b_w): Likewise.
3987 (__crcc_w_h_w): Likewise.
3988 (__crcc_w_w_w): Likewise.
3989 (__crcc_w_d_w): Likewise.
3990 (__csrrd_w): Likewise.
3991 (__csrwr_w): Likewise.
3992 (__csrxchg_w): Likewise.
3993 (__csrrd_d): Likewise.
3994 (__csrwr_d): Likewise.
3995 (__csrxchg_d): Likewise.
3996 (__iocsrrd_b): Likewise.
3997 (__iocsrrd_h): Likewise.
3998 (__iocsrrd_w): Likewise.
3999 (__iocsrrd_d): Likewise.
4000 (__iocsrwr_b): Likewise.
4001 (__iocsrwr_h): Likewise.
4002 (__iocsrwr_w): Likewise.
4003 (__iocsrwr_d): Likewise.
4004 (__frecipe_s): Likewise.
4005 (__frecipe_d): Likewise.
4006 (__frsqrte_s): Likewise.
4007 (__frsqrte_d): Likewise.
4009 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
4011 * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
4012 function return value type to unsigned short.
4014 2024-02-16 Edwin Lu <ewlu@rivosinc.com>
4016 * doc/sourcebuild.texi: add scan-assembler-bound
4018 2024-02-16 Jason Merrill <jason@redhat.com>
4020 * gdbhooks.py: Fix regex syntax.
4022 2024-02-16 Richard Biener <rguenther@suse.de>
4024 PR tree-optimization/113895
4025 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
4026 consistency checking when there are out-of-bound array
4027 accesses. Allow -1 off when from an array reference with
4030 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
4033 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
4036 2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4038 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4039 attribugs): Document linker_plugin.
4040 (Require Support): Document dg-require-linker-plugin.
4042 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
4045 * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
4046 * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
4047 (RISCV_MINOR_VERSION_BASE): Ditto.
4048 (RISCV_REVISION_VERSION_BASE): Ditto.
4049 * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
4050 rather than magic number.
4051 * config/riscv/riscv.h (riscv_arch_help): New.
4052 (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
4053 (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
4054 --print-supported-extensions.
4055 * config/riscv/riscv.opt (march=help): New.
4056 (print-supported-extensions): New.
4057 (-print-supported-extensions): New.
4058 * doc/invoke.texi (RISC-V Options): Document -march=help.
4060 2024-02-16 Tejas Belagod <tejas.belagod@arm.com>
4063 * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
4064 for indirect calls with 4 or more arguments in pac-enabled functions.
4066 2024-02-15 David Faust <david.faust@oracle.com>
4068 * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
4069 use ldxb instead of ldxh.
4071 2024-02-15 Jakub Jelinek <jakub@redhat.com>
4073 PR middle-end/113921
4074 * cfgrtl.h (prepend_insn_to_edge): New declaration.
4075 * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
4077 (prepend_insn_to_edge): New function.
4078 * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
4079 insert_insn_on_edge.
4081 2024-02-15 Richard Biener <rguenther@suse.de>
4083 PR tree-optimization/111156
4084 * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
4085 at the pattern stmt if any.
4087 2024-02-15 Georg-Johann Lay <avr@gjlay.de>
4090 * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
4091 * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
4092 * config/avr/avr.cc (avr_adiw_reg_p): New function.
4093 (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
4094 Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
4095 * config/avr/avr.md: Same.
4096 (attr "isa") <tiny, no_tiny>: Remove.
4097 <adiw, no_adiw>: Add.
4098 (define_insn, define_insn_and_split): When an alternative has
4099 constraint "w", then set attribute "isa" to "adiw".
4100 * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
4101 Built-in define __AVR_HAVE_ADIW__.
4102 * doc/invoke.texi (AVR Options): Document it.
4104 2024-02-15 Andrew Stubbs <ams@baylibre.com>
4106 * config/gcn/gcn-valu.md
4107 (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
4108 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
4109 details are supported on RDNA devices.
4111 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
4113 PR middle-end/113508
4114 * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
4115 usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
4116 smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
4117 Add sentence about what the mode m is.
4119 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
4121 * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
4122 smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
4125 2024-02-15 Richard Biener <rguenther@suse.de>
4127 * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
4130 2024-02-15 Jakub Jelinek <jakub@redhat.com>
4132 PR tree-optimization/113567
4133 * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
4134 _BitInt multiplication, division or modulo with
4135 SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
4136 force the affected inputs into a new SSA_NAME.
4138 2024-02-14 Uros Bizjak <ubizjak@gmail.com>
4141 * config/i386/mmx.md (V248FI): New mode iterator.
4143 (vec_shl_<V248FI:mode>): New expander.
4144 (vec_shl_<V24FI_32:mode>): Ditto.
4145 (vec_shr_<V248FI:mode>): Ditto.
4146 (vec_shr_<V24FI_32:mode>): Ditto.
4147 * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
4148 (vec_shr_<V248FI:mode>): Ditto.
4150 2024-02-14 Jan Hubicka <jh@suse.cz>
4152 PR tree-optimization/111054
4153 * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
4155 2024-02-14 Tamar Christina <tamar.christina@arm.com>
4157 * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
4159 2024-02-14 Richard Biener <rguenther@suse.de>
4161 PR tree-optimization/113910
4162 * bitmap.cc (bitmap_hash): Mix the full element "hash" to
4165 2024-02-14 Jakub Jelinek <jakub@redhat.com>
4167 * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
4168 (pp_integer_with_precision): For unsigned ptrdiff_t printing
4169 with u, o or x print ptrdiff_t argument converted to
4170 unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
4172 2024-02-14 Richard Biener <rguenther@suse.de>
4174 PR middle-end/113576
4175 * expr.cc (do_store_flag): For vector bool compares of vectors
4176 with padding zero that.
4177 * dojump.cc (do_compare_and_jump): Likewise.
4179 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
4181 * doc/install.texi (Prerequisites): Update gettext link.
4183 2024-02-13 H.J. Lu <hjl.tools@gmail.com>
4186 * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
4187 Return false if the incoming stack isn't 16-byte aligned.
4189 2024-02-13 Tobias Burnus <tburnus@baylibre.com>
4191 PR middle-end/113904
4192 * omp-general.cc (struct omp_ts_info): Update for splitting of
4193 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
4194 * omp-selectors.h (enum omp_tp_type): Replace
4195 OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
4197 2024-02-13 Monk Chiang <monk.chiang@sifive.com>
4200 * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
4201 recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
4203 2024-02-13 Richard Biener <rguenther@suse.de>
4205 PR tree-optimization/113895
4206 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
4207 offset to discover constant array indices in bits, handle
4208 COMPONENT_REF to bitfields.
4210 2024-02-13 Richard Biener <rguenther@suse.de>
4212 PR tree-optimization/113831
4213 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
4216 2024-02-13 Richard Biener <rguenther@suse.de>
4218 PR tree-optimization/113902
4219 * tree-vect-loop.cc (move_early_exit_stmts): Track
4220 last_seen_vuse for VUSE updating.
4222 2024-02-13 Tamar Christina <tamar.christina@arm.com>
4224 PR tree-optimization/113734
4225 * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
4226 an early break loop as partial.
4228 2024-02-13 Richard Biener <rguenther@suse.de>
4230 PR tree-optimization/113898
4231 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
4232 missing accumulated off adjustment.
4234 2024-02-13 Jakub Jelinek <jakub@redhat.com>
4236 * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
4237 instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
4238 it against UINT_MAX and ULONG_MAX.
4240 2024-02-13 David Malcolm <dmalcolm@redhat.com>
4242 * diagnostic-core.h (emit_diagnostic_valist): Rename overload
4244 (emit_diagnostic_valist_meta): ...this.
4245 * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
4246 (emit_diagnostic_valist_meta): ...this.
4248 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4250 PR tree-optimization/113849
4251 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
4252 fast path for widening casts where !m_upwards_2limb and lhs_type
4253 has precision which is a multiple of limb_prec.
4255 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4258 * attribs.cc (extract_attribute_substring): Remove.
4259 (lookup_scoped_attribute_spec): Don't call it.
4261 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4263 * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
4264 and cast to fmt_size_t instead of %lu and cast to unsigned long.
4266 2024-02-12 Christophe Lyon <christophe.lyon@linaro.org>
4268 * Makefile.in: Add no-info dependency.
4269 * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
4271 * configure: Regenerate.
4273 2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
4276 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
4277 available to all sub-targets.
4278 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
4279 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
4281 2024-02-12 Richard Biener <rguenther@suse.de>
4283 PR tree-optimization/113831
4284 PR tree-optimization/108355
4285 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
4286 we see variable array indices and get_ref_base_and_extent
4287 can resolve those to constants fix up the ops to constants
4289 (ao_ref_init_from_vn_reference): Use 'off' member for
4290 ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
4291 (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
4293 2024-02-12 Pan Li <pan2.li@intel.com>
4295 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
4296 Replace args to arguments for misspelled term.
4298 2024-02-12 Georg-Johann Lay <avr@gjlay.de>
4301 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
4302 <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
4303 when not linked with -mrodata-in-ram.
4305 2024-02-12 Richard Biener <rguenther@suse.de>
4307 PR tree-optimization/113863
4308 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4309 Record crossed virtual PHIs.
4310 * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
4313 2024-02-10 Marek Polacek <polacek@redhat.com>
4318 * doc/invoke.texi: Document -Wtemplate-id-cdtor.
4320 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4322 * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
4323 computation of idx for i == 4 of bitint_prec_huge.
4325 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4327 PR middle-end/110754
4328 * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
4329 decls create PARM_DECL with pointer to original type, set
4330 TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
4331 DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
4332 (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
4333 wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
4334 (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
4335 of the var as argument.
4337 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4339 * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
4340 size_t and precision 4 for ptrdiff_t. Formatting fix.
4341 (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers.
4343 (test_pp_format): Test t and z modifiers.
4344 * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
4346 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4348 * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
4349 sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
4350 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
4351 * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
4352 and casts to fmt_size_t instead of "%ld" and casts to long.
4353 (print_value_expr_statistics, print_type_hash_statistics): Likewise.
4354 * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
4355 instead of "%lu" and casts to unsigned long.
4356 * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
4358 * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
4359 and casts to fmt_size_t instead of "%ld" and casts to long.
4360 * cfgexpand.cc (dump_stack_var_partition): Use
4361 HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
4362 and casts to unsigned long.
4363 * gengtype.cc (adjust_field_rtx_def): Likewise.
4364 * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
4365 and casts to fmt_size_t instead of "%ld" and casts to long.
4366 * postreload-gcse.cc (dump_hash_table): Likewise.
4367 * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
4368 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
4369 (ggc_internal_alloc, ggc_free): Likewise.
4370 * genpreds.cc (write_lookup_constraint_1): Likewise.
4371 (write_insn_constraint_len): Likewise.
4372 * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
4373 and casts to fmt_size_t instead of "%ld" and casts to long.
4374 * varasm.cc (output_constant_pool_contents): Use
4375 HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
4376 * var-tracking.cc (dump_var): Likewise.
4378 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4380 PR tree-optimization/113783
4381 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
4382 through VIEW_CONVERT_EXPR for final cast checks. Handle
4383 VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
4385 (gimple_lower_bitint): Don't merge mergeable operations or other
4386 casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
4387 * expr.cc (expand_expr_real_1): Don't use convert_modes if either
4390 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4392 * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
4393 HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
4394 HOST_SIZE_T_PRINT_HEX_PURE): Define.
4395 * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting
4398 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4400 PR middle-end/113415
4401 * cfgexpand.cc (expand_asm_stmt): For asm goto, use
4402 duplicate_insn_chain to duplicate after_rtl_seq sequence instead
4403 of hand written loop with emit_insn of copy_insn and emit original
4404 after_rtl_seq on the last edge.
4406 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4408 PR tree-optimization/113818
4409 * gimple-lower-bitint.cc (add_eh_edge): New function.
4410 (bitint_large_huge::handle_load,
4411 bitint_large_huge::lower_mergeable_stmt,
4412 bitint_large_huge::lower_muldiv_stmt): Use it.
4414 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4416 PR tree-optimization/113774
4417 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
4418 emit any comparison if m_first and low + 1 is equal to
4419 m_upwards_2limb, simplify condition for that. If not
4420 single_comparison, not m_first and we can prove that the idx <= low
4421 comparison will be always true, emit instead of idx <= low
4422 comparison low <= low such that cfg cleanup will optimize it at
4423 the end of the pass.
4425 2024-02-08 Aldy Hernandez <aldyh@redhat.com>
4427 PR tree-optimization/113735
4428 * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
4431 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4433 * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
4434 (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
4436 2024-02-08 H.J. Lu <hjl.tools@gmail.com>
4440 * config/i386/constraints.md: List all constraints with j prefix.
4441 (j>): Change auto-dec to auto-inc in documentation.
4442 (je): Changed to a memory constraint with APX NDD TLS operand
4444 (jM): New memory constraint for APX NDD instructions.
4446 * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
4447 * config/i386/i386.cc (x86_poff_operand_p): Likewise.
4448 * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
4449 (*add<mode>_1[SWI48]): Use je and jM.
4450 (addsi_1_zext): Use jM.
4451 (*addv<dwi>4_doubleword_1[DWI]): Likewise.
4452 (*sub<mode>_1[SWI]): Use jM.
4453 (@add<mode>3_cc_overflow_1[SWI]): Likewise.
4454 (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
4455 (*and<dwi>3_doubleword): Likewise.
4457 (*andsi_1_zext): Likewise.
4458 (*and<mode>_1[SWI24]): Likewise.
4459 (*<code><dwi>3_doubleword[any_or]): Use rjO
4460 (*code<mode>_1[any_or SWI248]): Use jM.
4461 (*<code>si_1_zext[zero_extend + any_or]): Likewise.
4462 * config/i386/predicates.md (apx_ndd_memory_operand): New.
4463 (apx_ndd_add_memory_operand): Likewise.
4465 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4468 * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
4469 * doc/avr-mmcu.texi: Rebuild.
4471 2024-02-08 Tamar Christina <tamar.christina@arm.com>
4473 PR tree-optimization/113808
4474 * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
4475 value cross iterations.
4477 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4479 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
4480 defines __AVR_PM_BASE_ADDRESS__ if the core has it.
4482 2024-02-08 Richard Biener <rguenther@suse.de>
4484 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4485 Revert last change to dr_may_alias_p.
4487 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4489 * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
4490 cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
4491 Remove spec asm_misc.
4492 * config/avr/specs.h: Same.
4494 2024-02-08 Pan Li <pan2.li@intel.com>
4497 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
4498 sure the c.arg_num is >= 2 before checking.
4499 (struct build_frm_base): Ditto.
4500 (struct narrow_alu_def): Ditto.
4502 2024-02-07 Richard Biener <rguenther@suse.de>
4504 PR tree-optimization/113796
4505 * tree-if-conv.cc (combine_blocks): Wipe range-info before
4506 replacing PHIs and inserting predicates.
4508 2024-02-07 Roger Sayle <roger@nextmovesoftware.com>
4509 Uros Bizjak <ubizjak@gmail.com>
4512 * config/i386/i386-features.cc (timode_convert_cst): New helper
4513 function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
4515 (timode_scalar_chain::convert_op): Use timode_convert_cst.
4516 (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
4517 Use timode_convert_cst.
4519 2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com>
4521 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
4522 * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
4523 (AARCH64_FL_DEBUGv8p9): Likewise.
4524 (AARCH64_FL_FGT2): Likewise.Likewise.
4525 (AARCH64_FL_ITE): Likewise.
4526 (AARCH64_FL_PFAR): Likewise.
4527 (AARCH64_FL_PMUv3_ICNTR): Likewise.
4528 (AARCH64_FL_PMUv3_SS): Likewise.
4529 (AARCH64_FL_PMUv3p9): Likewise.
4530 (AARCH64_FL_RASv2): Likewise.
4531 (AARCH64_FL_S1PIE): Likewise.
4532 (AARCH64_FL_S1POE): Likewise.
4533 (AARCH64_FL_S2PIE): Likewise.
4534 (AARCH64_FL_S2POE): Likewise.
4535 (AARCH64_FL_SCTLR2): Likewise.
4536 (AARCH64_FL_SEBEP): Likewise.
4537 (AARCH64_FL_SPE_FDS): Likewise.
4538 (AARCH64_FL_TCR2): Likewise.
4540 2024-02-07 Richard Biener <rguenther@suse.de>
4542 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4543 Only check whether reads are in-bound in places that are not safe.
4544 Fix dependence check. Add missing newline. Clarify comments.
4546 2024-02-07 Tamar Christina <tamar.christina@arm.com>
4548 PR tree-optimization/113750
4549 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
4550 for single predecessor when doing early break vect.
4551 * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
4554 2024-02-07 Tamar Christina <tamar.christina@arm.com>
4556 PR tree-optimization/113731
4557 * gimple-iterator.cc (gsi_move_before): Take new parameter for update
4559 * gimple-iterator.h (gsi_move_before): Default new param to
4561 * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
4564 2024-02-07 Jakub Jelinek <jakub@redhat.com>
4566 PR tree-optimization/113756
4567 * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
4568 use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
4569 of lh_bits value and mask.
4571 2024-02-07 Jakub Jelinek <jakub@redhat.com>
4573 PR tree-optimization/113753
4574 * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
4575 UNSIGNED rather than SIGNED. If high or needs_overflow and prec is
4576 not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
4577 so that they start with r[half_blocks_needed] lowest bit. Fix up
4578 computation of top mask for SIGNED.
4580 2024-02-07 Pan Li <pan2.li@intel.com>
4583 * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
4584 the signature of func.
4585 * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
4586 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
4587 overloaded func with empty args error.
4589 2024-02-06 H.J. Lu <hjl.tools@gmail.com>
4592 * config/i386/i386.cc (x86_64_select_profile_regnum): Return
4593 R10_REG after sorry.
4595 2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com>
4597 * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
4598 Move before new caller, and add ".default" suffix.
4599 (get_suffixed_assembler_name): New.
4600 (make_resolver_func): Use get_suffixed_assembler_name.
4601 (aarch64_generate_version_dispatcher_body): Redo name mangling.
4603 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4606 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
4607 element from std::pair<unsigned int, char> to an unnamed struct.
4608 Adjust uses of tile range variable.
4610 2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4612 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
4613 (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
4615 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4618 * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
4619 reset maxlen to sizetype maximum.
4621 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4623 PR tree-optimization/113736
4624 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
4625 var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
4627 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4629 PR tree-optimization/113759
4630 * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
4631 or from_unsignedN differs from properties of typeN, update typeN
4632 to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not
4633 uselessly convertible to typeN, convert it using fold_convert or
4634 build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
4635 (convert_plusminus_to_widen): Likewise.
4637 2024-02-06 Tejas Belagod <tejas.belagod@arm.com>
4640 * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
4641 vector structure modes correctly.
4643 2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu>
4645 * config/riscv/thead.cc (th_print_operand_address): Fix compiler
4648 2024-02-05 H.J. Lu <hjl.tools@gmail.com>
4651 * config/i386/i386.cc (x86_64_select_profile_regnum): New.
4652 (x86_function_profiler): Call x86_64_select_profile_regnum to
4653 get a scratch register for large model profiling.
4655 2024-02-05 Richard Ball <richard.ball@arm.com>
4657 * config/arm/arm.cc (arm_output_mi_thunk): Emit
4658 insn for bti_c when bti is enabled.
4660 2024-02-05 Xi Ruoyao <xry111@xry111.site>
4662 * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
4665 2024-02-05 Xi Ruoyao <xry111@xry111.site>
4667 * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
4668 (neg<mode>2): Change the mode iterator from MSA to IMSA because
4669 in FP arithmetic we cannot use (0 - x) for -x.
4670 (neg<mode>2): New define_insn to implement FP vector negation,
4671 using a bnegi instruction to negate the sign bit.
4673 2024-02-05 Richard Biener <rguenther@suse.de>
4675 PR tree-optimization/113707
4676 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
4677 checking the avail set treat out-of-region defines as
4680 2024-02-05 Richard Biener <rguenther@suse.de>
4682 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
4683 the default mode when building a pointer.
4685 2024-02-05 Jakub Jelinek <jakub@redhat.com>
4687 PR tree-optimization/113737
4688 * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
4689 has just a single label, remove it and make single successor edge
4692 2024-02-05 Jakub Jelinek <jakub@redhat.com>
4695 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
4696 Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
4699 2024-02-05 Richard Biener <rguenther@suse.de>
4702 * config/i386/i386-expand.cc
4703 (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
4704 Use a new pseudo for the skipped number of bytes.
4706 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
4708 * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
4709 * doc/invoke.texi (RISC-V Options): Add sifive-p450,
4712 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
4714 * config/riscv/riscv.md: Include sifive-p400.md.
4715 * config/riscv/sifive-p400.md: New file.
4716 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
4717 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
4719 * config/riscv/riscv.cc (sifive_p400_tune_info): New.
4720 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
4721 * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
4723 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4725 * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
4726 Add missing ":SI" to the match_operator.
4728 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4730 * config/xtensa/xtensa.md (SHI): New mode iterator.
4731 (2 split patterns related to constsynth):
4732 Change to also accept HImode operands.
4734 2024-02-04 Jeff Law <jlaw@ventanamicro.com>
4736 * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
4739 2024-02-04 Xi Ruoyao <xry111@xry111.site>
4741 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
4743 * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
4744 (elmsgnbit): Likewise.
4745 (neg<mode:FVEC>2): New define_insn.
4746 * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
4747 are now instantiated in simd.md.
4749 2024-02-04 Xi Ruoyao <xry111@xry111.site>
4751 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
4752 use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
4755 2024-02-04 Li Wei <liwei@loongson.cn>
4757 * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
4758 (loongarch_expand_vselect_vconcat): Ditto.
4759 (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
4760 all 128-bit constant permutation situations.
4761 (loongarch_expand_lsx_shuffle): Adjust and rename function name.
4762 (loongarch_is_imm_set_shuffle): Renamed function name.
4763 (loongarch_expand_vec_perm_even_odd): Function forward declaration.
4764 (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
4765 extract-even and extract-odd permutations.
4766 (loongarch_is_odd_extraction): Delete.
4767 (loongarch_is_even_extraction): Ditto.
4768 (loongarch_expand_vec_perm_const): Adjust.
4770 2024-02-03 Jakub Jelinek <jakub@redhat.com>
4772 PR middle-end/113722
4773 * wide-int.cc (wi::bswap_large): Rename third argument from
4774 len to xlen and adjust use in safe_uhwi. Add len variable, set
4775 it to BLOCKS_NEEDED (precision) and use it for clearing of val
4776 and as canonize argument. Clear val using memset instead of
4779 2024-02-03 Jakub Jelinek <jakub@redhat.com>
4781 * ggc-common.cc (gt_pch_save): Allow addr to be equal to
4782 mmi.preferred_base + mmi.size - sizeof (void *).
4784 2024-02-03 Xi Ruoyao <xry111@xry111.site>
4786 * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
4787 * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
4788 the ODR-violating locale declaration.
4790 2024-02-02 Tamar Christina <tamar.christina@arm.com>
4792 PR tree-optimization/113588
4793 PR tree-optimization/113467
4794 * tree-vect-data-refs.cc
4795 (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
4796 (vect_analyze_early_break_dependences): Update comments.
4798 2024-02-02 John David Anglin <danglin@gcc.gnu.org>
4801 * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
4802 and PA_BUILTIN_SET_FPSR builtins.
4803 * (pa_builtins_icode): Declare.
4804 * (def_builtin, pa_fpu_init_builtins): New.
4805 * (pa_init_builtins): Initialize FPU builtins.
4806 * (pa_builtin_decl, pa_expand_builtin_1): New.
4807 * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
4808 PA_BUILTIN_SET_FPSR builtins.
4809 * (pa_atomic_assign_expand_fenv): New.
4810 * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
4812 (get_fpsr, put_fpsr): New expanders.
4813 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
4816 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4819 * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
4821 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
4823 * doc/extend.texi (Common Type Attributes): Fix typo in
4824 description of hardbool.
4826 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4828 PR tree-optimization/113692
4829 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
4830 from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
4833 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4835 PR middle-end/113699
4836 * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
4837 uninitialized large/huge _BitInt SSA_NAME inputs.
4839 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4841 PR middle-end/113705
4842 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
4843 around wi::to_wide in order to compare value in prec precision.
4845 2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
4848 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4850 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
4852 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4854 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
4856 2024-02-02 Pan Li <pan2.li@intel.com>
4858 * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
4859 (riscv_pass_by_reference): Ditto.
4860 (riscv_fntype_abi): Ditto.
4862 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4864 * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
4865 (pre_vsetvl::cleaup): Remove vsetvl_pre.
4866 (pre_vsetvl::remove_vsetvl_pre_insns): New function.
4868 2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
4870 * config/loongarch/larchintrin.h
4871 (__frecipe_s): Update function return type.
4872 (__frecipe_d): Ditto.
4873 (__frsqrte_s): Ditto.
4874 (__frsqrte_d): Ditto.
4876 2024-02-02 Li Wei <liwei@loongson.cn>
4878 * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
4879 (loongarch_vector_costs::add_stmt_cost): Adjust.
4881 2024-02-02 Xi Ruoyao <xry111@xry111.site>
4883 * config/loongarch/loongarch.md (unspec): Add
4884 UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
4885 (la_pcrel64_two_parts): New define_insn.
4886 * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
4887 typo in the comment.
4888 (loongarch_call_tls_get_addr): If -mcmodel=extreme
4889 -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
4890 addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
4891 note to allow CSE addressing __tls_get_addr.
4892 (loongarch_legitimize_tls_address): If -mcmodel=extreme
4893 -mexplicit-relocs={always,auto}, address TLS IE symbols with
4894 la_pcrel64_two_parts.
4895 (loongarch_split_symbol): If -mcmodel=extreme
4896 -mexplicit-relocs={always,auto}, address symbols with
4897 la_pcrel64_two_parts.
4898 (loongarch_output_mi_thunk): Clean up unreachable code. If
4899 -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
4900 thunks with la_pcrel64_two_parts.
4902 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4904 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4905 Add support for call36.
4907 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4909 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
4910 When the code model of the symbol is extreme and -mexplicit-relocs=auto,
4911 the macro instruction loading symbol address is not applicable.
4912 (loongarch_call_tls_get_addr): Adjust code.
4913 (loongarch_legitimize_tls_address): Likewise.
4915 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4917 * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
4918 Add function declaration.
4919 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
4920 For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
4922 (loongarch_load_tls): Added macro support in extreme mode.
4923 (loongarch_call_tls_get_addr): Likewise.
4924 (loongarch_legitimize_tls_address): Likewise.
4925 (loongarch_force_address): Likewise.
4926 (loongarch_legitimize_move): Likewise.
4927 (loongarch_output_mi_thunk): Likewise.
4928 (loongarch_option_override_internal): Remove the code that detects
4929 explicit relocs status.
4930 (loongarch_handle_model_attribute): Likewise.
4931 * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
4932 * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
4933 (symbolic_off64_or_reg_operand): Likewise.
4935 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4937 * config/loongarch/loongarch.cc (loongarch_load_tls):
4938 Load all types of tls symbols through one function.
4939 (loongarch_got_load_tls_gd): Delete.
4940 (loongarch_got_load_tls_ld): Delete.
4941 (loongarch_got_load_tls_ie): Delete.
4942 (loongarch_got_load_tls_le): Delete.
4943 (loongarch_call_tls_get_addr): Modify the called function name.
4944 (loongarch_legitimize_tls_address): Likewise.
4945 * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
4946 (@load_tls<mode>): New template.
4947 (@got_load_tls_ld<mode>): Delete.
4948 (@got_load_tls_le<mode>): Delete.
4949 (@got_load_tls_ie<mode>): Delete.
4951 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4953 * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
4954 (loongarch_legitimize_address): Add logical transformation code.
4956 2024-02-01 Marek Polacek <polacek@redhat.com>
4958 * doc/invoke.texi: Update -Wdangling-reference documentation.
4960 2024-02-01 Uros Bizjak <ubizjak@gmail.com>
4963 * config/i386/i386.md (*cmp<dwi>_doubleword):
4964 Do not force SUBREG pieces to pseudos.
4966 2024-02-01 John David Anglin <danglin@gcc.gnu.org>
4968 * config/pa/pa.md (atomic_storedi_1): Fix bug in
4971 2024-02-01 Georg-Johann Lay <avr@gjlay.de>
4973 * config/avr/avr.cc: Tabify.
4975 2024-02-01 Richard Ball <richard.ball@arm.com>
4977 PR tree-optimization/111268
4978 * tree-vect-slp.cc (vectorizable_slp_permutation_1):
4979 Add variable-length check for vector input arguments
4982 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
4984 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
4985 hard-code number of SGPR/VGPR/AVGPR registers.
4986 * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
4987 SGPR/VGPR/AVGPR registers.
4989 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
4991 * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
4992 attribute, and include sifive-p600.md.
4993 * config/riscv/generic-ooo.md: Update type attribute.
4994 * config/riscv/generic.md: Update type attribute.
4995 * config/riscv/sifive-7.md: Update type attribute.
4996 * config/riscv/sifive-p600.md: New file.
4997 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
4998 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
5000 * config/riscv/riscv.cc (sifive_p600_tune_info): New.
5001 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
5002 * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
5004 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
5006 * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
5007 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
5008 * config/riscv/riscv.opt: New macro for 7 new unprivileged
5010 * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
5011 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
5013 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5015 * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
5016 -static-libasan. Add missing whitespace.
5018 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
5020 * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
5021 (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
5022 Don't 'define_constants'.
5024 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
5026 * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
5028 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
5030 * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
5031 [TARGET_RDNA3]: Adjust.
5033 2024-02-01 Richard Biener <rguenther@suse.de>
5035 PR tree-optimization/113693
5036 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
5037 data when available.
5039 2024-02-01 Jakub Jelinek <jakub@redhat.com>
5040 Jason Merrill <jason@redhat.com>
5043 * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
5044 on variables which were promoted to TREE_STATIC.
5046 2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
5047 Richard Biener <rguenther@suse.de>
5050 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
5051 information via tree_non_zero_bits to check if this operand
5052 is suitably extended for a widening (or highpart) multiplication.
5053 (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
5054 isn't already of the claimed type.
5056 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5059 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5061 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
5062 (generic_ooo_branch): ditto
5063 * config/riscv/generic.md (generic_sfb_alu): ditto
5064 (generic_fmul_half): ditto
5065 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
5066 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
5067 (sifive_7_popcount): ditto
5068 * config/riscv/vector.md: change rdfrm to fmove
5069 * config/riscv/zc.md: change pushpop to load/store
5071 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5074 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5075 Robin Dapp <rdapp.gcc@gmail.com>
5077 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
5078 (generic_ooo_vec_load): ditto
5079 (generic_ooo_vec_store): ditto
5080 (generic_ooo_vec_loadstore_seg): ditto
5081 (generic_ooo_vec_alu): ditto
5082 (generic_ooo_vec_fcmp): ditto
5083 (generic_ooo_vec_imul): ditto
5084 (generic_ooo_vec_fadd): ditto
5085 (generic_ooo_vec_fmul): ditto
5086 (generic_ooo_crypto): ditto
5087 (generic_ooo_perm): ditto
5088 (generic_ooo_vec_reduction): ditto
5089 (generic_ooo_vec_ordered_reduction): ditto
5090 (generic_ooo_vec_idiv): ditto
5091 (generic_ooo_vec_float_divsqrt): ditto
5092 (generic_ooo_vec_mask): ditto
5093 (generic_ooo_vec_vesetvl): ditto
5094 (generic_ooo_vec_setrm): ditto
5095 (generic_ooo_vec_readlen): ditto
5096 * config/riscv/riscv.md: include generic-vector-ooo
5097 * config/riscv/generic-vector-ooo.md: New file. to here
5099 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5102 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5104 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
5106 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5108 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
5110 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5111 Robin Dapp <rdapp.gcc@gmail.com>
5113 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
5114 (generic_ooo_vec_load): ditto
5115 (generic_ooo_vec_store): ditto
5116 (generic_ooo_vec_loadstore_seg): ditto
5117 (generic_ooo_vec_alu): ditto
5118 (generic_ooo_vec_fcmp): ditto
5119 (generic_ooo_vec_imul): ditto
5120 (generic_ooo_vec_fadd): ditto
5121 (generic_ooo_vec_fmul): ditto
5122 (generic_ooo_crypto): ditto
5123 (generic_ooo_perm): ditto
5124 (generic_ooo_vec_reduction): ditto
5125 (generic_ooo_vec_ordered_reduction): ditto
5126 (generic_ooo_vec_idiv): ditto
5127 (generic_ooo_vec_float_divsqrt): ditto
5128 (generic_ooo_vec_mask): ditto
5129 (generic_ooo_vec_vesetvl): ditto
5130 (generic_ooo_vec_setrm): ditto
5131 (generic_ooo_vec_readlen): ditto
5132 * config/riscv/riscv.md: include generic-vector-ooo
5133 * config/riscv/generic-vector-ooo.md: New file. to here
5135 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5137 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
5138 (generic_ooo_branch): ditto
5139 * config/riscv/generic.md (generic_sfb_alu): ditto
5140 (generic_fmul_half): ditto
5141 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
5142 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
5143 (sifive_7_popcount): ditto
5144 * config/riscv/vector.md: change rdfrm to fmove
5145 * config/riscv/zc.md: change pushpop to load/store
5147 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
5150 * config/aarch64/aarch64-simd.md (split for movv8di):
5151 For strict aligned mode, use DImode instead of TImode.
5153 2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
5155 PR middle-end/113607
5156 * match.pd: Make sure else values match when folding a
5157 vec_cond into a conditional operation.
5159 2024-01-31 Marek Polacek <polacek@redhat.com>
5161 * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
5163 2024-01-31 Tamar Christina <tamar.christina@arm.com>
5164 Matthew Malcomson <matthew.malcomson@arm.com>
5167 * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
5169 * builtins.cc (expand_builtin): Include HWASAN when checking for
5172 2024-01-31 Richard Biener <rguenther@suse.de>
5174 PR middle-end/110176
5175 * match.pd (zext (bool) <= (int) 4294967295u): Make sure
5176 to match INTEGER_CST only without outstanding conversion.
5178 2024-01-31 Alex Coplan <alex.coplan@arm.com>
5181 * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
5182 V16QImode for the full 16-byte FPR saves in the vector PCS case.
5184 2024-01-31 Richard Biener <rguenther@suse.de>
5186 PR tree-optimization/111444
5187 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
5188 vn_reference_lookup_2 when optimistically skipping may-defs.
5190 2024-01-31 Richard Biener <rguenther@suse.de>
5192 PR tree-optimization/113630
5193 * tree-ssa-pre.cc (compute_avail): Avoid registering a
5194 reference with a representation with not matching base
5197 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5199 PR rtl-optimization/113656
5200 * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
5201 <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
5203 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5206 * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
5207 with BLKmode are larger than DWARF2_ADDR_SIZE.
5209 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5211 PR tree-optimization/113639
5212 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
5213 For VIEW_CONVERT_EXPR set rhs1 to its operand.
5215 2024-01-31 Richard Biener <rguenther@suse.de>
5217 PR tree-optimization/113670
5218 * tree-vect-data-refs.cc (vect_check_gather_scatter):
5219 Make sure we can take the address of the reference base.
5221 2024-01-31 Georg-Johann Lay <avr@gjlay.de>
5223 * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
5224 ATA5835, ATtiny64AUTO, ATA5700M322.
5225 * doc/avr-mmcu.texi: Rebuild.
5227 2024-01-31 Alexandre Oliva <oliva@adacore.com>
5230 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
5233 2024-01-31 Alexandre Oliva <oliva@adacore.com>
5235 PR middle-end/112917
5236 PR middle-end/113100
5237 * builtins.cc (expand_builtin_stack_address): Use
5238 STACK_ADDRESS_OFFSET.
5239 * doc/extend.texi (__builtin_stack_address): Adjust.
5240 * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
5241 * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
5242 * doc/tm.texi: Rebuilt.
5244 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5247 * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
5248 (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
5249 (pre_vsetvl::compute_transparent): New function.
5250 (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
5252 2024-01-30 Fangrui Song <maskray@google.com>
5255 * config/i386/constraints.md: Define constraint "Ws".
5256 * doc/md.texi: Document it.
5258 2024-01-30 Marek Polacek <polacek@redhat.com>
5262 * doc/invoke.texi: Update -Wdangling-reference description.
5264 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5266 * config/xtensa/constraints.md (R, T, U):
5267 Change define_constraint to define_memory_constraint.
5268 * config/xtensa/predicates.md (move_operand): Don't check that a
5269 constant pool operand size is a multiple of UNITS_PER_WORD.
5270 * config/xtensa/xtensa.cc
5271 (xtensa_lra_p, TARGET_LRA_P): Remove.
5272 (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
5273 clause as it can no longer be true.
5274 (fixup_subreg_mem): Drop function.
5275 (xtensa_output_integer_literal_parts): Consider 16-bit wide
5277 (xtensa_legitimate_constant_p): Add short-circuit path for
5278 integer load instructions. Don't check that mode size is
5279 at least UNITS_PER_WORD.
5280 * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
5281 rather reload_in_progress and reload_completed.
5282 (doloop_end): Drop operand 2.
5283 (movhi_internal): Add alternative loading constant from a
5285 (define_split for DI register_operand): Don't limit to
5286 !TARGET_AUTO_LITPOOLS.
5287 * config/xtensa/xtensa.opt (mlra): Change to no effect.
5289 2024-01-30 Pan Li <pan2.li@intel.com>
5291 * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
5292 calculate the gpr count required by vls mode.
5293 (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
5294 (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
5296 (riscv_get_arg_info): Add vls mode handling.
5297 (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
5299 2024-01-30 Richard Biener <rguenther@suse.de>
5301 PR tree-optimization/113659
5302 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
5303 Handle main exit without virtual use.
5305 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
5307 * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
5309 2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
5312 * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
5313 (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
5314 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
5315 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
5316 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
5317 * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
5319 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
5322 * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
5323 Mark all registers that occur in addresses as needing a GPR.
5325 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
5328 * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
5329 the containing insn as an extra parameter. Reset debug instructions
5330 if they reference a register that is no longer used by real insns.
5331 (early_ra::apply_allocation): Update calls accordingly.
5333 2024-01-30 Jakub Jelinek <jakub@redhat.com>
5335 PR tree-optimization/113603
5336 * tree-ssa-strlen.cc (strlen_pass::handle_store): After
5337 count_nonzero_bytes call refetch si using get_strinfo in case it
5338 has been unshared in the meantime.
5340 2024-01-30 Jakub Jelinek <jakub@redhat.com>
5342 PR middle-end/101195
5343 * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
5344 fit into unsigned HOST_WIDE_INT, return constm1_rtx.
5346 2024-01-30 Jin Ma <jinma@linux.alibaba.com>
5348 * config/riscv/thead.cc (th_print_operand_address): Change %ld
5351 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
5352 Manolis Tsamis <manolis.tsamis@vrull.eu>
5353 Philipp Tomsich <philipp.tomsich@vrull.eu>
5355 * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
5356 * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
5358 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
5359 Call on framework moved later.
5361 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
5363 * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
5364 instruction in naked function epilogues.
5366 2024-01-29 YunQiang Su <syq@gcc.gnu.org>
5369 * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
5370 gcc_cv_as_mips_explicit_relocs.
5371 * configure: Regnerated.
5373 2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
5376 * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
5377 Correct generated RTL.
5378 (arm_rev16si2_alt1): Correctly handle conditional execution.
5379 (arm_rev16si2_alt2): Likewise.
5381 2024-01-29 Richard Biener <rguenther@suse.de>
5383 PR middle-end/113622
5384 * expr.cc (expand_assignment): Spill hard registers if
5385 we index them with a variable offset.
5387 2024-01-29 Richard Biener <rguenther@suse.de>
5389 PR middle-end/113622
5390 * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
5391 Also allow DECL_HARD_REGISTER variables.
5393 2024-01-29 Alex Coplan <alex.coplan@arm.com>
5396 * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
5397 Use iterate_safely when iterating over debug uses.
5398 (fixup_debug_uses): Likewise.
5399 (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
5400 over nondebug insns instead of manually maintaining the next insn.
5401 * iterator-utils.h (class safe_iterator): New.
5402 (iterate_safely): New.
5404 2024-01-29 H.J. Lu <hjl.tools@gmail.com>
5407 * config/i386/i386-options.cc (ix86_set_func_type): Save
5408 callee-saved registers in noreturn functions for -O0/-Og.
5410 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5413 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
5414 define for !TARGET_RDNA2_PLUS.
5416 2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
5419 * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
5420 workaround for right shifts.
5421 (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
5422 (vect_determine_precisions_from_range): Be more selective about
5423 which codes can be narrowed based on their input and output ranges.
5424 For shifts, require at least one more bit of precision than the
5425 maximum shift amount.
5427 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5429 * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
5431 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5433 * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
5434 but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
5437 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5440 * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
5441 (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
5442 (SET_SRAM_ECC_UNSET): ... this.
5443 (copy_early_debug_info): Remove gfx900 special case, now handled as
5444 part of the generic handling.
5445 (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
5447 2024-01-29 Jakub Jelinek <jakub@redhat.com>
5449 PR tree-optimization/110603
5450 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
5451 setting of pdata->maxlen to vr.upper_bound (which is unconditionally
5452 overwritten anyway). Avoid creating invalid range with minlen
5453 larger than maxlen. Formatting fix.
5455 2024-01-29 Richard Biener <rguenther@suse.de>
5458 * tree-inline.cc (initialize_inlined_parameters): Reverse
5459 the decl chain of inlined parameters.
5461 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
5463 * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
5464 alignment of CFString constants by setting DECL_USER_ALIGN.
5466 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
5467 Jakub Jelinek <jakub@redhat.com>
5470 * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
5471 and BUILT_IN_GCC_NESTED_PTR_DELETED.
5472 * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
5473 BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
5474 rename the library fallbacks to __gcc_nested_func_ptr_created and
5475 __gcc_nested_func_ptr_deleted.
5476 * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
5477 and __gcc_nested_func_ptr_deleted.
5478 * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
5479 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
5480 * tree.cc (build_common_builtin_nodes): Build the
5481 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
5482 builtins only for non-explicit.
5484 2024-01-28 YunQiang Su <syq@gcc.gnu.org>
5486 * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
5488 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
5491 * config/i386/i386-options.cc (ix86_set_func_type): Don't
5492 save and restore callee saved registers for a noreturn function
5493 with nothrow or compiled with -fno-exceptions.
5495 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
5499 * config/i386/i386-expand.cc (ix86_expand_call): Replace
5500 no_caller_saved_registers check with call_saved_registers check.
5501 Clobber all registers that are not used by the callee with
5502 no_callee_saved_registers attribute.
5503 * config/i386/i386-options.cc (ix86_set_func_type): Set
5504 call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
5505 noreturn function. Disallow no_callee_saved_registers with
5506 interrupt or no_caller_saved_registers attributes together.
5507 (ix86_set_current_function): Replace no_caller_saved_registers
5508 check with call_saved_registers check.
5509 (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
5510 (ix86_handle_call_saved_registers_attribute): This.
5511 (ix86_gnu_attributes): Add
5512 ix86_handle_call_saved_registers_attribute.
5513 * config/i386/i386.cc (ix86_conditional_register_usage): Replace
5514 no_caller_saved_registers check with call_saved_registers check.
5515 (ix86_function_ok_for_sibcall): Don't allow callee with
5516 no_callee_saved_registers attribute when the calling function
5517 has callee-saved registers.
5518 (ix86_comp_type_attributes): Also check
5519 no_callee_saved_registers.
5520 (ix86_epilogue_uses): Replace no_caller_saved_registers check
5521 with call_saved_registers check.
5522 (ix86_hard_regno_scratch_ok): Likewise.
5523 (ix86_save_reg): Replace no_caller_saved_registers check with
5524 call_saved_registers check. Don't save any registers for
5525 TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
5526 TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
5527 no_callee_saved_registers attribute is called.
5528 (find_drap_reg): Replace no_caller_saved_registers check with
5529 call_saved_registers check.
5530 * config/i386/i386.h (call_saved_registers_type): New enum.
5531 (machine_function): Replace no_caller_saved_registers with
5532 call_saved_registers.
5533 * doc/extend.texi: Document no_callee_saved_registers attribute.
5535 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5537 PR tree-optimization/113614
5538 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
5539 widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
5540 TRUNC_MOD_EXPR or FLOAT_EXPR uses.
5542 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5544 PR tree-optimization/113568
5545 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
5546 For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
5547 in the widening extension checks.
5549 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5551 * gimple-lower-bitint.cc (gimple_lower_bitint): For
5552 TDF_DETAILS dump mapping of SSA_NAMEs to decls.
5554 2024-01-26 Hans-Peter Nilsson <hp@axis.com>
5556 * cgraphunit.cc (process_function_and_variable_attributes): Tweak
5557 the warning for an attribute-always_inline without inline declaration.
5559 2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
5562 * genopinit.cc (main): Split init_all_optabs into functions
5563 of 1000 patterns each.
5565 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
5567 * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
5569 * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
5570 * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
5573 2024-01-26 Andrew Stubbs <ams@baylibre.com>
5575 * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
5576 * config/gcn/gcn-valu.md (all_convert): New iterator.
5577 (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
5578 define_expand, and rename the old one to ...
5579 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
5580 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
5581 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
5582 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
5583 * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
5584 (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
5585 * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
5586 (<u>mulqihi3_scalar): Likewise.
5588 2024-01-26 Richard Biener <rguenther@suse.de>
5590 PR tree-optimization/113602
5591 * tree-data-ref.cc (dr_analyze_innermost): Fail when
5592 the base object isn't addressable.
5594 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
5596 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
5597 "--amdhsa-code-object-version=" argument.
5598 (ASM_SPEC): Use it; replace previous version of it.
5600 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5602 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
5603 (pre_vsetvl::emit_vsetvl): Ditto.
5605 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
5607 * config/loongarch/lasx.md (vec_extract<mode>_0):
5608 New define_insn_and_split patten.
5610 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
5612 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
5614 2024-01-26 Li Wei <liwei@loongson.cn>
5616 * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
5618 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5621 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
5623 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
5626 * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
5627 undefined shift after the call to exact_log2.
5629 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
5632 * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
5633 before taking the negative of it.
5635 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
5638 * lra-constraints.cc (curr_insn_transform): Change class even for
5639 spilled pseudo successfully matched with with NO_REGS.
5641 2024-01-25 Georg-Johann Lay <avr@gjlay.de>
5644 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
5646 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
5649 * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
5650 (aarch64_expand_epilogue): Use the new function.
5651 (aarch64_split_compare_and_swap): Likewise.
5652 (aarch64_split_atomic_op): Likewise.
5654 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
5656 PR middle-end/112971
5657 * fold-const.cc (simplify_const_binop): New function for binop
5658 simplification of two constant vectors when element-wise
5659 handling is not necessary.
5660 (const_binop): Call new function.
5662 2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
5664 * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
5665 * config/riscv/constraints.md: Likewise.
5666 * config/riscv/corev.def: Likewise.
5667 * config/riscv/corev.md: Likewise.
5668 * config/riscv/predicates.md: Likewise.
5669 * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
5670 * config/riscv/riscv-ftypes.def: Likewise.
5671 * config/riscv/riscv.opt: Likewise.
5672 * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
5673 * doc/extend.texi: Add XCVbitmanip builtin documentation.
5674 * doc/sourcebuild.texi: Likewise.
5676 2024-01-25 Tobias Burnus <tburnus@baylibre.com>
5678 * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
5680 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
5683 * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
5684 (riscv_fntype_abi): Ditto.
5685 * config/riscv/riscv.opt: Ditto.
5687 2024-01-25 Jakub Jelinek <jakub@redhat.com>
5689 PR middle-end/113574
5690 * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
5691 count against TYPE_PRECISION rather than TYPE_SIZE.
5693 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5696 * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
5697 Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
5699 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5702 * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
5703 whether each split instruction is a load that clobbers the source
5704 address. Emit that instruction last if so.
5706 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5709 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
5711 (<optab><Vnarrowq><mode>2): Use it instead of generating a
5712 paradoxical subreg for the input.
5714 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5716 * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
5717 (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
5718 predecessors dump information.
5720 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5722 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
5723 redundant full available computation.
5724 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
5726 2024-01-25 Jakub Jelinek <jakub@redhat.com>
5728 * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
5729 * doc/rtl.texi (CONST_VECTOR): Likewise.
5731 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5733 * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
5734 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
5735 (pass_vsetvl::execute): Ditto.
5736 * config/riscv/riscv.opt: Ditto.
5738 2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
5740 * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
5741 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
5743 2024-01-25 Richard Biener <rguenther@suse.de>
5745 PR tree-optimization/113576
5746 * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
5747 exits with may_be_zero niters when its the last one.
5749 2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
5751 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
5752 For symbols of type tls, non-zero Offset is not generated.
5754 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
5756 * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
5757 P9 with m32 and mpowerpc64.
5759 2024-01-25 liuhongt <hongtao.liu@intel.com>
5761 * config/i386/i386-options.cc (ix86_option_override_internal):
5762 Enable -mlam=u57 by default when compiled with
5763 -fsanitize=hwaddress.
5765 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
5767 * common/config/riscv/riscv-common.cc (riscv_implied_info):
5768 Remove {"ztso", "a"}.
5770 2024-01-24 Martin Jambor <mjambor@suse.cz>
5774 * cgraph.h (cgraph_edge): Add a parameter to
5775 redirect_call_stmt_to_callee.
5776 * ipa-param-manipulation.h (ipa_param_adjustments): Add a
5777 parameter to modify_call.
5778 (ipa_release_ssas_in_hash): Declare.
5779 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
5780 parameter killed_ssas, pass it to padjs->modify_call.
5781 * ipa-param-manipulation.cc (purge_all_uses): New function.
5782 (ipa_param_adjustments::modify_call): New parameter killed_ssas.
5783 Instead of substituting uses, invoke purge_all_uses. If
5784 hash of killed SSAs has not been provided, create a temporary one
5785 and release SSAs that have been added to it.
5786 (compare_ssa_versions): New function.
5787 (ipa_release_ssas_in_hash): Likewise.
5788 * tree-inline.cc (redirect_all_calls): Create
5789 id->killed_new_ssa_names earlier, pass it to edge redirection,
5791 (copy_body): Release SSAs in id->killed_new_ssa_names.
5793 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
5796 * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
5797 TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
5799 2024-01-24 Monk Chiang <monk.chiang@sifive.com>
5802 * config/riscv/sfb.md: New splitters to rewrite single bit
5803 sign extension as the condition to SFB instructions.
5805 2024-01-24 Jan Hubicka <jh@suse.cz>
5808 * common.opt: (flimit-function-alignment): Reorder alphabeticaly
5809 (fmin-function-alignment): New parameter.
5810 * doc/invoke.texi: (-fmin-function-alignment): Document.
5811 (-falign-functions,-falign-loops,-falign-labels): Mention that
5812 aglinments are ignored in cold code.
5813 * varasm.cc (assemble_start_function): Handle min-function-alignment.
5815 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5818 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
5820 * config/aarch64/iterators.md (VQDIV): Remove.
5821 (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
5822 SVE_I_SIMD_DI): New.
5823 (VPRED, sve_lane_con): Add V4SI and V2DI.
5824 * config/aarch64/aarch64-sve.md (<optab><mode>3,
5825 @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
5826 (mul<mode>3): New, split from <optab><mode>3.
5827 (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
5828 * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
5829 *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
5830 SVE_FULL_HSDI_SIMD_DI.
5832 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5834 PR tree-optimization/113552
5835 * config/aarch64/aarch64.cc
5836 (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
5838 2024-01-24 Martin Jambor <mjambor@suse.cz>
5841 * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
5842 count is equal or greater than the limit. Use the limit from the
5845 2024-01-24 YunQiang Su <syq@gcc.gnu.org>
5847 * configure.ac: Detect the explicit relocs support for
5848 mips, and define C macro MIPS_EXPLICIT_RELOCS.
5849 * config.in: Regenerated.
5850 * configure: Regenerated.
5851 * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
5852 * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
5853 * config/mips/mips.cc(mips_set_compression_mode): Sorry if
5854 !TARGET_EXPLICIT_RELOCS instead of just set it.
5855 * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
5856 TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
5857 * config/mips/mips.opt: Introduce -mexplicit-relocs= option
5858 and define -m(no-)explicit-relocs as aliases.
5860 2024-01-24 Alex Coplan <alex.coplan@arm.com>
5862 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
5864 (-mlate-ldp-fusion): Likewise.
5866 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5868 * tree-vect-loop.cc (vect_get_vect_def,
5869 vect_create_epilog_for_reduction): Rename main_exit_p to
5872 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5874 PR tree-optimization/113364
5875 * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
5876 early exits then we must reduce from the first offset for all of them.
5878 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5881 * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
5883 (get_bb_index): Ditto.
5884 (pre_vsetvl::compute_avl_def_data): Ditto.
5885 (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
5886 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
5888 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
5889 Richard Sandiford <richard.sandiford@arm.com>
5892 * ccmp.cc (ccmp_candidate_p): Add outer argument.
5893 Allow if the outer is true and the lhs is used more
5895 (expand_ccmp_expr): Update call to ccmp_candidate_p.
5896 * expr.h (expand_expr_real_gassign): Declare.
5897 * expr.cc (expand_expr_real_gassign): New function, split out from...
5898 (expand_expr_real_1): ...here.
5899 * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
5901 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5904 * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
5905 (fixup_debug_use): New.
5906 (fixup_debug_uses_trailing_add): New.
5907 (fixup_debug_uses): New. Use it ...
5908 (ldp_bb_info::fuse_pair): ... here.
5909 (try_promote_writeback): Call fixup_debug_uses_trailing_add to
5910 fix up debug uses of the base register that are affected by
5911 folding in the trailing add insn.
5913 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5916 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
5917 Update trailing nondebug uses of the base register in the case
5918 of cancelling writeback.
5920 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5923 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
5924 (debug_insn_use_iterator): New.
5925 (set_info::first_debug_insn_use): New.
5926 (set_info::debug_insn_uses): New.
5927 * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
5928 (set_info::first_debug_insn_use): New.
5929 (set_info::debug_insn_uses): New.
5931 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5934 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
5935 Don't record hazards against the opposite insn in the pair.
5937 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5940 * config/aarch64/aarch64-ldp-fusion.cc
5941 (struct stp_change_builder): New.
5942 (decide_stp_strategy): Reanme to ...
5943 (try_repurpose_store): ... this.
5944 (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
5945 construct stp changes. Fix up uses when inserting new stp insns.
5947 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5950 * rtl-ssa.h: Include hash-set.h.
5951 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
5952 new_sets parameter and use it to keep track of new user-created sets.
5953 (function_info::apply_changes_to_insn): Also call add_def on new sets.
5954 (function_info::change_insns): Add hash_set to keep track of new
5955 user-created defs. Plumb it through.
5956 * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
5957 apply_changes_to_insn.
5959 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5962 * rtl-ssa/accesses.cc (function_info::create_use): New.
5963 * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
5964 Ensure new uses end up referring to permanent defs.
5965 * rtl-ssa/functions.h (function_info::create_use): Declare.
5967 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5970 * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
5971 to finalize_new_accesses from the backwards placement loop, run it
5972 forwards in a separate loop.
5974 2024-01-23 Richard Biener <rguenther@suse.de>
5976 PR tree-optimization/113552
5977 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
5978 floor_log2 instead of exact_log2 on the number of calls.
5980 2024-01-23 Jeff Law <jlaw@ventanamicro.com>
5981 Jakub Jelinek <jakub@redhat.com>
5983 * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
5986 2024-01-23 Richard Biener <rguenther@suse.de>
5988 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
5989 Separate single and multi-exit case when creating PHIs between
5990 the main and epilogue.
5992 2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
5995 * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
5996 MODE_single variants of functions that don't take tuple arguments.
5998 2024-01-23 Alex Coplan <alex.coplan@arm.com>
6001 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
6002 Don't assert recog success, just punt if the writeback pair
6005 2024-01-23 Jakub Jelinek <jakub@redhat.com>
6007 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
6008 ATTRIBUTE_UNUSED to decl.
6010 2024-01-23 Richard Biener <rguenther@suse.de>
6013 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
6014 handle unexpected but bogus DIE contexts when not checking
6017 2024-01-23 Jakub Jelinek <jakub@redhat.com>
6019 PR tree-optimization/113462
6020 * fold-const.cc (native_interpret_int): Don't punt if total_bytes
6021 is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
6022 (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
6023 sizes between 129 and 8192 bytes.
6025 2024-01-23 Xi Ruoyao <xry111@xry111.site>
6027 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
6028 If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
6029 for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
6030 (loongarch_call_tls_get_addr): Do not split symbols of
6031 SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
6032 EXPLICIT_RELOCS_AUTO.
6034 2024-01-23 Richard Biener <rguenther@suse.de>
6036 * alias.cc (known_base_value_p): Remove.
6037 (find_base_value): Remove PLUS/MINUS handling
6038 when both operands are not CONST_INT_P.
6040 2024-01-23 Richard Biener <rguenther@suse.de>
6042 PR rtl-optimization/113255
6043 * alias.cc (find_base_term): Remove PLUS/MINUS handling
6044 when both operands are not CONST_INT_P.
6046 2024-01-23 Richard Biener <rguenther@suse.de>
6049 * dwarf2out.cc (dwarf2out_finish): Reset all type units
6050 for the fat part of an LTO compile.
6052 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
6054 * doc/sourcebuild.texi: Add attributes for keywords.
6056 2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
6059 * doc/invoke.texi (Warning Options): Correct lists of options
6060 enabled by -Wall and -Wextra by checking against common.opt
6063 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
6066 * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
6067 instead of cpu_optaliases.
6068 (check_arch): Use arch_opt_alias instead of arch_optaliases.
6070 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6072 * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
6073 * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
6074 * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
6076 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6079 * config/riscv/riscv.md: Use reg instead of subreg.
6081 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
6084 * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
6085 to match the compiler default.
6086 (simple_object_copy_lto_debug_sections): Never unlink the outfile
6087 on error as the caller does so.
6088 (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
6089 (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
6091 2024-01-22 Richard Biener <rguenther@suse.de>
6093 PR tree-optimization/113373
6094 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6095 Create LC PHIs in the exit blocks where necessary.
6096 * tree-vect-loop.cc (vectorizable_live_operation): Do not try
6097 to handle missing LC PHIs.
6098 (find_connected_edge): Remove.
6099 (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
6101 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6103 * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
6105 2024-01-22 xuli <xuli1@eswincomputing.com>
6108 * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
6109 (registered_function::overloaded_hash):refactor.
6110 (resolve_overloaded_builtin):avoid internal ICE.
6112 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
6116 * calls.cc (emit_library_call_value_1): Pass valid TYPE
6118 * expr.cc (emit_push_insn): Likewise.
6120 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
6122 * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
6123 correcction version of last change.
6125 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
6127 * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
6128 fix bugs in signature.
6130 2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
6131 Richard Biener <rguenther@suse.de>
6133 PR rtl-optimization/111267
6134 * fwprop.cc (fwprop_propagation::profitabe_p): Rename
6135 profitable_p method to likely_profitable_p.
6136 (try_fwprop_subst_node): Update call to likely_profitable_p.
6137 Only bail-out early when !prop.likely_profitable_p for instructions
6138 that are not single sets. When comparing costs, bail-out if the
6139 cost is unchanged and !prop.likely_profitable_p.
6141 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
6144 * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
6145 isn't enabled by -Wunused unless -Wextra is provided, and that
6146 -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
6147 -Wunused doesn't enable -Wunused-* options documented as behaving
6148 otherwise, and list them explicitly.
6150 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
6153 * doc/invoke.texi (Warning Options): Fix broken example and
6154 clean up/reorganize the others. Also describe what the short-form
6157 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
6160 * doc/invoke.texi (Option Summary): Add -Warray-parameter.
6161 (Warning Options): Correct/edit discussion of -Warray-parameter
6162 to make the first example less confusing, and fill in missing info.
6164 2024-01-20 Jakub Jelinek <jakub@redhat.com>
6166 PR tree-optimization/113462
6167 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
6168 Handle rhs1 INTEGER_CST like SSA_NAME.
6170 2024-01-20 Jakub Jelinek <jakub@redhat.com>
6172 PR tree-optimization/113491
6173 * tree-switch-conversion.cc (switch_conversion::build_constructors):
6174 If elt.index has precision higher than sizetype, fold_convert it to
6176 (switch_conversion::array_value_type): Return type if type is
6177 BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
6178 (switch_conversion::build_arrays): Use unsigned_type_for rather than
6179 lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
6180 above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
6181 higher than sizetype, use sizetype as tidx type and fold_convert the
6182 subtraction to sizetype.
6184 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6186 * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
6187 (riscv_vector_mode_supported_any_target_p): Ditto.
6189 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
6192 * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
6193 (TARGET_ZERO_CALL_USED_REGS): Define.
6195 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
6198 * config/m68k/m68k.cc (output_andsi3): Use QImode for
6199 address adjusted for 1-byte RMW access.
6200 (output_iorsi3): Likewise.
6201 (output_xorsi3): Likewise.
6203 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6205 * doc/invoke.texi (RISC-V Options): Add list of supported
6208 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6211 * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
6212 (RVV_VUNDEF): Ditto.
6213 * config/riscv/riscv-vsetvl.cc: Add timevar.
6215 2024-01-19 Richard Biener <rguenther@suse.de>
6218 * lto-streamer-in.cc (lto_read_tree_1): When there isn't
6219 an early DIE but there should be, do not pretend there is.
6221 2024-01-19 Richard Biener <rguenther@suse.de>
6223 PR tree-optimization/113494
6224 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6225 Handle endless loop on exit. Handle re-allocated PHI.
6227 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6229 PR tree-optimization/113464
6230 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
6231 optimize loads into GIMPLE_ASM stmts.
6233 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6235 PR tree-optimization/113463
6236 * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
6237 Only look through NOP_EXPRs if rhs1 doesn't have wider type than
6240 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6242 PR tree-optimization/113459
6243 * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
6244 TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
6245 of SCALAR_INT_TYPE_MODE if type has BLKmode.
6246 (vn_reference_lookup_3): Likewise. Formatting fix.
6248 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6249 Richard Biener <rguenther@suse.de>
6251 * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
6252 VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
6253 * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
6254 but adjust_address also for BLKmode mode and MEM op0.
6256 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
6258 * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
6261 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6263 * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
6265 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6267 * common/config/riscv/riscv-common.cc
6268 (riscv_subset_list::parse_std_ext): Remove.
6269 (riscv_subset_list::parse_multiletter_ext): Remove.
6270 * config/riscv/riscv-subset.h
6271 (riscv_subset_list::parse_std_ext): Remove.
6272 (riscv_subset_list::parse_multiletter_ext): Remove.
6274 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6276 * common/config/riscv/riscv-common.cc
6277 (riscv_subset_list::parse_single_std_ext): New parameter.
6278 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
6279 (riscv_subset_list::parse_single_ext): Ditto.
6280 (riscv_subset_list::parse): Relax the order for the input of ISA
6282 * config/riscv/riscv-subset.h
6283 (riscv_subset_list::parse_single_std_ext): New parameter.
6284 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
6285 (riscv_subset_list::parse_single_ext): Ditto.
6287 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6289 * common/config/riscv/riscv-common.cc
6290 (riscv_subset_list::parse_base_ext): New.
6291 (riscv_subset_list::parse): Extract part of logic into
6292 riscv_subset_list::parse_base_ext.
6293 * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
6296 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6298 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
6301 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
6303 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
6306 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
6309 * doc/extend.texi (Common Variable Attributes): Explain what
6310 happens when multiple variables with cleanups are in the same scope.
6312 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6315 * doc/extend.texi (Common Function Attributes): Document that
6316 noinline also disables some interprocedural optimizations and
6317 improve flow to the part about using inline asm instead to
6318 disable calls from being optimized away completely. Remove the
6319 sentence that says noipa is mainly for internal compiler testing.
6321 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
6323 PR tree-optimization/69807
6324 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
6326 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
6329 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
6330 from x86 Windows Options.
6332 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6335 * doc/extend.texi (C Extensions): Add new section to menu.
6336 (Function Attributes): Move dangling index entries to....
6337 (Const and Volatile Functions): New section.
6339 2024-01-18 David Malcolm <dmalcolm@redhat.com>
6341 PR middle-end/112684
6342 * toplev.cc (toplev::main): Don't ICE in
6343 -fdiagnostics-generate-patch when exiting after options,
6344 since no edit context will have been created.
6346 2024-01-18 Richard Biener <rguenther@suse.de>
6348 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
6351 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6353 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
6354 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
6356 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6357 Jin Ma <jinma@linux.alibaba.com>
6358 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6359 Christoph Müllner <christoph.muellner@vrull.eu>
6361 * config/riscv/thead.cc
6362 (th_asm_output_opcode): Rewrite some instructions.
6364 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6365 Jin Ma <jinma@linux.alibaba.com>
6366 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6367 Christoph Müllner <christoph.muellner@vrull.eu>
6369 * config/riscv/riscv.md (none,thv,rvv): New attribute.
6370 (no,yes): Add an attribute to disable alternative
6371 for xtheadvector or RVV1.0.
6372 * config/riscv/vector.md:
6373 Disable alternatives that destination register overlaps
6374 source register group for xtheadvector.
6376 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6377 Jin Ma <jinma@linux.alibaba.com>
6378 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6379 Christoph Müllner <christoph.muellner@vrull.eu>
6381 * config/riscv/riscv-vector-builtins-bases.cc
6382 (class th_loadstore_width): Define new builtin bases.
6383 (class th_extract): Define new builtin bases.
6384 (BASE): Define new builtin bases.
6385 * config/riscv/riscv-vector-builtins-bases.h:
6386 Define new builtin class.
6387 * config/riscv/riscv-vector-builtins-shapes.cc
6388 (struct th_loadstore_width_def): Define new builtin shapes.
6389 (struct th_indexed_loadstore_width_def):
6390 Define new builtin shapes.
6391 (struct th_extract_def): Define new builtin shapes.
6392 (SHAPE): Define new builtin shapes.
6393 * config/riscv/riscv-vector-builtins-shapes.h:
6394 Define new builtin shapes.
6395 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
6396 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
6397 * config/riscv/riscv-vector-builtins.h
6398 (enum required_ext): Add new XTheadVector member.
6399 (struct function_group_info): Likewise.
6400 * config/riscv/t-riscv:
6401 Add thead-vector-builtins-functions.def
6402 * config/riscv/thead-vector.md
6403 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
6404 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
6405 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
6406 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
6407 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
6408 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
6409 (@pred_th_extract<mode>): Likewise.
6410 (*pred_th_extract<mode>): Likewise.
6411 * config/riscv/thead-vector-builtins-functions.def: New file.
6413 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6414 Jin Ma <jinma@linux.alibaba.com>
6415 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6416 Christoph Müllner <christoph.muellner@vrull.eu>
6418 * config.gcc: Add files for XTheadVector intrinsics.
6419 * config/riscv/autovec.md: Guard XTheadVector.
6420 * config/riscv/predicates.md: Disable immediate vl
6422 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
6423 Add pragma for XTheadVector.
6424 * config/riscv/riscv-string.cc (riscv_expand_block_move):
6426 * config/riscv/riscv-v.cc (vls_mode_valid_p):
6428 * config/riscv/riscv-vector-builtins-bases.cc:
6429 Do not normalize vsetvl instructions for XTheadVector.
6430 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
6431 New check type function.
6432 (build_one): Adjust for XTheadVector.
6433 * config/riscv/riscv-vector-switch.def (ENTRY):
6434 Disable fractional mode for the XTheadVector extension.
6435 (TUPLE_ENTRY): Likewise.
6436 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
6438 (riscv_preferred_simd_mode): Likewsie.
6439 (riscv_autovectorize_vector_modes): Likewise.
6440 (riscv_vector_mode_supported_any_target_p): Likewise.
6441 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
6442 * config/riscv/thead.cc (th_asm_output_opcode):
6443 Rewrite vsetvl instructions.
6444 * config/riscv/vector.md:
6445 Include thead-vector.md and change fractional LMUL
6447 * config/riscv/riscv_th_vector.h: New file.
6448 * config/riscv/thead-vector.md: New file.
6450 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6451 Jin Ma <jinma@linux.alibaba.com>
6452 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6453 Christoph Müllner <christoph.muellner@vrull.eu>
6455 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
6456 Add new function to add assembler insn code prefix/suffix.
6457 (th_asm_output_opcode):
6458 Add Thead function to add assembler insn code prefix/suffix.
6459 * config/riscv/riscv.cc (riscv_asm_output_opcode):
6460 Implement function to add assembler insn code prefix/suffix.
6461 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
6462 Add new function to add assembler insn code prefix/suffix.
6463 * config/riscv/thead.cc (th_asm_output_opcode):
6464 Implement Thead function to add assembler insn code
6467 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6468 Jin Ma <jinma@linux.alibaba.com>
6469 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6470 Christoph Müllner <christoph.muellner@vrull.eu>
6472 * common/config/riscv/riscv-common.cc
6473 (riscv_subset_list::parse): Add new vendor extension.
6474 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
6476 * config/riscv/riscv.opt: Add new mask.
6478 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6480 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
6481 to be conditional on macosx-version-min.
6483 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6485 * config/darwin.cc (darwin_objc1_section): Use the correct
6486 meta-data version for constant strings.
6487 (machopic_select_section): Assert if we fail to handle CFString
6488 sections as Obejctive-C meta-data or drectly.
6490 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6492 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
6493 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
6494 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
6495 versions when the object format is Mach-O.
6497 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6500 * config/darwin.cc (machopic_select_section): Handle C and C++
6502 (darwin_rename_builtins): Move this out of the CFString code.
6503 (darwin_libc_has_function): Likewise.
6504 (darwin_build_constant_cfstring): Create an anonymous var to
6506 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
6509 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6512 * haifa-sched.cc (dep_list_size): Make global.
6513 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
6514 * sched-int.h (dep_list_size): Declare.
6516 2024-01-18 Martin Jambor <mjambor@suse.cz>
6518 PR tree-optimization/110422
6519 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
6522 2024-01-18 Richard Biener <rguenther@suse.de>
6524 PR tree-optimization/113475
6525 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
6526 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
6527 (phi_analyzer::~phi_analyzer): Deallocate and free collected
6529 (phi_analyzer::process_phi): Record allocated phi_groups.
6531 2024-01-18 Richard Biener <rguenther@suse.de>
6533 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
6534 storage for gvec_oprnds elements.
6536 2024-01-18 Richard Biener <rguenther@suse.de>
6538 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
6539 prefer all later exits we can handle.
6540 (vect_analyze_loop_form): Free the allocated loop body.
6543 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6545 * config/avr/avr-log.cc: Tabify.
6547 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6549 * config/riscv/autovec.md: Support vi variant.
6551 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6553 * config/avr/avr-devices.cc: Tabify.
6555 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6557 * config/avr/avr-c.cc: Tabify.
6559 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6561 * config/avr/driver-avr.cc: Tabify.
6563 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6565 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
6567 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6569 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
6571 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6573 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
6574 minline-strcmp, minline-strncmp, minline-strlen,
6575 -param=riscv-vector-abi): Remove Bool keywords.
6577 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6580 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
6581 support. Add missing space after , in emitted assembly in some
6582 cases. Formatting fixes.
6584 2024-01-18 Xi Ruoyao <xry111@xry111.site>
6586 * config/loongarch/loongarch.md (movsi_internal): Remove
6589 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6591 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
6592 in the diagnostic, and capitalize the device name.
6593 (print_mcu): Generate specs such that:
6594 <*check_rodata_in_ram>: New.
6595 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
6596 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
6597 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
6599 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6602 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
6603 Common and Optimization.
6605 2024-01-18 Richard Biener <rguenther@suse.de>
6607 PR tree-optimization/113431
6608 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
6609 When there is an invariant load we might not preserve
6612 2024-01-18 Richard Biener <rguenther@suse.de>
6614 PR tree-optimization/113374
6615 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
6616 * tree-vect-loop.cc (move_early_exit_stmts): Update
6618 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6619 Refactor. Preserve virtual LC PHIs on all exits.
6621 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
6623 * config/loongarch/loongarch.cc (loongarch_split_symbol):
6624 Assign the '/u' attribute to the mem.
6626 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6628 PR middle-end/110847
6629 * doc/invoke.texi (Option Summary): Document negative forms of
6630 -Wtsan and -Wxor-used-as-pow.
6631 (Warning Options): Likewise.
6633 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6636 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
6638 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6640 * doc/extend.texi (Common Function Attributes): Re-alphabetize
6642 (Common Variable Attributes): Likewise.
6643 (Common Type Attributes): Likewise.
6645 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6647 PR middle-end/111659
6648 * doc/extend.texi (Common Variable Attributes): Fix long lines
6649 in documentation of strict_flex_array + other minor copy-editing.
6650 Add a cross-reference to -Wstrict-flex-arrays.
6651 * doc/invoke.texi (Option Summary): Fix whitespace in tables
6652 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
6653 (C Dialect Options): Combine the docs for the two
6654 -fstrict-flex-arrays forms into a single entry. Note this option
6655 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
6656 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
6657 Minor copy-editing. Add cross references to the strict_flex_array
6658 attribute and -fstrict-flex-arrays option. Add note that this
6659 option depends on -ftree-vrp.
6661 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
6664 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
6665 only allow REG operands instead of allowing all.
6667 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
6669 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
6670 Remove redundant checks in else condition for readablity.
6671 (earliest_fuse_vsetvl_info) Print iteration count in debug
6673 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
6674 dump details in certain cases.
6676 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
6678 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
6679 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
6680 * config/riscv/riscv-vsetvl.cc
6681 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
6682 (pass_vsetvl::execute): Use vsetvl_strategy.
6684 2024-01-17 Jan Hubicka <jh@suse.cz>
6686 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
6687 accidental hack reseting offset.
6689 2024-01-17 Jan Hubicka <jh@suse.cz>
6691 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
6692 handling of X86_TUNE_AVOID_512FMA_CHAINS.
6694 2024-01-17 Jan Hubicka <jh@suse.cz>
6695 Jakub Jelinek <jakub@redhat.com>
6697 PR tree-optimization/110852
6698 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
6700 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
6701 PRED_COMBINED_VALUE_PREDICTIONS_PHI
6702 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
6703 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
6705 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6707 PR tree-optimization/113421
6708 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
6710 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
6711 formatting. Start at vop rather than cvop even if stmt is a store
6712 and needs_operand_addr.
6714 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6716 PR middle-end/113410
6717 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
6718 If access_nelts is integral with larger precision than sizetype,
6719 fold_convert it to sizetype.
6721 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6723 PR tree-optimization/113408
6724 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
6725 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
6728 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6730 PR middle-end/113406
6731 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
6732 regardless of whether is_gimple_reg_type (restype) or not.
6734 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6736 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
6737 funcions -> functions, and use were instead of was.
6738 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
6739 and guaranteee -> guarantee.
6740 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
6742 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6744 PR middle-end/113409
6745 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
6747 (omp_extract_for_data): Use build_bitint_type rather than
6748 build_nonstandard_integer_type if either iter_type or loop->v type
6750 * omp-expand.cc (expand_omp_for_generic,
6751 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
6752 BITINT_TYPE like INTEGER_TYPE.
6754 2024-01-17 Richard Biener <rguenther@suse.de>
6756 PR tree-optimization/113371
6757 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
6758 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
6759 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
6760 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
6762 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6764 PR rtl-optimization/96388
6765 PR rtl-optimization/111554
6766 * sched-deps.cc (find_inc): Avoid exponential behavior.
6768 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6771 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
6772 from C++ Language Options to Warning Options. Add entry for
6774 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
6776 (Warning Options): ...to here. Minor copy-editing to fix typo
6779 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
6781 * config/mips/mips.cc (mips_compute_frame_info): If another
6782 register is used as global_pointer, mark $GP live false.
6784 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6787 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
6788 give the section a light copy-editing pass.
6790 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
6792 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
6793 * config/aarch64/aarch64-tune.md: Regenerated.
6794 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
6796 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
6799 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
6800 badly formed CONST expressions.
6802 2024-01-16 Daniel Cederman <cederman@gaisler.com>
6804 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
6806 2024-01-16 Daniel Cederman <cederman@gaisler.com>
6808 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
6809 * config/sparc/sync.md (membar_storeload): Turn into named insn
6810 and add GR712RC errata workaround.
6811 (membar_v8): Add GR712RC errata workaround.
6813 2024-01-16 Andreas Larsson <andreas@gaisler.com>
6815 * config/sparc/sync.md (*membar_storeload_leon3): Remove
6816 (*membar_storeload): Enable for LEON
6818 2024-01-16 Jakub Jelinek <jakub@redhat.com>
6820 PR tree-optimization/113372
6822 PR middle-end/110115
6823 PR middle-end/111422
6824 * cfgexpand.cc (add_scope_conflicts_2): New function.
6825 (add_scope_conflicts_1): Use it.
6827 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
6829 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
6830 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
6831 * doc/avr-mmcu.texi: Regenerate.
6833 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
6835 PR tree-optimization/113091
6836 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
6837 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
6838 scalar use with new function.
6839 (vect_bb_slp_mark_live_stmts): New function as entry to existing
6840 overriden functions with same name.
6841 (vect_slp_analyze_operations): Call new entry function to mark
6844 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6847 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
6848 for RVV in big-endian mode.
6850 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
6852 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
6853 (riscv_pass_in_vector_p): Delete.
6854 (riscv_init_cumulative_args): Delete the checking.
6855 (riscv_get_arg_info): Delete the checking.
6856 (riscv_function_value): Delete the checking.
6857 * config/riscv/riscv.h: Delete the member for checking.
6859 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
6861 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
6863 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
6865 * config.gcc: Include riscv_bitmanip.h.
6866 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
6867 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
6868 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
6869 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
6870 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
6871 * config/riscv/riscv-ftypes.def (2): New ftypes.
6872 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
6873 (RISCV_BUILTIN_NO_PREFIX): Likewise.
6874 * config/riscv/riscv_bitmanip.h: New file.
6876 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
6878 * config.gcc: Include riscv_crypto.h.
6879 * config/riscv/riscv_crypto.h: New file.
6881 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
6883 PR middle-end/113354
6884 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
6885 in the insn if the corresponding operand does not require hard
6888 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
6891 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
6892 * config/avr/driver-avr.cc (avr_no_devlib): New function.
6893 (avr_devicespecs_file): Use it to remove -nodevicelib from the
6894 options for cores only.
6895 * config/avr/avr-arch.h (avr_get_parch): New prototype.
6896 * config/avr/avr-devices.cc (avr_get_parch): New function.
6898 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6901 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
6902 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
6903 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
6905 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6908 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
6909 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
6910 * config/riscv/riscv-vector-costs.h: New function.
6912 2024-01-15 Richard Biener <rguenther@suse.de>
6914 PR tree-optimization/113385
6915 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6916 First redirect, then split the exit edge.
6918 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6920 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
6921 Remove m_num_vector_iterations.
6922 * config/riscv/riscv-vector-costs.h: Ditto.
6924 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
6927 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
6928 (-mbranch-cost): Set "Optimization" flag.
6930 2024-01-15 Jakub Jelinek <jakub@redhat.com>
6932 PR tree-optimization/113370
6933 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
6934 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
6935 set it to just prec % limb_prec.
6937 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6940 * config/riscv/vector.md: Fix ternary attributes.
6942 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
6945 * configure.ac [target=avr]: Check availability of emulations
6946 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
6947 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
6948 * configure: Regenerate.
6949 * config.in: Regenerate.
6950 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
6951 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
6952 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
6953 * config/avr/avr-arch.h (enum avr_device_specific_features):
6955 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
6957 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
6958 (avr_set_core_architecture): Set avr_arch_index.
6959 (have_avrxmega2_flmap, have_avrxmega4_flmap)
6960 (have_avrxmega3_rodata_in_flash): Set new static const bool according
6961 to configure results.
6962 (avr_rodata_in_flash_p): New function using them.
6963 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
6964 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
6965 (avr_asm_named_section): Track avr_has_rodata_p.
6966 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
6967 and not avr_rodata_in_flash_p ().
6968 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
6969 (LINK_SPEC): Add %(link_rodata_in_ram).
6970 (LINK_ARCH_SPEC): Remove.
6971 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
6972 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
6973 const bool according to configure results.
6974 (diagnose_mrodata_in_ram): New function.
6975 (print_mcu): Generate specs with the following changes:
6976 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
6977 need to extend avr/specs.h each time we add a new bell or whistle.
6978 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
6979 -m[no-]rodata-in-ram.
6980 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
6981 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
6982 <*cpp>: Add %(cpp_rodata_in_ram).
6983 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
6985 <*self_spec>: Add -mflmap or %<mflmap as needed.
6987 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
6989 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
6990 not the GPR iterator. Adjust pattern name and mode attribute
6993 2024-01-13 Jakub Jelinek <jakub@redhat.com>
6995 PR tree-optimization/113361
6996 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
6997 Fix up determination of the type for > limb_prec constants.
6999 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
7001 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
7002 Add web-link to the avr-gcc wiki.
7004 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
7006 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
7007 documentation for a version without argument, which is not supported.
7009 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7011 * config/arm/arm_neon.h
7012 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
7013 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
7014 (vld1_f16_x4, vld1_f32_x4): New.
7015 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
7016 (vld1_bf16_x4): New.
7017 (vld1q_types_x4): Updated to use vld1q_x4
7018 from arm_neon_builtins.def
7019 * config/arm/arm_neon_builtins.def
7020 (vld1_x4): Updated entries.
7021 (vld1q_x4): New entries, but comes from the old vld1_x4
7022 * config/arm/neon.md
7023 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
7025 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7027 * config/arm/arm_neon.h
7028 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
7029 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
7030 (vld1_f16_x3, vld1_f32_x3): New.
7031 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
7032 (vld1_bf16_x3): New.
7033 (vld1q_types_x3): Updated to use vld1q_x3 from
7034 arm_neon_builtins.def
7035 * config/arm/arm_neon_builtins.def
7036 (vld1_x3): Updated entries.
7037 (vld1q_x3): New entries, but comes from the old vld1_x2
7038 * config/arm/neon.md
7039 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
7041 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7043 * config/arm/arm_neon.h
7044 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
7045 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
7046 (vld1_f16_x2, vld1_f32_x2): New.
7047 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
7048 (vld1_bf16_x2): New.
7049 (vld1q_types_x2): Updated to use vld1q_x2 from
7050 arm_neon_builtins.def
7051 * config/arm/arm_neon_builtins.def
7052 (vld1_x2): Updated entries.
7053 (vld1q_x2): New entries, but comes from the old vld1_x2
7054 * config/arm/neon.md
7055 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
7058 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7060 * config/arm/arm_neon.h
7061 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
7062 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
7063 (vst1q_f16_x4, vst1q_f32_x4): New.
7064 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
7065 (vst1q_bf16_x4): New.
7066 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
7067 * config/arm/neon.md
7068 (neon_vst1q_x4<mode>): New.
7069 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
7070 * config/arm/unspecs.md
7071 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
7073 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7075 * config/arm/arm_neon.h
7076 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
7077 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
7078 (vst1q_f16_x3, vst1q_f32_x3): New.
7079 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
7080 (vst1q_bf16_x3): New.
7081 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
7082 * config/arm/neon.md
7083 (neon_vst1q_x3<mode>): New.
7084 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
7085 * config/arm/unspecs.md
7086 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
7088 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7090 * config/arm/arm_neon.h
7091 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
7092 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
7093 (vst1q_f16_x2, vst1q_f32_x2): New.
7094 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
7095 (vst1q_bf16_x2): New.
7096 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
7097 * config/arm/neon.md
7098 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
7100 * config/arm/iterators.md
7101 (VMEMX2): New mode iterator.
7102 (VMEMX2_q): New mode attribute.
7104 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7106 * config/arm/arm_neon.h
7107 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
7108 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
7109 (vst1_f16_x4, vst1_f32_x4): New.
7110 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
7111 (vst1_bf16_x4): New.
7112 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
7113 * config/arm/neon.md (vst1_x4<mode>): New.
7115 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7117 * config/arm/arm_neon.h
7118 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
7119 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
7120 (vst1_f16_x3, vst1_f32_x3): New.
7121 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
7122 (vst1_bf16_x3): New.
7123 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
7124 * config/arm/neon.md (vst1_x3<mode>): New.
7126 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7128 * config/arm/arm_neon.h
7129 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
7130 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
7131 (vst1_f16_x2, vst1_f32_x2): New.
7132 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
7133 (vst1_bf16_x2): New.
7134 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
7135 * config/arm/neon.md (vst1_x2<mode>): New.
7137 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7139 * config/arm/arm_neon.h
7140 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
7141 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
7142 (vld1q_f16_x4, vld1q_f32_x4): New.
7143 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
7144 (vld1q_bf16_x4): New.
7145 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
7146 * config/arm/neon.md
7147 (neon_vld1_x4<mode>): New.
7148 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
7149 * config/arm/unspecs.md
7150 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
7152 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7154 * config/arm/arm_neon.h
7155 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
7156 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
7157 (vld1q_f16_x3, vld1q_f32_x3): New.
7158 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
7159 (vld1q_bf16_x3): New.
7160 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
7161 * config/arm/neon.md
7162 (neon_vld1_x3<mode>): New.
7163 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
7164 * config/arm/unspecs.md
7165 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
7167 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7169 * config/arm/arm_neon.h
7170 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
7171 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
7172 (vld1q_f16_x2, vld1q_f32_x2): New.
7173 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
7174 (vld1q_bf16_x2): New.
7175 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
7176 * config/arm/neon.md (vld1_x2<mode>): New.
7178 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7180 PR tree-optimization/113287
7181 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
7183 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7185 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
7186 * tree-vect-loop.cc (vect_transform_loop): Likewise.
7188 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7190 PR tree-optimization/113178
7191 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
7194 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7196 PR tree-optimization/113237
7197 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
7198 existing LCSSA variable for exit when all exits are early break.
7200 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7202 PR tree-optimization/113137
7203 PR tree-optimization/113136
7204 PR tree-optimization/113172
7205 PR tree-optimization/113178
7206 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
7207 Maintain PHIs on inverted loops.
7208 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
7209 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
7211 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
7213 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7215 PR tree-optimization/113135
7216 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
7217 dependency analysis.
7219 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
7221 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
7222 diagnostics class member name for abort of error.
7224 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
7226 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
7227 format string to %s argument.
7229 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
7230 Jakub Jelinek <jakub@redhat.com>
7232 PR middle-end/113182
7233 * varasm.cc (process_pending_assemble_externals,
7234 assemble_external_libcall): Use targetm.strip_name_encoding
7235 before calling get_identifier.
7237 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7240 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
7241 New member variable.
7242 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
7244 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
7245 * config/aarch64/aarch64-simd.md
7246 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
7247 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
7248 zip2 for zero-extends to...
7249 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
7250 instruction. Fix big-endian handling.
7251 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
7252 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
7253 zip1 for zero-extends to...
7254 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
7255 Fix big-endian handling.
7256 (*aarch64_zip1_uxtl): New pattern.
7257 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
7258 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
7259 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
7260 (aarch64_gen_shareable_zero): Use it.
7261 (aarch64_split_simd_shift_p): New function.
7263 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7265 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
7266 (function_beg_insn): New macro.
7267 * function.cc (expand_function_start): Initialize function_beg_insn.
7269 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7272 * config/aarch64/aarch64-sve-builtins.h
7273 (function_builder::m_overload_names): Replace with...
7274 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
7276 (add_overloaded_function): Update accordingly, using get_identifier
7277 to get a GGC-friendly record of the name.
7279 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7282 * config/aarch64/aarch64-sve-builtins.def: Don't include
7283 aarch64-sve-builtins-sme.def.
7284 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
7285 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
7286 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
7287 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
7288 requires AARCH64_FL_SME2.
7289 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
7290 AARCH64_FL_SME adjustment here.
7291 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
7292 include SME intrinsics.
7293 (sme_function_groups): New array.
7294 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
7295 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
7297 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7300 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
7301 (struct cpu_vector_cost): Add regmove struct.
7302 (get_vector_costs): Export as global.
7303 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
7304 (costs::add_stmt_cost): Ditto.
7305 * config/riscv/riscv.cc (get_common_costs): Export global function.
7307 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7309 PR tree-optimization/113334
7310 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
7311 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
7312 to determine if number should be extended by all ones rather than zero
7315 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7317 PR tree-optimization/113330
7318 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
7321 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7323 PR tree-optimization/113323
7324 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
7325 check for lhs being large/huge _BitInt not in m_names.
7327 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7329 PR tree-optimization/113316
7330 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
7331 uninitialized large/huge _BitInt arguments to calls.
7333 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7335 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
7336 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
7337 CEIL (TYPE_PRECISION (t), limb_prec).
7338 (bitint_large_huge::handle_cast): Likewise.
7340 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
7343 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
7344 Use assemble_function_label_final () for Power ELF V1 ABI.
7345 * output.h (assemble_function_label_final): New function.
7346 * varasm.cc (assemble_function_label_raw): Use
7347 assemble_function_label_final ().
7348 (assemble_function_label_final): New function.
7350 2024-01-12 Richard Biener <rguenther@suse.de>
7352 PR middle-end/113344
7353 * match.pd ((double)float CMP (double)float -> float CMP float):
7354 Perform result type check only for vectors.
7355 * fold-const.cc (fold_binary_loc): Likewise.
7357 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
7359 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
7360 (usdot_prod<mode>): Ditto.
7361 (sdot_prod<mode>): Ditto.
7362 (udot_prod<mode>): Ditto.
7364 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
7367 * config/i386/i386-c.cc (ix86_target_macros_internal):
7368 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
7370 2024-01-12 Richard Biener <rguenther@suse.de>
7373 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
7374 Do not generate code when d.testing_p.
7376 2024-01-12 liuhongt <hongtao.liu@intel.com>
7379 * doc/invoke.texi (fcf-protection=): Update documents.
7381 2024-01-12 Pan Li <pan2.li@intel.com>
7383 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
7384 comments of predicate func riscv_v_ext_mode_p.
7386 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
7388 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
7389 Modify ABI-name length of vfloat16m8_t
7391 2024-01-12 Li Wei <liwei@loongson.cn>
7393 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
7396 2024-01-12 Li Wei <liwei@loongson.cn>
7398 * config/loongarch/loongarch.md (add<mode>3): Removed.
7402 (*addsi3_extended): Removed.
7403 (addsi3_extended): New.
7405 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
7407 * config/riscv/thead.md: Add limits for splits.
7409 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
7411 PR middle-end/113322
7412 * expr.cc (do_store_flag): Don't try single bit tests with
7413 comparison on vector types.
7415 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
7417 PR tree-optimization/113301
7418 * match.pd (`1/x`): Delay signed case until late.
7420 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
7422 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
7424 (AVR Internal Options): ...this new @subsubsection.
7426 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
7428 PR rtl-optimization/112918
7429 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
7430 (in_class_p): Restrict condition for narrowing class in case of
7431 allow_all_reload_class_changes_p.
7432 (process_alt_operands): Try to match operand without and with
7433 narrowing reg class. Discourage narrowing the class. Finish insn
7434 matching only if there is no class narrowing.
7435 (curr_insn_transform): Pass true to in_class_p for reg operand win.
7437 2024-01-11 Richard Biener <rguenther@suse.de>
7439 PR tree-optimization/112505
7440 * tree-vect-loop.cc (vectorizable_induction): Reject
7441 bit-precision induction.
7443 2024-01-11 Richard Biener <rguenther@suse.de>
7445 PR tree-optimization/113126
7446 * match.pd ((double)float CMP (double)float -> float CMP float):
7447 Make sure the boolean type is the same.
7448 * fold-const.cc (fold_binary_loc): Likewise.
7450 2024-01-11 Richard Biener <rguenther@suse.de>
7452 PR tree-optimization/112636
7453 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
7454 estimate_numbers_of_iterations before querying
7455 get_max_loop_iterations_int.
7456 (pass_ch::execute): Initialize SCEV and loops appropriately.
7458 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
7460 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
7462 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
7463 * doc/extend.texi (AVR Variable Attributes): Improve documentation
7464 of io, io_low and address attributes.
7465 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
7466 * doc/avr-mmcu.texi: Rebuild.
7468 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
7471 * config/loongarch/genopts/loongarch.opt.in: Mark options with
7472 the "Save" property.
7473 * config/loongarch/loongarch.opt: Same.
7474 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
7475 according to la_target.
7476 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
7477 RESTORE} for the la_target structure; Rename option conditions
7478 to have the same "la_" prefix.
7479 * config/loongarch/loongarch.h: Same.
7481 2024-01-11 Pan Li <pan2.li@intel.com>
7483 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
7484 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
7486 2024-01-11 Alex Coplan <alex.coplan@arm.com>
7489 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
7490 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
7491 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
7492 synthesize these if needed. Update caller ...
7493 (ldp_bb_info::fuse_pair): ... here.
7494 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
7495 and either insn is frame-related.
7496 (find_trailing_add): Punt on frame-related insns.
7497 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
7498 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
7500 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
7502 * config/mips/mips.cc (mips_start_function_definition):
7503 Add ATTRIBUTE_UNUSED.
7505 2024-01-11 Richard Biener <rguenther@suse.de>
7507 PR middle-end/112740
7508 * expr.cc (store_constructor): Check the integer vector
7509 mask has a single bit per element before using sign-extension
7510 to expand an uniform vector.
7512 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7514 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
7515 preempt VLS on unknown NITERS loop.
7517 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
7519 * doc/invoke.texi: Add -mevex512.
7521 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
7523 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
7524 (*nor<mode>3): Likewise.
7525 (nor<mode>3): Likewise.
7526 (*negsi2_extended): New template.
7527 (*<optab>si3_internal): Likewise.
7528 (*one_cmplsi2_internal): Likewise.
7529 (*norsi3_internal): Likewise.
7530 (*<optab>nsi_internal): Likewise.
7531 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
7532 modified bit operation to make the optimization work.
7534 2024-01-11 liuhongt <hongtao.liu@intel.com>
7537 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
7539 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7541 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
7542 (get_vector_costs): Ditto.
7543 (riscv_builtin_vectorization_cost): Ditto.
7545 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7547 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
7549 2024-01-10 Antoni Boucher <bouanto@zoho.com>
7552 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
7553 ipa_free_size_summary.
7554 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
7555 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
7556 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
7557 * ipa-prop.h (ipa_prop_cc_finalize): New function.
7558 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
7559 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
7560 ipa_sra_cc_finalize): New functions.
7561 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
7562 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
7564 Include ipa-utils.h.
7566 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
7568 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
7569 (th_int_get_save_adjustment): Likewise.
7570 (th_int_adjust_cfi_prologue): Likewise.
7571 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
7572 (TH_INT_INTERRUPT): New macro.
7573 (riscv_expand_prologue): Add the processing of XTheadInt.
7574 (riscv_expand_epilogue): Likewise.
7575 * config/riscv/riscv.h (BITSET_P): Moved to here.
7576 * config/riscv/riscv.md: New unspec.
7577 * config/riscv/thead.cc (th_int_get_mask): New function.
7578 (th_int_get_save_adjustment): Likewise.
7579 (th_int_adjust_cfi_prologue): Likewise.
7580 * config/riscv/thead.md (th_int_push): New pattern.
7581 (th_int_pop): new pattern.
7583 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7585 PR tree-optimization/112468
7586 * doc/sourcebuild.texi: Document ifn_copysign.
7587 * match.pd: Only apply transformation if target supports the IFN.
7589 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
7591 PR tree-optimization/112581
7592 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
7593 mark_ssa_maybe_undefs.
7594 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
7595 variables can not be reassociated.
7596 (init_range_entry): Check for uninitialized variables too.
7597 (init_reassoc): Call mark_ssa_maybe_undefs.
7599 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
7601 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
7602 Also handle sign extension.
7604 2024-01-10 Alex Coplan <alex.coplan@arm.com>
7606 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
7608 (-mlate-ldp-fusion): Likewise.
7610 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7612 PR tree-optimization/113287
7613 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
7614 instead of using BRANCH_EDGE to determine true edge.
7616 2024-01-10 Richard Biener <rguenther@suse.de>
7618 PR tree-optimization/113078
7619 * tree-vect-loop.cc (check_reduction_path): Canonicalize
7620 .COND_SUB to .COND_ADD.
7622 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7624 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
7625 Handle prefix mappings before calling find_opt.
7626 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
7627 "-fno-"-prefixed command-line option.
7628 * opts-common.cc (get_option_prefix_remapping): New.
7629 * opts.h (get_option_prefix_remapping): New decl.
7631 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7633 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
7634 m_urlifier to pp_output_formatted_text.
7635 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
7636 (obstack_append_string): New overload, taking a length.
7637 (urlify_quoted_string): Pass in an obstack ptr, rather than using
7638 that of the pp's buffer. Generalize to handle trailing text in
7639 the buffer beyond the run of quoted text.
7640 (class quoting_info): New.
7641 (on_begin_quote): New.
7642 (on_end_quote): New.
7643 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
7644 it to calls to on_begin_quote and on_end_quote.
7645 (struct auto_obstack): New.
7646 (quoting_info::handle_phase_3): New.
7647 (pp_output_formatted_text): Add urlifier param. Use it if there
7648 is deferred urlification. Delete m_quotes.
7649 (selftest::pp_printf_with_urlifier): Pass urlifier to
7650 pp_output_formatted_text.
7651 (selftest::test_urlification): Update results for the existing
7652 case of quoted text stradding chunks; add more such test cases.
7653 * pretty-print.h (class quoting_info): New forward decl.
7654 (chunk_info::m_quotes): New field.
7655 (pp_output_formatted_text): Add optional urlifier param.
7657 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7659 * pretty-print.cc (selftest::test_pp_format): Add selftest
7660 coverage for numbered args.
7662 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7664 PR tree-optimization/113144
7665 PR tree-optimization/113145
7666 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
7667 Update all BB that the original exits dominated.
7669 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
7671 * dwarf2out.cc (modified_type_die): Extend the support of reverse
7672 storage order to enumeration types if -gstrict-dwarf is not passed.
7673 (gen_enumeration_type_die): Add REVERSE parameter and generate the
7674 DIE immediately after the existing one if it is true.
7675 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
7676 call to gen_enumeration_type_die.
7677 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
7678 first recursive call as well as the call to gen_tagged_type_die.
7679 (gen_type_die): Add REVERSE parameter and pass it in the call to
7680 gen_type_die_with_usage.
7682 2024-01-10 Jakub Jelinek <jakub@redhat.com>
7684 PR tree-optimization/113120
7685 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
7686 with root->size TYPE_PRECISION don't build anything new.
7687 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
7688 rather than build_nonstandard_integer_type.
7690 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
7692 * config/i386/i386.opt: Adjust document.
7693 * doc/invoke.texi: Add description for
7694 -mapx-inline-asm-use-gpr32.
7696 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7698 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
7699 (avg<v_double_trunc>3_floor): New pattern.
7700 (<u>avg<v_double_trunc>3_ceil): Remove.
7701 (avg<v_double_trunc>3_ceil): New pattern.
7702 (uavg<mode>3_floor): Ditto.
7703 (uavg<mode>3_ceil): Ditto.
7704 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
7705 (enum insn_type): Ditto.
7706 * config/riscv/riscv-v.cc: Ditto.
7707 * config/riscv/vector-iterators.md (ashiftrt): Remove.
7709 * config/riscv/vector.md: Add VLS modes.
7711 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7714 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
7715 (vczlsbb_char): New int attribute.
7716 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
7717 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
7718 (*vctzlsbb_zext_<mode>): Rename to ...
7719 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
7722 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7725 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
7726 of the last argument from altivec_register_operand to any_operand. If
7727 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
7728 otherwise if it doesn't satisfy altivec_register_operand, force it to
7729 REG using copy_to_mode_reg.
7731 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7733 PR middle-end/113100
7734 * builtins.cc (expand_builtin_stack_address): Guard stack point
7735 adjustment with SPARC_STACK_BOUNDARY_HACK.
7737 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7739 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
7740 argument string definitions.
7741 * config/loongarch/loongarch-str.h: Same.
7742 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
7743 as aliases to -mexplicit-relocs={always,none}
7744 * config/loongarch/loongarch.opt: Regenerate.
7745 * config/loongarch/loongarch.cc: Same.
7747 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7749 * config/loongarch/loongarch-def.h: Define constants with
7750 enums instead of Macros.
7752 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7754 * config/loongarch/genopts/loongarch-strings: Rename.
7755 * config/loongarch/genopts/loongarch.opt.in: Same.
7756 * config/loongarch/loongarch-cpu.cc: Same.
7757 * config/loongarch/loongarch-def.cc: Same.
7758 * config/loongarch/loongarch-def.h: Same.
7759 * config/loongarch/loongarch-opts.cc: Same.
7760 * config/loongarch/loongarch-opts.h: Same.
7761 * config/loongarch/loongarch-str.h: Same.
7762 * config/loongarch/loongarch.opt: Same.
7764 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7766 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
7767 variable with the common la_ prefix.
7768 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
7769 flags as saved using TargetVariable.
7770 * config/loongarch/loongarch.opt: Same.
7771 * config/loongarch/loongarch-def.h: Define evolution_set to
7772 mark changes to the -march default.
7773 * config/loongarch/loongarch-driver.cc: Same.
7774 * config/loongarch/loongarch-opts.cc: Same.
7775 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
7776 conditions around the la_target structure.
7777 * config/loongarch/loongarch.cc: Same.
7778 * config/loongarch/loongarch.md: Same.
7779 * config/loongarch/loongarch-builtins.cc: Same.
7780 * config/loongarch/loongarch-c.cc: Same.
7781 * config/loongarch/lasx.md: Same.
7782 * config/loongarch/lsx.md: Same.
7783 * config/loongarch/sync.md: Same.
7785 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
7787 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
7790 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
7792 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
7794 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7796 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
7798 (vectorizable_live_operation): Likewise.
7800 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7802 PR tree-optimization/113199
7803 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
7806 2024-01-09 Jakub Jelinek <jakub@redhat.com>
7809 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
7810 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
7811 GTY(()) declaration before the definition, drop GTY(()) drom the
7814 2024-01-09 Richard Biener <rguenther@suse.de>
7816 PR tree-optimization/113026
7817 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
7818 redundant and wrong niter bound setting. Move niter
7819 bound adjustment down.
7821 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7823 PR middle-end/113163
7824 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
7825 Reject non-linear inductions that aren't supported.
7827 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
7829 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
7830 left shift implementation strategies.
7831 (arc_shift_info): Type for each entry of the shift strategy table.
7832 (arc_shift_context_idx): Return a integer value for each code
7833 generation context, used as an index
7834 (arc_ashl_alg): Table indexed by context and shifted bit count.
7835 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
7836 left shift implementation.
7837 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
7838 provide accurate costs, when optimizing for speed or size.
7840 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7842 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
7844 2024-01-09 Julian Brown <julian@codesourcery.com>
7846 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
7847 processed out before gimplification.
7848 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
7849 * tree.def (OMP_ARRAY_SECTION): New tree code.
7851 2024-01-09 Jakub Jelinek <jakub@redhat.com>
7853 PR tree-optimization/113210
7854 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
7855 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
7856 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
7859 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
7861 PR rtl-optimization/113140
7862 * reorg.cc (fill_slots_from_thread): If we are to branch after the
7863 last instruction of the function, create an end label.
7865 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
7866 Hongtao Liu <hongtao.liu@intel.com>
7869 * config/i386/i386-expand.cc
7870 (ix86_convert_const_wide_int_to_broadcast): Allow call to
7871 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
7872 (ix86_broadcast_from_constant): Revert recent change; Return a
7873 suitable MEMREF independently of mode/target combinations.
7874 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
7875 to decide whether expansion is possible/preferrable. Only try
7876 forcing DImode constants to memory (and trying again) if calling
7877 ix86_expand_vector_init_duplicate fails with an DImode immediate
7879 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
7880 V4SImode for suitable immediate constants.
7881 <case E_V4DImode>: Try using V8SImode for suitable constants.
7882 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
7883 <case E_V2HImode>: Likewise.
7884 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
7885 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
7886 <label widen>: Handle CONT_INTs via simplify_binary_operation.
7887 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
7888 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
7889 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
7890 (ix86_expand_vector_init): Move try using a broadcast for all_same
7891 with ix86_expand_vector_init_duplicate before using constant pool.
7893 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
7895 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
7897 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
7899 * config/arm/arm-cpus.in (cortex-m52): New cpu.
7900 * config/arm/arm-tables.opt: Regenerate.
7901 * config/arm/arm-tune.md: Regenerate.
7903 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
7905 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
7906 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
7907 (@vec_concatz<mode>): New insn pattern.
7908 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
7909 Handle VALS containing two vectors.
7911 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7913 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
7914 (vundefined): Ditto.
7916 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
7918 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
7919 Add new function_base for crypto vector.
7920 (class bitmanip): Ditto.
7921 (class b_reverse):Ditto.
7922 (class vwsll): Ditto.
7923 (class clmul): Ditto.
7924 (class vg_nhab): Ditto.
7925 (class crypto_vv):Ditto.
7926 (class crypto_vi):Ditto.
7927 (class vaeskf2_vsm3c):Ditto.
7928 (class vsm3me): Ditto.
7929 (BASE): Add BASE declaration for crypto vector.
7930 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7931 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
7932 Add crypto vector intrinsic definition.
7960 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
7961 Add new function_shape for crypto vector.
7962 (struct crypto_vi_def): Ditto.
7963 (struct crypto_vv_no_op_type_def): Ditto.
7964 (SHAPE): Add SHAPE declaration of crypto vector.
7965 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
7966 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
7967 Add new data type for crypto vector.
7968 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
7969 (vuint32mf2_t): Ditto.
7970 (vuint32m1_t): Ditto.
7971 (vuint32m2_t): Ditto.
7972 (vuint32m4_t): Ditto.
7973 (vuint32m8_t): Ditto.
7974 (vuint64m1_t): Ditto.
7975 (vuint64m2_t): Ditto.
7976 (vuint64m4_t): Ditto.
7977 (vuint64m8_t): Ditto.
7978 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
7979 Add new data struct for crypto vector.
7980 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
7981 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
7982 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
7984 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
7987 * varasm.cc (assemble_function_label_raw): Do not call
7988 asan_function_start () without the current function.
7990 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
7993 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
7994 extern and kernel_helper attributed function decls.
7996 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
7998 * btfout.cc (output_btf_strs): Changed.
8000 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
8002 * config/gcn/mkoffload.cc (main): Handle gfx1100
8003 when setting the default XNACK.
8005 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
8007 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
8008 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
8009 (ASM_SPEC): Handle gfx1100.
8010 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
8011 (enum gcn_isa): Add ISA_RDNA3.
8012 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
8013 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
8014 * config/gcn/gcn.cc (gcn_option_override,
8015 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
8016 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
8017 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
8018 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
8020 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
8021 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
8023 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
8024 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
8025 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
8026 (isa_has_combined_avgprs, main): Handle gfx1100.
8027 * config/gcn/t-omp-device (isa): Add gfx1100.
8029 2024-01-08 Richard Biener <rguenther@suse.de>
8031 * doc/invoke.texi (-mmovbe): Clarify.
8033 2024-01-08 Richard Biener <rguenther@suse.de>
8035 PR tree-optimization/113026
8036 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
8037 Avoid an epilog in more cases.
8038 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
8039 epilogues niter upper bounds and estimates.
8041 2024-01-08 Jakub Jelinek <jakub@redhat.com>
8043 PR tree-optimization/113228
8044 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
8046 2024-01-08 Jakub Jelinek <jakub@redhat.com>
8048 PR tree-optimization/113120
8049 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
8050 large _BitInt zero INTEGER_CST PHI argument.
8052 2024-01-08 Jakub Jelinek <jakub@redhat.com>
8054 PR tree-optimization/113119
8055 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
8056 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
8057 is before REALPART_EXPR.
8059 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
8062 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
8063 range when diagnosing attribute "io" and "io_low" are out of range.
8064 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
8065 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
8066 in contexts other than static storage.
8067 (avr_asm_output_aligned_decl_common): Move output of decls with
8068 attribute "address", "io", and "io_low" to...
8069 (avr_output_addr_attrib): ...this new function.
8070 (avr_asm_asm_output_aligned_bss): Remove output for decls with
8071 attribute "address", "io", and "io_low".
8072 (avr_encode_section_info): Rectify handling of decls with attribute
8073 "address", "io", and "io_low".
8075 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
8077 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
8078 (elf_flags): Remove XNACK from the default value.
8079 (main): Set a default XNACK according to the arch.
8081 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
8083 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
8084 (process_asm): Don't count avgprs.
8086 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
8088 * config/i386/i386.opt: Add supported sub-features.
8089 * doc/extend.texi: Add description for target attribute.
8091 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
8093 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
8095 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
8096 Uros Bizjak <ubizjak@gmail.com>
8099 * config/i386/i386-features.cc (compute_convert_gain): Include
8100 the overhead of explicit load and store (movd) instructions when
8101 converting non-store scalar operations with memory destinations.
8102 Various indentation whitespace fixes.
8104 2024-01-07 Tamar Christina <tamar.christina@arm.com>
8106 * config/arm/neon.md (cbranch<mode>4): New.
8108 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8110 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
8112 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
8114 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
8116 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8119 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
8122 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8124 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
8125 (variable_vectorized_p): Teach loop invariant.
8126 (has_unexpected_spills_p): Ditto.
8128 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8130 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
8131 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
8132 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
8134 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
8137 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
8138 (aarch64-vect-compare-costs): ...this.
8139 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
8141 (-param=aarch64-vect-compare-costs=): ...this new param.
8142 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
8143 Don't disable it when vectorizing for Advanced SIMD only.
8144 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
8145 whenever aarch64_vect_compare_costs is true.
8147 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
8149 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
8150 Modify the method of determining the memory offset of [x]vld/[x]vst.
8151 (lasx_mxst_<lasxfmt_f>): Likewise.
8152 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
8153 (loongarch_address_insns): Likewise.
8154 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
8155 (lsx_st_<lsxfmt_f>): Likewise.
8156 * config/loongarch/predicates.md (aq10b_operand): Likewise.
8157 (aq10h_operand): Likewise.
8158 (aq10w_operand): Likewise.
8159 (aq10d_operand): Likewise.
8161 2024-01-05 Alex Coplan <alex.coplan@arm.com>
8164 * config/aarch64/aarch64-ldp-fusion.cc
8165 (ldp_bb_info::try_fuse_pair): If the second access can throw,
8166 narrow the move range to exactly that insn.
8168 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
8170 * asan.cc (asan_function_start): Drop switch_to_section ().
8171 (asan_emit_stack_protection): Set .LASANPC alignment.
8172 * config/i386/i386.cc: Use assemble_function_label_raw ()
8173 instead of ASM_OUTPUT_LABEL ().
8174 * config/s390/s390.cc (s390_asm_output_function_label):
8176 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
8177 * final.cc (final_start_function_1): Drop
8178 asan_function_start ().
8179 * output.h (assemble_function_label_raw): New function.
8180 * varasm.cc (assemble_function_label_raw): Likewise.
8182 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
8184 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
8185 Use ASM_OUTPUT_FUNCTION_LABEL ().
8186 * config/alpha/alpha.cc (alpha_start_function): Likewise.
8187 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8188 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
8189 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8190 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8191 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
8192 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8193 * config/ia64/ia64.cc (ia64_start_function): Likewise.
8194 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
8196 * config/microblaze/microblaze.cc (microblaze_function_prologue):
8198 * config/mips/mips.cc (mips_start_unique_function): Return the
8200 (mips_start_function_definition): Use
8201 ASM_OUTPUT_FUNCTION_LABEL ().
8202 (mips_finish_stub): Pass the tree to
8203 mips_start_function_definition ().
8204 (mips16_build_function_stub): Likewise.
8205 (mips16_build_call_stub): Likewise.
8206 (mips_output_function_prologue): Likewise.
8207 * config/pa/pa.cc (pa_output_function_label): Use
8208 ASM_OUTPUT_FUNCTION_LABEL ().
8209 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
8210 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
8212 (rs6000_xcoff_declare_function_name): Likewise.
8214 2024-01-05 Jakub Jelinek <jakub@redhat.com>
8216 PR tree-optimization/113201
8217 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
8218 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
8220 2024-01-05 Jakub Jelinek <jakub@redhat.com>
8222 PR tree-optimization/90693
8223 * tree-ssa-math-opts.cc (match_single_bit_test): If
8224 tree_expr_nonzero_p (arg), remember it in the second argument to
8225 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
8226 arg ^ (arg - 1) > arg - 1.
8227 * internal-fn.cc (expand_POPCOUNT): If second argument to
8228 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
8229 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
8231 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
8233 * config/riscv/riscv-v.cc (expand_load_store):
8235 (expand_cond_len_op): Ditto.
8236 (expand_gather_scatter): Ditto.
8237 (expand_lanes_load_store): Ditto.
8238 (expand_fold_extract_last): Ditto.
8240 2024-01-05 Pan Li <pan2.li@intel.com>
8243 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
8245 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
8246 Add new function_base for crypto vector.
8247 (class bitmanip): Ditto.
8248 (class b_reverse):Ditto.
8249 (class vwsll): Ditto.
8250 (class clmul): Ditto.
8251 (class vg_nhab): Ditto.
8252 (class crypto_vv):Ditto.
8253 (class crypto_vi):Ditto.
8254 (class vaeskf2_vsm3c):Ditto.
8255 (class vsm3me): Ditto.
8256 (BASE): Add BASE declaration for crypto vector.
8257 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
8258 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
8259 Add crypto vector intrinsic definition.
8287 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
8288 Add new function_shape for crypto vector.
8289 (struct crypto_vi_def): Ditto.
8290 (struct crypto_vv_no_op_type_def): Ditto.
8291 (SHAPE): Add SHAPE declaration of crypto vector.
8292 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
8293 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
8294 Add new data type for crypto vector.
8295 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8296 (vuint32mf2_t): Ditto.
8297 (vuint32m1_t): Ditto.
8298 (vuint32m2_t): Ditto.
8299 (vuint32m4_t): Ditto.
8300 (vuint32m8_t): Ditto.
8301 (vuint64m1_t): Ditto.
8302 (vuint64m2_t): Ditto.
8303 (vuint64m4_t): Ditto.
8304 (vuint64m8_t): Ditto.
8305 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
8306 Add new data struct for crypto vector.
8307 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8308 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
8309 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
8311 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
8313 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
8314 Add new function_base for crypto vector.
8315 (class bitmanip): Ditto.
8316 (class b_reverse):Ditto.
8317 (class vwsll): Ditto.
8318 (class clmul): Ditto.
8319 (class vg_nhab): Ditto.
8320 (class crypto_vv):Ditto.
8321 (class crypto_vi):Ditto.
8322 (class vaeskf2_vsm3c):Ditto.
8323 (class vsm3me): Ditto.
8324 (BASE): Add BASE declaration for crypto vector.
8325 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
8326 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
8327 Add crypto vector intrinsic definition.
8355 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
8356 Add new function_shape for crypto vector.
8357 (struct crypto_vi_def): Ditto.
8358 (struct crypto_vv_no_op_type_def): Ditto.
8359 (SHAPE): Add SHAPE declaration of crypto vector.
8360 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
8361 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
8362 Add new data type for crypto vector.
8363 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8364 (vuint32mf2_t): Ditto.
8365 (vuint32m1_t): Ditto.
8366 (vuint32m2_t): Ditto.
8367 (vuint32m4_t): Ditto.
8368 (vuint32m8_t): Ditto.
8369 (vuint64m1_t): Ditto.
8370 (vuint64m2_t): Ditto.
8371 (vuint64m4_t): Ditto.
8372 (vuint64m8_t): Ditto.
8373 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
8374 Add new data struct for crypto vector.
8375 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8376 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
8377 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
8379 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8381 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8383 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
8385 PR tree-optimization/113186
8386 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
8387 Match `^` with the `==` for 1bit integral types.
8388 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
8391 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8393 * toplev.cc (general_init): Pass lang_mask to urlifier.
8395 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8397 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
8399 (diagnostic_context::make_option_url): Update for lang_mask param.
8400 * gcc-urlifier.cc: Include "opts.h" and "options.h".
8401 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
8402 (gcc_urlifier::m_lang_mask): New field.
8403 (doc_urls): Make static.
8404 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
8405 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
8406 Look for an option by name before trying a binary search in
8408 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
8409 (gcc_urlifier::get_url_suffix_for_option): New.
8410 (make_gcc_urlifier): Add lang_mask param.
8411 (selftest::gcc_urlifier_cc_tests): Update for above changes.
8412 Verify that a URL is found for "-fpack-struct".
8413 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
8414 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
8415 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
8416 to make_gcc_urlifier.
8417 * opts-diagnostic.h (get_option_url): Add lang_mask param.
8418 * opts.cc (get_option_html_page): Remove special-casing for
8420 (get_option_url_suffix): New.
8421 (get_option_url): Reimplement.
8422 (selftest::test_get_option_html_page): Rename to...
8423 (selftest::test_get_option_url_suffix): ...this and update for
8425 (selftest::opts_cc_tests): Update for renaming.
8426 * opts.h: Include "rich-location.h".
8427 (get_option_url_suffix): New decl.
8429 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8431 * Makefile.in (ALL_OPT_URL_FILES): New.
8432 (GCC_OBJS): Add options-urls.o.
8434 (OBJS-libcommon): Likewise.
8435 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
8436 inputs to opt-gather.awk.
8437 (options-urls.cc): New Makefile target.
8438 * opt-functions.awk (url_suffix): New function.
8439 (lang_url_suffix): New function.
8440 * options-urls-cc-gen.awk: New file.
8441 * opts.h (get_opt_url_suffix): New decl.
8443 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8445 * params.opt.urls: New file, autogenerated by
8446 regenerate-opt-urls.py.
8448 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8450 * common.opt.urls: New file, autogenerated by
8451 regenerate-opt-urls.py.
8452 * config/aarch64/aarch64.opt.urls: Likewise.
8453 * config/alpha/alpha.opt.urls: Likewise.
8454 * config/alpha/elf.opt.urls: Likewise.
8455 * config/arc/arc-tables.opt.urls: Likewise.
8456 * config/arc/arc.opt.urls: Likewise.
8457 * config/arm/arm-tables.opt.urls: Likewise.
8458 * config/arm/arm.opt.urls: Likewise.
8459 * config/arm/vxworks.opt.urls: Likewise.
8460 * config/avr/avr.opt.urls: Likewise.
8461 * config/bpf/bpf.opt.urls: Likewise.
8462 * config/c6x/c6x-tables.opt.urls: Likewise.
8463 * config/c6x/c6x.opt.urls: Likewise.
8464 * config/cris/cris.opt.urls: Likewise.
8465 * config/cris/elf.opt.urls: Likewise.
8466 * config/csky/csky.opt.urls: Likewise.
8467 * config/csky/csky_tables.opt.urls: Likewise.
8468 * config/darwin.opt.urls: Likewise.
8469 * config/dragonfly.opt.urls: Likewise.
8470 * config/epiphany/epiphany.opt.urls: Likewise.
8471 * config/fr30/fr30.opt.urls: Likewise.
8472 * config/freebsd.opt.urls: Likewise.
8473 * config/frv/frv.opt.urls: Likewise.
8474 * config/ft32/ft32.opt.urls: Likewise.
8475 * config/fused-madd.opt.urls: Likewise.
8476 * config/g.opt.urls: Likewise.
8477 * config/gcn/gcn.opt.urls: Likewise.
8478 * config/gnu-user.opt.urls: Likewise.
8479 * config/h8300/h8300.opt.urls: Likewise.
8480 * config/hpux11.opt.urls: Likewise.
8481 * config/i386/cygming.opt.urls: Likewise.
8482 * config/i386/cygwin.opt.urls: Likewise.
8483 * config/i386/djgpp.opt.urls: Likewise.
8484 * config/i386/i386.opt.urls: Likewise.
8485 * config/i386/mingw-w64.opt.urls: Likewise.
8486 * config/i386/mingw.opt.urls: Likewise.
8487 * config/i386/nto.opt.urls: Likewise.
8488 * config/ia64/ia64.opt.urls: Likewise.
8489 * config/ia64/ilp32.opt.urls: Likewise.
8490 * config/ia64/vms.opt.urls: Likewise.
8491 * config/iq2000/iq2000.opt.urls: Likewise.
8492 * config/linux-android.opt.urls: Likewise.
8493 * config/linux.opt.urls: Likewise.
8494 * config/lm32/lm32.opt.urls: Likewise.
8495 * config/loongarch/loongarch.opt.urls: Likewise.
8496 * config/lynx.opt.urls: Likewise.
8497 * config/m32c/m32c.opt.urls: Likewise.
8498 * config/m32r/m32r.opt.urls: Likewise.
8499 * config/m68k/ieee.opt.urls: Likewise.
8500 * config/m68k/m68k-tables.opt.urls: Likewise.
8501 * config/m68k/m68k.opt.urls: Likewise.
8502 * config/m68k/uclinux.opt.urls: Likewise.
8503 * config/mcore/mcore.opt.urls: Likewise.
8504 * config/microblaze/microblaze.opt.urls: Likewise.
8505 * config/mips/mips-tables.opt.urls: Likewise.
8506 * config/mips/mips.opt.urls: Likewise.
8507 * config/mips/sde.opt.urls: Likewise.
8508 * config/mmix/mmix.opt.urls: Likewise.
8509 * config/mn10300/mn10300.opt.urls: Likewise.
8510 * config/moxie/moxie.opt.urls: Likewise.
8511 * config/msp430/msp430.opt.urls: Likewise.
8512 * config/nds32/nds32-elf.opt.urls: Likewise.
8513 * config/nds32/nds32-linux.opt.urls: Likewise.
8514 * config/nds32/nds32.opt.urls: Likewise.
8515 * config/netbsd-elf.opt.urls: Likewise.
8516 * config/netbsd.opt.urls: Likewise.
8517 * config/nios2/elf.opt.urls: Likewise.
8518 * config/nios2/nios2.opt.urls: Likewise.
8519 * config/nvptx/nvptx-gen.opt.urls: Likewise.
8520 * config/nvptx/nvptx.opt.urls: Likewise.
8521 * config/openbsd.opt.urls: Likewise.
8522 * config/or1k/elf.opt.urls: Likewise.
8523 * config/or1k/or1k.opt.urls: Likewise.
8524 * config/pa/pa-hpux.opt.urls: Likewise.
8525 * config/pa/pa-hpux1010.opt.urls: Likewise.
8526 * config/pa/pa-hpux1111.opt.urls: Likewise.
8527 * config/pa/pa-hpux1131.opt.urls: Likewise.
8528 * config/pa/pa.opt.urls: Likewise.
8529 * config/pa/pa64-hpux.opt.urls: Likewise.
8530 * config/pdp11/pdp11.opt.urls: Likewise.
8531 * config/pru/pru.opt.urls: Likewise.
8532 * config/riscv/riscv.opt.urls: Likewise.
8533 * config/rl78/rl78.opt.urls: Likewise.
8534 * config/rpath.opt.urls: Likewise.
8535 * config/rs6000/476.opt.urls: Likewise.
8536 * config/rs6000/aix64.opt.urls: Likewise.
8537 * config/rs6000/darwin.opt.urls: Likewise.
8538 * config/rs6000/linux64.opt.urls: Likewise.
8539 * config/rs6000/rs6000-tables.opt.urls: Likewise.
8540 * config/rs6000/rs6000.opt.urls: Likewise.
8541 * config/rs6000/sysv4.opt.urls: Likewise.
8542 * config/rtems.opt.urls: Likewise.
8543 * config/rx/elf.opt.urls: Likewise.
8544 * config/rx/rx.opt.urls: Likewise.
8545 * config/s390/s390.opt.urls: Likewise.
8546 * config/s390/tpf.opt.urls: Likewise.
8547 * config/sh/sh.opt.urls: Likewise.
8548 * config/sh/superh.opt.urls: Likewise.
8549 * config/sol2.opt.urls: Likewise.
8550 * config/sparc/long-double-switch.opt.urls: Likewise.
8551 * config/sparc/sparc.opt.urls: Likewise.
8552 * config/stormy16/stormy16.opt.urls: Likewise.
8553 * config/v850/v850.opt.urls: Likewise.
8554 * config/vax/elf.opt.urls: Likewise.
8555 * config/vax/vax.opt.urls: Likewise.
8556 * config/visium/visium.opt.urls: Likewise.
8557 * config/vms/vms.opt.urls: Likewise.
8558 * config/vxworks-smp.opt.urls: Likewise.
8559 * config/vxworks.opt.urls: Likewise.
8560 * config/xtensa/elf.opt.urls: Likewise.
8561 * config/xtensa/uclinux.opt.urls: Likewise.
8562 * config/xtensa/xtensa.opt.urls: Likewise.
8563 * config/bfin/bfin.opt.urls: New file.
8565 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8567 * Makefile.in (OPT_URLS_HTML_DEPS): New.
8568 (regenerate-opt-urls): New target.
8569 (regenerate-opt-urls-unit-test): New target.
8570 * doc/options.texi (Option properties): Add UrlSuffix and
8571 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
8572 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
8573 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
8574 and Makefile.in's OPT_URLS_HTML_DEPS.
8575 (Anatomy of a Target Back End): Add
8576 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
8577 * regenerate-opt-urls.py: New file.
8579 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8581 * diagnostic-format-sarif.cc
8582 (sarif_builder::make_logical_location_object): Convert to...
8583 (make_sarif_logical_location_object): ...this.
8584 (sarif_builder::set_any_logical_locs_arr): Update for above
8586 (sarif_builder::make_thread_flow_location_object): Call
8587 maybe_add_sarif_properties on each diagnostic_event.
8588 * diagnostic-format-sarif.h (class logical_location): New forward
8590 (make_sarif_logical_location_object): New decl.
8591 * diagnostic-path.h (class sarif_object): New forward decl.
8592 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
8594 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
8595 Patrick Lin <patrick@andestech.com>
8596 Rufus Chen <rufus@andestech.com>
8597 Monk Chiang <monk.chiang@sifive.com>
8599 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
8600 with Nan-boxing value.
8601 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
8603 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
8604 Jeff Law <jlaw@ventanamicro.com>
8606 PR rtl-optimization/104914
8607 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
8608 a sign or zero extension is only required if the modified field
8609 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
8610 targets, don't refer to the temporarily incorrectly extended value
8611 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
8613 2024-01-04 Pan Li <pan2.li@intel.com>
8616 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8618 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8620 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8622 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8624 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
8626 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
8629 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8631 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
8632 (compute_nregs_for_mode): Refine LMUL.
8633 (max_number_of_live_regs): Ditto.
8634 (compute_estimated_lmul): Ditto.
8635 (has_unexpected_spills_p): Ditto.
8637 2024-01-04 Li Wei <liwei@loongson.cn>
8639 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
8640 Remove useless forward declaration.
8641 (loongarch_is_even_extraction): Remove useless forward declaration.
8642 (loongarch_try_expand_lsx_vshuf_const): Removed.
8643 (loongarch_expand_vec_perm_const_1): Merged.
8644 (loongarch_is_double_duplicate): Removed.
8645 (loongarch_is_center_extraction): Ditto.
8646 (loongarch_is_reversing_permutation): Ditto.
8647 (loongarch_is_di_misalign_extract): Ditto.
8648 (loongarch_is_si_misalign_extract): Ditto.
8649 (loongarch_is_lasx_lowpart_extract): Ditto.
8650 (loongarch_is_op_reverse_perm): Ditto.
8651 (loongarch_is_single_op_perm): Ditto.
8652 (loongarch_is_divisible_perm): Ditto.
8653 (loongarch_is_triple_stride_extract): Ditto.
8654 (loongarch_expand_vec_perm_const_2): Merged.
8655 (loongarch_expand_vec_perm_const): New.
8656 (loongarch_vectorize_vec_perm_const): Adjust.
8658 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
8660 * omp-general.cc: Fix comment typos and misplaced/confusing
8661 comments. Delete redundant include of omp-general.h.
8663 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8665 PR rtl-optimization/104914
8666 * config/mips/mips.md (insqisi_extended): New patterns.
8667 (inshisi_extended): Ditto.
8669 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8671 * config/mips/mips.cc (mips_insn_cost): New function.
8673 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8675 * config/mips/mips.md (perf_ratio): New attribute.
8677 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8681 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
8682 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
8683 blocks belong to infinite loop.
8684 (pre_vsetvl::emit_vsetvl): Remove fake edges.
8685 * config/riscv/t-riscv: Add a new include file.
8687 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8689 * config/riscv/vector.md: Fix indent.
8691 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
8693 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
8694 OMP_CLAUSE__SIMDUID_.
8695 * tree.cc (omp_clause_num_ops): Update position of entry for
8696 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
8697 (omp_clause_code_name): Likewise.
8699 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
8701 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
8702 printing of FUNC_MAP/IND_FUNC_MAP labels.
8704 2024-01-03 Jakub Jelinek <jakub@redhat.com>
8706 * gcc.cc (process_command): Update copyright notice dates.
8707 * gcov-dump.cc (print_version): Ditto.
8708 * gcov.cc (print_version): Ditto.
8709 * gcov-tool.cc (print_version): Ditto.
8710 * gengtype.cc (create_file): Ditto.
8711 * doc/cpp.texi: Bump @copying's copyright year.
8712 * doc/cppinternals.texi: Ditto.
8713 * doc/gcc.texi: Ditto.
8714 * doc/gccint.texi: Ditto.
8715 * doc/gcov.texi: Ditto.
8716 * doc/install.texi: Ditto.
8717 * doc/invoke.texi: Ditto.
8719 2024-01-03 Xi Ruoyao <xry111@xry111.site>
8721 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
8722 (fmin<mode>3): Likewise.
8723 (reduc_fmax_scal_<mode>3): New define_expand.
8724 (reduc_fmin_scal_<mode>3): Likewise.
8726 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8729 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
8730 (max_number_of_live_regs): Ditto.
8731 (has_unexpected_spills_p): Ditto.
8733 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
8734 Jin Ma <jinma@linux.alibaba.com>
8735 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8736 Christoph Müllner <christoph.muellner@vrull.eu>
8738 * config/riscv/vector.md:
8739 Use vector_length_operand for vsetvl patterns.
8741 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8743 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
8744 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
8746 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
8748 * config/aarch64/aarch64-tuning-flags.def
8749 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
8750 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
8751 * config/aarch64/aarch64.cc
8752 (aarch64_override_options_internal): Set
8753 param_fully_pipelined_fma according to tuning option.
8754 * config/aarch64/tuning_models/ampere1.h: Add
8755 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
8756 * config/aarch64/tuning_models/ampere1a.h: Likewise.
8757 * config/aarch64/tuning_models/ampere1b.h: Likewise.
8759 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
8761 * config/riscv/vector-crypto.md: Modify copyright year.
8763 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8765 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
8767 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
8769 * config.in: Regenerate.
8770 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
8771 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
8772 Added TLS Le Relax support.
8773 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
8774 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
8775 * configure: Regenerate.
8776 * configure.ac: Check if binutils supports TLS le relax.
8778 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
8780 * config/riscv/iterators.md: Add rotate insn name.
8781 * config/riscv/riscv.md: Add new insns name for crypto vector.
8782 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
8783 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
8784 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
8786 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8789 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
8790 pointer type liveness count.
8792 Copyright (C) 2024 Free Software Foundation, Inc.
8794 Copying and distribution of this file, with or without modification,
8795 are permitted in any medium without royalty provided the copyright
8796 notice and this notice are preserved.