1 2024-04-15 Georg-Johann Lay <avr@gjlay.de>
3 * config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
4 avr16du32, avr32du14, avr32du20, avr32du28, avr32du32.
5 * doc/avr-mmcu.texi: Rebuild.
7 2024-04-15 Robin Dapp <rdapp@ventanamicro.com>
10 * config/riscv/autovec.md: Add VLS.
12 2024-04-15 Richard Biener <rguenther@suse.de>
14 PR gcov-profile/114715
15 * gimplify.cc (gimplify_switch_expr): Set the location of the
18 2024-04-15 H.J. Lu <hjl.tools@gmail.com>
21 * config/i386/i386.md (isa): Add apx_ndd_64.
23 (*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
24 signed integer constant and enable jO only for apx_ndd_64.
25 (*add<dwi>3_doubleword_cc_overflow_1): Likewise.
26 (*and<dwi>3_doubleword): Likewise.
27 (*<code><dwi>3_doubleword): Likewise.
29 2024-04-15 Tamar Christina <tamar.christina@arm.com>
31 PR tree-optimization/114403
32 * tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
33 peeling for gaps and early break.
35 2024-04-15 Jakub Jelinek <jakub@redhat.com>
38 * attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
39 decls with NULL TREE_TYPE.
41 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com>
43 * config/aarch64/aarch64-option-extensions.def: Add RCPC to
45 * config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
48 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com>
50 * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
53 2024-04-12 Will Schmidt <will_schmidt@linux.ibm.com>
54 Peter Bergner <bergner@linux.ibm.com>
57 * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
59 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
61 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
62 (ISA_2_7_MASKS_SERVER): Likewise.
63 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
64 comment. Use OPTION_MASK_POWER8 and TARGET_POWER8.
65 * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
66 * config/rs6000/rs6000.md (define_attr "isa"): Add p8.
67 (define_attr "enabled"): Handle it.
68 (define_insn "prefetch"): Use TARGET_POWER8.
69 * config/rs6000/rs6000.opt (mpower8-internal): New.
71 2024-04-12 Jason Merrill <jason@redhat.com>
72 Patrick Palka <ppalka@redhat.com>
75 * doc/invoke.texi: Document -Wcast-user-defined.
77 2024-04-12 Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
79 * config/riscv/riscv.opt.urls: Regenerated.
81 2024-04-12 Andrew Pinski <quic_apinski@quicinc.com>
83 PR tree-optimization/114666
84 * match.pd (`!a?b:c`): Reject signed types for the condition.
87 2024-04-12 Richard Sandiford <richard.sandiford@arm.com>
89 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
90 all tiles to have the same suffix.
92 2024-04-12 Pan Li <pan2.li@intel.com>
94 * config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
95 as the return value instead of unsigned.
96 (riscv_vector_element_bitsize): Ditto.
97 (riscv_vector_required_min_vlen): Ditto.
98 (riscv_validate_vector_type): Take int type for local variable(s).
100 2024-04-12 Jakub Jelinek <jakub@redhat.com>
102 * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
103 returns_twice diagnostics translatable.
105 2024-04-12 Jakub Jelinek <jakub@redhat.com>
108 * gimple-iterator.cc (gsi_safe_insert_before): Only use
109 edge_before_returns_twice_call if bb_has_abnormal_pred.
110 (gsi_safe_insert_seq_before): Likewise.
111 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
112 push to m_returns_twice_calls if bb_has_abnormal_pred.
114 2024-04-12 Pan Li <pan2.li@intel.com>
117 * config/riscv/riscv.cc (riscv_function_value_regno_p): Add
118 TARGET_VECTOR predicate for V_RETURN regno.
120 2024-04-11 David Faust <david.faust@oracle.com>
122 * btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
123 fix potentially looking up wrong type for asm debug comment info.
125 (btf_asm_datasec_type_ref): ... This. New.
126 (btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
127 (btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
128 (btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
130 2024-04-11 David Faust <david.faust@oracle.com>
132 * btfout.cc (btf_asm_sou_member): Always emit non-representable
133 bitfield members as having 'void' type. Refactor slightly.
135 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
137 * config/aarch64/aarch64-option-extensions.def:
138 Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
139 and "ls64_accdata" FMV features.
141 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
143 * config/aarch64/aarch64-option-extensions.def:
144 Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
145 "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
146 "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
149 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
151 * config/aarch64/aarch64-option-extensions.def:
152 Fix "rmd"->"rdm", and add FMV to "rdma".
153 * config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
155 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
157 * config/aarch64/aarch64.cc (compare_feature_masks):
158 Use ARRAY_SIZE and >=0 for iteration bounds.
159 (aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
161 2024-04-11 Andrew Carlotti <andrew.carlotti@arm.com>
163 * config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
165 2024-04-11 Gaius Mulley <gaiusmod2@gmail.com>
167 * doc/standards.texi (Language Standards Supported by GCC):
168 Add Modula-2 language section.
170 2024-04-11 Jakub Jelinek <jakub@redhat.com>
173 * asan.cc (asan_emit_stack_protection): Assert offsets[0] is
174 zero if there is no stack protect guard, otherwise
175 -ASAN_RED_ZONE_SIZE. If alignb > ASAN_RED_ZONE_SIZE and there is
176 stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
177 the top of the stack into account when computing base_align_bias.
178 Recompute use_after_return_class from asan_frame_size + base_align_bias
179 and set to -1 if that would overflow to 11.
181 2024-04-11 Richard Biener <rguenther@suse.de>
183 PR tree-optimization/109596
184 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
185 debug stmts to nonexit->dest rather than exit->dest.
187 2024-04-11 Richard Biener <rguenther@suse.de>
190 * tree-inline.cc (copy_bb): Key on the remapped stmt
191 to identify gconds to have condition coverage data remapped.
193 2024-04-11 Pan Li <pan2.li@intel.com>
196 * config/riscv/riscv.cc (riscv_function_value_regno_p): New func
197 impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
198 (riscv_get_raw_result_mode): New func imple for hook
199 TARGET_GET_RAW_RESULT_MODE.
200 (TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
201 (TARGET_GET_RAW_RESULT_MODE): Ditto.
202 * config/riscv/riscv.h (V_RETURN): New macro for vector return.
203 (GP_RETURN_FIRST): New macro for the first GPR in return.
204 (GP_RETURN_LAST): New macro for the last GPR in return.
205 (FP_RETURN_FIRST): Diito but for FPR.
206 (FP_RETURN_LAST): Ditto.
207 (FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
208 TARGET_FUNCTION_VALUE_REGNO_P.
210 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com>
212 * btfout.cc (btf_asm_type): Do not skip emitting members of
215 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com>
218 * dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
219 call to ctf_add_slice. Use CTF_K_UNKNOWN type if fail.
221 2024-04-10 Marek Polacek <polacek@redhat.com>
224 * config/i386/i386-options.cc (ix86_option_override_internal): Use
225 opts_set rather than checking == CF_NONE.
227 2024-04-10 David Malcolm <dmalcolm@redhat.com>
229 * doc/analyzer.texi: Various tweaks.
231 2024-04-10 Richard Biener <rguenther@suse.de>
233 PR tree-optimization/114672
234 * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
235 allow mode-precision results.
237 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
239 * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
240 (aarch64_bitint_type_info): New function.
241 (aarch64_return_in_memory_1): Return large _BitInt's in memory.
242 (aarch64_function_arg_alignment): Adapt to correctly return the ABI
243 mandated alignment of _BitInt(N) where N > 128 as the alignment of
245 (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
247 2024-04-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
249 * config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
250 (aarch64_layout_arg): Don't emit diagnostics for types involving
253 2024-04-10 Jakub Jelinek <jakub@redhat.com>
256 * tree-core.h (enum annot_expr_kind): Add
257 annot_expr_maybe_infinite_kind enumerator.
258 * gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
259 * tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
260 (replace_loop_annotate): Likewise. Move loop->finite_p initialization
261 before the replace_loop_annotate_in_block calls.
262 * tree-pretty-print.cc (dump_generic_node): Handle
263 annot_expr_maybe_infinite_kind.
265 2024-04-10 Richard Biener <rguenther@suse.de>
268 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org>
270 PR rtl-optimization/101523
271 * combine.cc (try_combine): Don't do a 2-insn combination if
272 it does not in fact change I2.
274 2024-04-10 Peter Bergner <bergner@linux.ibm.com>
277 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
278 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
279 OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete redundant
280 OPTION_MASK_DIRECT_MOVE usage. Delete TARGET_DIRECT_MOVE dead code.
281 (rs6000_opt_masks): Neuter the "direct-move" option.
282 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
283 OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete useless
285 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
286 OPTION_MASK_DIRECT_MOVE.
287 (OTHER_VSX_VECTOR_MASKS): Likewise.
288 (POWERPC_MASKS): Likewise.
289 * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
291 2024-04-10 Hongyu Wang <hongyu.wang@intel.com>
293 * config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
295 (sha1msg2): Likewise.
296 (sha1nexte): Likewise.
297 (sha1rnds4): Likewise.
298 (sha256msg1): Likewise.
299 (sha256msg2): Likewise.
300 (sha256rnds2): Likewise.
301 (aes<aesklvariant>u8): Use "jm" instead of "m" for memory
303 (*aes<aeswideklvariant>u8): Likewise.
304 (*encodekey128u32): Use "jr" instead of "r" for register
306 (*encodekey256u32): Likewise.
308 2024-04-09 Juergen Christ <jchrist@linux.ibm.com>
310 * config/s390/s390.cc (expand_perm_as_replicate): Implement.
311 (vectorize_vec_perm_const_1): Call new function.
312 * config/s390/vx-builtins.md (vec_splat<mode>): Change to...
313 (@vec_splat<mode>): ...this.
315 2024-04-09 David Faust <david.faust@oracle.com>
318 * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
319 generating BTF for BPF CO-RE target.
321 2024-04-09 Richard Ball <richard.ball@arm.com>
323 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
324 Add functions_nulls parameter to pragma_handlers.
325 * config/aarch64/aarch64-protos.h: Likewise.
326 * config/aarch64/aarch64-sve-builtins.h
327 (enum handle_pragma_index): Add enum to count
328 number of pragmas to be handled.
329 * config/aarch64/aarch64-sve-builtins.cc
330 (GTY): Add global variable for initial indexes
331 and change overload_names to an array.
332 (function_builder::function_builder):
333 Add pragma handler information.
334 (function_builder::add_function):
335 Add code for overwriting previous
336 registered_functions entries.
337 (add_unique_function):
338 Use an array to register overload_names
339 for both pragma handler modes.
340 (add_overloaded_function): Likewise.
342 Add functions_nulls parameter to pragma_handlers.
344 Initialize pragma handler information.
345 (handle_arm_neon_sve_bridge_h): Likewise.
346 (handle_arm_sme_h): Likewise.
348 2024-04-09 Richard Biener <rguenther@suse.de>
351 * lto-wrapper.cc (merge_flto_options): Add force argument.
352 (merge_and_complain): Do not force here.
353 (run_gcc): But here to make the link-time -flto option override
354 any compile-time one.
356 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
358 * config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
360 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
362 PR gcov-profile/114601
363 * tree-profile.cc (condition_uid): Guard fn->cond_uids access.
365 2024-04-09 Jakub Jelinek <jakub@redhat.com>
368 * config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
369 (enabled): Remove aes isa check, add vaes_avx512vl.
370 * config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
371 jm instead of m for second alternative and emit {evex} prefix
372 for it if !TARGET_AES. Use noavx,avx,vaes_avx512vl isa attribute.
373 (vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
374 vaesenclast_<mode>): Add second alternative with x instead of v
377 2024-04-09 Gaius Mulley <gaiusmod2@gmail.com>
379 * doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
380 Remove -fdebug-trace-api.
381 Add -fm2-debug-trace=.
383 2024-04-09 Yang Yujie <yangyujie@loongson.cn>
386 * config/loongarch/loongarch.cc (loongarch_reg_init):
387 Reinitialize the loongarch_regno_mode_ok cache.
388 (loongarch_option_override): Same.
389 (loongarch_save_restore_target_globals): Restore target globals.
390 (loongarch_set_current_function): Restore the target contexts
392 (TARGET_SET_CURRENT_FUNCTION): Define.
393 * config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
394 switchable target context.
395 * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
396 Initialize all builtin functions at startup.
397 (loongarch_expand_builtin): Turn assertion of builtin availability
400 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
403 * tree-profile.cc (instrument_decisions): Generate constant
404 at the start of loop.
406 2024-04-09 Jørgen Kvalsvik <j@lambda.is>
409 * tree-inline.cc (copy_bb): Copy cond_uids into callee.
410 (prepend_lexical_block): Remove outdated comment.
411 (add_local_variables): Remove bad cond_uids copy.
413 2024-04-09 Jakub Jelinek <jakub@redhat.com>
415 * expr.cc (convert_mode_scalar): Fix duplicated words in comment;
416 into into -> it into.
417 * function.h (function::cond_uids): Fix duplicated words in comment;
419 * config/riscv/riscv-vector-costs.cc
420 (costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
421 model model -> model.
422 * config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
423 duplicated words in comment; for for -> for.
424 * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
425 duplicated words in comment; more more -> more.
426 * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
427 duplicated words in comment; be be -> be.
428 * tree-profile.cc (masking_vectors): Fix duplicated words in comment;
429 has has -> has, the the -> the.
430 * value-range.cc (irange::set_range_from_bitmask): Fix duplicated
431 words in comment; the the -> the.
432 * gcov.cc (add_condition_counts): Fix duplicated words in comment;
434 * vr-values.cc (get_scev_info): Fix duplicated words in comment;
436 * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
438 * mode-switching.cc (single_succ_confluence_n): Fix duplicated words
439 in comment; the the -> the.
440 * tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
441 comment; can can -> we can.
442 * gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
443 in comment; it it -> it is.
444 * tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
446 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
447 words in comment; if if -> if.
448 * doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
449 Change take to takes.
450 * doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
452 (-minline-memops-threshold): Likewise.
454 2024-04-09 Jakub Jelinek <jakub@redhat.com>
457 * gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
458 before returns_twice calls as is, don't push them into arg_stmts
459 vector/move to edges.
461 2024-04-09 Sergey Bugaev <bugaevc@gmail.com>
463 * config.gcc: Recognize aarch64*-*-gnu* targets.
464 * config/aarch64/aarch64-gnu.h: New file.
466 2024-04-09 Sergey Bugaev <bugaevc@gmail.com>
468 * config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
469 * config/gnu.h: ...to here.
471 2024-04-09 Richard Biener <rguenther@suse.de>
474 * gimple-range.cc (enable_ranger): Initialize the global
476 (disable_ranger): Release it.
478 2024-04-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
480 * config.gcc (aarch64-*-rtems*): Add target makefile fragment
482 * config/aarch64/t-aarch64-rtems: New file.
484 2024-04-09 H.J. Lu <hjl.tools@gmail.com>
487 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
488 __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
490 2024-04-09 Kewen Lin <linkw@linux.ibm.com>
491 Andrew Pinski <quic_apinski@quicinc.com>
494 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
495 wrong align passed to function build_aligned_type.
496 * tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
497 assertion to ensure align_unit should be positive.
498 * tree.cc (build_qualified_type): Update function comments.
500 2024-04-08 Uros Bizjak <ubizjak@gmail.com>
502 PR rtl-optimization/112560
503 * combine.cc (try_combine): Replace cc_use_loc with the entire
504 new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
505 Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
507 * config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
510 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com>
512 * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
514 * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
515 * doc/invoke.texi (Optimize Options): Document it.
517 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com>
519 * doc/sourcebuild.texi (Effective-Target Keywords): Document
520 'asm_goto_with_outputs'. Add comment to 'lra'.
522 2024-04-08 Martin Jambor <mjambor@suse.cz>
525 * ipa-icf-gimple.h (func_checker): New members
526 safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
527 and m_total_scalarization_limit.
528 (func_checker::func_checker): Initialize new member variables.
529 * ipa-icf-gimple.cc: Include tree-sra.h.
530 (func_checker::func_checker): Initialize new member variables.
531 (func_checker::safe_for_total_scalarization_p): New function.
532 (func_checker::compare_operand): Use the new function.
533 * tree-sra.h (sra_get_max_scalarization_size): Declare.
534 (sra_total_scalarization_would_copy_same_data_p): Likewise.
535 * tree-sra.cc (prepare_iteration_over_array_elts): New function.
536 (class sra_padding_collecting): New.
537 (sra_padding_collecting::record_padding): Likewise.
538 (scalarizable_type_p): Rename to totally_scalarizable_type_p. Add
539 ability to record padding when requested.
540 (totally_scalarize_subtree): Split out gathering information necessary
541 to iterate over array elements to prepare_iteration_over_array_elts.
542 Fix errornous early exit.
543 (analyze_all_variable_accesses): Adjust the call to
544 totally_scalarizable_type_p. Move determining of total scalariation
546 (sra_get_max_scalarization_size): ...here.
547 (check_ts_and_push_padding_to_vec): New function.
548 (sra_total_scalarization_would_copy_same_data_p): Likewise.
550 2024-04-08 Martin Jambor <mjambor@suse.cz>
553 * ipa-prop.h (class ipa_vr): Declare new overload of a member function
555 (ipa_jump_functions_equivalent_p): Declare.
556 * ipa-prop.cc (ipa_vr::equal_p): New function.
557 (ipa_agg_pass_through_jf_equivalent_p): Likewise.
558 (ipa_agg_jump_functions_equivalent_p): Likewise.
559 (ipa_jump_functions_equivalent_p): Likewise.
560 * ipa-cp.h (values_equal_for_ipcp_p): Declare.
561 * ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
562 * ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
563 ipa-cp.h and ipa-prop.h.
564 (func_checker::compare_gimple_call): Comapre jump functions.
566 2024-04-08 Richard Sandiford <richard.sandiford@arm.com>
569 * config/aarch64/aarch64-sve-builtins-base.cc
570 (svusdot_impl::expand): Fix botched attempt to swap the operands
573 2024-04-08 Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
575 * config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
576 * config.gcc: Add --with-tls configuration option to change the
578 * config/riscv/riscv.h: Add TARGET_TLSDESC determined from
579 -mtls-dialect and with_tls defaults.
580 * config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
582 * config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
583 * config/riscv/riscv.md: Add instruction sequence for TLSDESC.
584 * config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
585 sequence length data for TLSDESC.
586 (riscv_legitimize_tls_address): Add lowering of TLSDESC.
587 * doc/install.texi: Document --with-tls for RISC-V.
588 * doc/invoke.texi: Document -mtls-dialect for RISC-V.
590 2024-04-08 Jakub Jelinek <jakub@redhat.com>
593 * config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
594 if mem doesn't have MODE_INT mode, or pool constant doesn't
595 have MODE_INT mode, or if pool constant mode is smaller than
596 mem mode. If mem mode is different from pool constant mode,
597 try to simplify subreg. If that doesn't work, punt, if it
598 does, use the simplified constant instead of the constant pool
600 * config/s390/s390.md (movdi from const pool peephole): If
601 either low or high 32-bit part is zero, just emit move insn
602 instead of move + ior.
604 2024-04-08 Richard Biener <rguenther@suse.de>
606 PR tree-optimization/114624
607 * tree-scalar-evolution.cc (final_value_replacement_loop):
608 Get at the PHI arg location before releasing the PHI node.
610 2024-04-08 Pan Li <pan2.li@intel.com>
612 * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
613 required_ext arg when invoke add function.
614 (build_th_loadstore): Ditto.
615 (struct vcreate_def): Ditto.
616 (struct read_vl_def): Ditto.
617 (struct vlenb_def): Ditto.
618 * config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
619 Introduce new arg required_ext to fill in the register func.
620 (function_builder::add_unique_function): Ditto.
621 (function_builder::add_overloaded_function): Ditto.
622 (expand_builtin): Leverage required_extensions_specified to
623 check if the required extension is provided.
624 * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
625 func impl to convert the required_ext enum to the extension name.
626 (required_extensions_specified): New func impl to predicate if
627 the required extension is well feeded.
629 2024-04-08 Iain Sandoe <iain@sandoe.co.uk>
631 * config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
634 2024-04-08 demin.han <demin.han@starfivetech.com>
636 * config/riscv/riscv-vector-costs.cc: Use length()
638 2024-04-08 Pan Li <pan2.li@intel.com>
640 * config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
641 struct to hold all intrinisc related flags.
642 (riscv_pragma_intrinsic_flags_pollute): New func to pollute
643 the intrinsic flags and backup original flags.
644 (riscv_pragma_intrinsic_flags_restore): New func to restore
645 the flags from the backup intrinsic flags.
646 (riscv_pragma_intrinsic): Pollute the flags and register all
647 possible builtin types and functions, then restore and reinit.
648 * config/riscv/riscv-protos.h (reinit_builtins): New func
649 decl to reinit after flags pollution.
650 (riscv_option_override): New extern func decl.
651 * config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
652 New func to register builtin types if null.
653 (DEF_RVV_TYPE): Ditto.
654 (DEF_RVV_TUPLE_TYPE): Ditto.
655 (reinit_builtins): New func impl to reinit after flags pollution.
656 (expand_builtin): Return
657 target rtx after error_at.
658 * config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
659 func to tell one tree type is integer or not.
660 (riscv_vector_float_type_p): New predicate func to tell one tree
661 type is float or not.
662 (riscv_vector_element_bitsize): New func to get the element bitsize
663 of a vector tree type.
664 (riscv_vector_required_min_vlen): New func to get the required min vlen
665 of a vector tree type.
666 (riscv_validate_vector_type): New func to validate the tree type
668 (riscv_return_value_is_vector_type_p): Leverage the func
669 riscv_validate_vector_type to do the tree type validation.
670 (riscv_arguments_is_vector_type_p): Ditto.
671 (riscv_override_options_internal): Ditto.
673 2024-04-08 Lulu Cheng <chenglulu@loongson.cn>
676 * config/loongarch/loongarch-def.cc (la664_align): Newly defined
677 function that sets alignment rules under the LA664 microarchitecture.
678 * config/loongarch/loongarch-opts.cc
679 (loongarch_target_option_override): If not optimizing for size, set
680 the default alignment to what the target wants.
681 * config/loongarch/loongarch-tune.h (struct loongarch_align): Add
682 new member variables jump and loop.
684 2024-04-06 H.J. Lu <hjl.tools@gmail.com>
687 * config/i386/i386.md (x86_64_shld): Use explicit shift count in
689 (x86_64_shld_ndd): Likewise.
690 (x86_shld): Likewise.
691 (x86_shld_ndd): Likewise.
692 (x86_64_shrd): Likewise.
693 (x86_64_shrd_ndd): Likewise.
694 (x86_shrd): Likewise.
695 (x86_shrd_ndd): Likewise.
697 2024-04-06 Jørgen Kvalsvik <j@lambda.is>
700 * tree-inline.cc (add_local_variables): Copy cond_uids mappings.
702 2024-04-05 David Malcolm <dmalcolm@redhat.com>
705 * diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
706 color capability names.
707 * doc/invoke.texi: Document them in description of GCC_COLORS.
708 * text-art/style.cc: Include "diagnostic-color.h".
709 (text_art::get_style_from_color_cap_name): New.
710 * text-art/types.h (get_style_from_color_cap_name): New decl.
712 2024-04-05 Alex Coplan <alex.coplan@arm.com>
714 * config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
715 Fix double space after const qualifier on valid ().
717 2024-04-05 Martin Jambor <mjambor@suse.cz>
720 * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
721 Force values obtined through pass-through maps to the expected
724 2024-04-05 Mark Wielaard <mark@klomp.org>
726 * common.opt.urls: Regenerate.
728 2024-04-05 Richard Sandiford <richard.sandiford@arm.com>
731 * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
733 (@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
735 (*cnot<mode>): Require operand 1 to be a ptrue.
736 * config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
737 Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
738 with a ptrue. Represent other _x operations as fully-defined _m
741 2024-04-05 Jakub Jelinek <jakub@redhat.com>
743 PR tree-optimization/114566
744 * tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
747 2024-04-05 Richard Biener <rguenther@suse.de>
750 PR gcov-profile/114115
751 * symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
752 (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
754 (symtab_node::check_ifunc_callee_symtab_nodes): Properly
755 allocate ifunc_ref_map here.
757 2024-04-04 Martin Jambor <mjambor@suse.cz>
760 * ipa-param-manipulation.cc
761 (ipa_param_body_adjustments::common_initialization): Avoid creating
762 duplicate replacement entries.
764 2024-04-04 Vladimir N. Makarov <vmakarov@redhat.com>
766 PR rtl-optimization/114415
767 * sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
768 (sched_analyze_1): Treat stack pointer modification as memory read.
769 (sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
770 * sched-int.h (deps_desc): Add comment to pending_read_mems.
772 2024-04-04 Tobias Burnus <tburnus@baylibre.com>
774 * config/nvptx/mkoffload.cc (main): Call
775 gcc_init_libintl and diagnostic_color_init.
777 2024-04-04 H.J. Lu <hjl.tools@gmail.com>
780 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
781 __APX_F__ when APX is enabled.
783 2024-04-04 Jørgen Kvalsvik <j@lambda.is>
785 * builtins.cc (expand_builtin_fork_or_exec): Check
786 condition_coverage_flag.
787 * collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
788 * common.opt: Add new options -fcondition-coverage and
789 -Wcoverage-too-many-conditions.
790 * doc/gcov.texi: Add --conditions documentation.
791 * doc/invoke.texi: Add -fcondition-coverage documentation.
792 * function.cc (free_after_compilation): Free cond_uids.
793 * function.h (struct function): Add cond_uids.
794 * gcc.cc: Link gcov on -fcondition-coverage.
795 * gcov-counter.def (GCOV_COUNTER_CONDS): New.
796 * gcov-dump.cc (tag_conditions): New.
797 * gcov-io.h (GCOV_TAG_CONDS): New.
798 (GCOV_TAG_CONDS_LENGTH): New.
799 (GCOV_TAG_CONDS_NUM): New.
800 * gcov.cc (class condition_info): New.
801 (condition_info::condition_info): New.
802 (condition_info::popcount): New.
803 (struct coverage_info): New.
804 (add_condition_counts): New.
805 (output_conditions): New.
806 (print_usage): Add -g, --conditions.
807 (process_args): Likewise.
808 (output_intermediate_json_line): Output conditions.
809 (read_graph_file): Read condition counters.
810 (read_count_file): Likewise.
811 (file_summary): Print conditions.
812 (accumulate_line_info): Accumulate conditions.
813 (output_line_details): Print conditions.
814 * gimplify.cc (next_cond_uid): New.
815 (reset_cond_uid): New.
816 (shortcut_cond_r): Set condition discriminator.
817 (tag_shortcut_cond): New.
818 (gimple_associate_condition_with_expr): New.
819 (shortcut_cond_expr): Set condition discriminator.
820 (gimplify_cond_expr): Likewise.
821 (gimplify_function_tree): Call reset_cond_uid.
822 * ipa-inline.cc (can_early_inline_edge_p): Check
823 condition_coverage_flag.
824 * ipa-split.cc (pass_split_functions::gate): Likewise.
825 * passes.cc (finish_optimization_passes): Likewise.
826 * profile.cc (struct condcov): New declaration.
827 (cov_length): Likewise.
828 (cov_blocks): Likewise.
829 (cov_masks): Likewise.
830 (cov_maps): Likewise.
831 (cov_free): Likewise.
832 (instrument_decisions): New.
833 (read_thunk_profile): Control output to file.
834 (branch_prob): Call find_conditions, instrument_decisions.
835 (init_branch_prob): Add total_num_conds.
836 (end_branch_prob): Likewise.
837 * tree-core.h (struct tree_exp): Add condition_uid.
838 * tree-profile.cc (struct conds_ctx): New.
839 (CONDITIONS_MAX_TERMS): New.
840 (EDGE_CONDITION): New.
841 (topological_cmp): New.
845 (contract_edge_up): New.
846 (struct outcomes): New.
847 (conditional_succs): New.
848 (condition_index): New.
849 (condition_uid): New.
850 (masking_vectors): New.
852 (emit_bitwise_op): New.
853 (make_top_index_visit): New.
854 (make_top_index): New.
855 (paths_between): New.
856 (struct condcov): New.
862 (find_conditions): New.
863 (struct counters): New.
864 (find_counters): New.
865 (resolve_counter): New.
866 (resolve_counters): New.
867 (instrument_decisions): New.
868 (tree_profiling): Check condition_coverage_flag.
869 (pass_ipa_tree_profile::gate): Likewise.
870 * tree.h (SET_EXPR_UID): New.
871 (EXPR_COND_UID): New.
873 2024-04-04 Richard Sandiford <richard.sandiford@arm.com>
876 * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
878 * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
880 * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
881 (svset_neonq_impl::expand): Optimise expansions whose first argument
884 2024-04-04 Richard Biener <rguenther@suse.de>
886 PR tree-optimization/114485
887 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
888 vect_step_op_neg isn't OK for partial vectors but only
891 2024-04-04 Jakub Jelinek <jakub@redhat.com>
894 * fold-const.cc (native_encode_initializer): Look through
895 NON_LVALUE_EXPR if val is INTEGER_CST.
897 2024-04-04 Jakub Jelinek <jakub@redhat.com>
899 PR tree-optimization/114555
900 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
901 m_bitfld_load and save_cast_conditional add any needed PHIs
902 and adjust t4 accordingly.
904 2024-04-04 Richard Biener <rguenther@suse.de>
906 PR tree-optimization/114551
907 * tree-ssa-loop-split.cc (split_loop): If the guard is
908 only conditionally evaluated rewrite computations with
909 possibly undefined overflow to unsigned arithmetic.
911 2024-04-04 Eugene Rozenfeld <erozen@microsoft.com>
913 PR gcov-profile/113765
914 * auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
916 2024-04-03 Mark Wielaard <mark@klomp.org>
918 * config/i386/i386.opt.urls: Regenerate.
920 2024-04-03 H.J. Lu <hjl.tools@gmail.com>
922 PR tree-optimization/114115
923 * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
924 (cgraph_node): Add called_by_ifunc_resolver.
925 * cgraphunit.cc (symbol_table::compile): Call
926 symtab_node::check_ifunc_callee_symtab_nodes.
927 * symtab.cc (check_ifunc_resolver): New.
928 (ifunc_ref_map): Likewise.
929 (is_caller_ifunc_resolver): Likewise.
930 (symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
931 * tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
932 call profiling for IFUNC resolvers and their callees.
934 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
936 * lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
937 suffix by the target name.
939 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
941 * doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
942 and update wording for LLVM 18 release.
944 2024-04-03 Tobias Burnus <tburnus@baylibre.com>
947 * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
949 (main): ... here; call it to handle --with-arch config option
950 and -march= commandline.
952 2024-04-03 Jakub Jelinek <jakub@redhat.com>
955 * expr.cc (emit_push_insn): Only use store_constructor for
956 immediate_const_ctor_p if int_expr_size matches size.
958 2024-04-03 Richard Biener <rguenther@suse.de>
960 PR tree-optimization/114557
961 PR tree-optimization/114480
962 * tree-phinodes.cc (release_phi_node): Return PHIs from
963 allocation buckets not covered by free_phinodes to GC.
964 (remove_phi_node): Release the PHI LHS before freeing the
966 * tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
969 2024-04-03 Jiahao Xu <xujiahao@loongson.cn>
971 * config/loongarch/lasx.md: Remove unused code.
972 * config/loongarch/loongarch-protos.h
973 (loongarch_split_lsx_copy_d): Remove.
974 (loongarch_split_lsx_insert_d): Ditto.
975 (loongarch_split_lsx_fill_d): Ditto.
976 * config/loongarch/loongarch.cc
977 (loongarch_split_lsx_copy_d): Ditto.
978 (loongarch_split_lsx_insert_d): Ditto.
979 (loongarch_split_lsx_fill_d): Ditto.
980 * config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
981 (lsx_vpickve2gr_<lsxfmt_f>): Ditto.
982 (abs<mode>2): Remove expander.
983 (vabs<mode>2): Rename 2 abs<mode>2.
985 2024-04-02 Christophe Lyon <christophe.lyon@linaro.org>
987 * config/aarch64/aarch64-option-extensions.def: Fix comment.
989 2024-04-02 Tom Tromey <tromey@adacore.com>
991 * dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
992 print newline when not recursing.
994 2024-04-02 Iain Sandoe <iain@sandoe.co.uk>
996 * config/darwin.cc (darwin_override_options): Update the
997 clang major version value in the dsymutil check.
999 2024-04-02 Iain Sandoe <iain@sandoe.co.uk>
1001 * config/darwin.cc (darwin_override_options): Reduce the debug
1002 level to 2 if dsymutil cannot handle .macinfo sections.
1004 2024-04-02 Yang Yujie <yangyujie@loongson.cn>
1006 * config/loongarch/t-loongarch: Add loongarch-def-arrays.h
1009 2024-04-02 mengqinggang <mengqinggang@loongson.cn>
1010 Lulu Cheng <chenglulu@loongson.cn>
1011 Xi Ruoyao <xry111@xry111.site>
1013 * config.gcc: Add --with-tls option to change TLS flavor.
1014 * config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
1015 configure TLS flavor.
1016 * config/loongarch/loongarch-def.h (struct loongarch_target): Add
1018 * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
1020 * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
1022 (loongarch_config_target): Ditto.
1023 (loongarch_update_gcc_opt_status): Ditto.
1024 * config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
1025 (TARGET_TLS_DESC): New define.
1026 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
1027 DESC instructions sequence length.
1028 (loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
1029 (loongarch_option_override_internal): Add la_opt_tls_dialect.
1030 (loongarch_option_restore): Add la_target.tls_dialect.
1031 * config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
1032 code model for TLS DESC.
1033 (got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
1034 * config/loongarch/loongarch.opt: Regenerate.
1035 * config/loongarch/loongarch.opt.urls: Ditto.
1036 * doc/invoke.texi: Add a description of the compilation option
1037 '-mtls-dialect={trad,desc}'.
1039 2024-04-02 Lulu Cheng <chenglulu@loongson.cn>
1041 * config/loongarch/loongarch.opt.urls: Regenerate.
1043 2024-04-01 Yang Yujie <yangyujie@loongson.cn>
1045 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
1046 aliases to -mrecip={all,none}, respectively.
1047 * config/loongarch/loongarch.opt: Regenerate.
1048 * config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
1049 (ABI_FPU64_P): ...this.
1050 (ABI_FPU_32): Rename to...
1051 (ABI_FPU32_P): ...this.
1052 (ABI_FPU_NONE): Rename to...
1053 (ABI_NOFPU_P): ...this.
1054 (ABI_LP64_P): Define.
1055 * config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
1056 Merged into loongarch_global_init.
1057 (loongarch_cpu_option_override): Renamed to
1058 loongarch_target_option_override.
1059 (loongarch_option_override_internal): Move the work after
1060 loongarch_config_target into loongarch_target_option_override.
1061 (loongarch_global_init): Define.
1062 (INIT_TARGET_FLAG): Move to loongarch-opts.cc.
1063 (loongarch_option_override): Call loongarch_global_init
1065 * config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
1066 Split the parsing of -mrecip=<string> from
1067 loongarch_option_override_internal.
1068 (loongarch_generate_mrecip_scheme): Define. Split from
1069 loongarch_option_override_internal.
1070 (loongarch_target_option_override): Define. Renamed from
1071 loongarch_cpu_option_override.
1072 (loongarch_init_misc_options): Define. Split from
1073 loongarch_option_override_internal.
1074 (INIT_TARGET_FLAG): Move from loongarch.cc.
1075 * config/loongarch/loongarch-opts.h (loongarch_target_option_override):
1077 (loongarch_parse_mrecip_scheme): New prototype.
1078 (loongarch_init_misc_options): New prototype.
1079 (TARGET_ABI_LP64): Simplify with ABI_LP64_P.
1080 * config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
1081 Do not reference specific CPU architecture (LA664).
1082 (TARGET_RECIP_SQRT): Same.
1083 (TARGET_RECIP_RSQRT): Same.
1084 (TARGET_RECIP_VEC_DIV): Same.
1085 (TARGET_RECIP_VEC_SQRT): Same.
1086 (TARGET_RECIP_VEC_RSQRT): Same.
1088 2024-04-01 Lulu Cheng <chenglulu@loongson.cn>
1090 * doc/invoke.texi: Add descriptions for the compilation
1093 2024-03-31 Jeff Law <jlaw@ventanamicro.com>
1095 * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
1098 2024-03-31 Pan Li <pan2.li@intel.com>
1100 * config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
1101 the term built-in over builtin.
1103 2024-03-31 Pan Li <pan2.li@intel.com>
1105 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1106 Remove unused var decl.
1108 2024-03-30 Xi Ruoyao <xry111@xry111.site>
1111 * config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
1112 mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
1113 functions if arg.type is NULL.
1115 2024-03-29 Andrew Pinski <quic_apinski@quicinc.com>
1117 * lto-compress.cc (lto_end_uncompression): Use
1118 fatal_error instead of internal_error when ZSTD
1121 2024-03-28 Jeff Law <jlaw@ventanamicro.com>
1123 * config/h8300/extensions.md (zero_extendqihi*): Add output
1124 template for reg->reg case where the regs don't match.
1126 2024-03-28 Gaius Mulley <(no_default)>
1129 * doc/gm2.texi: Mention gm2 treats a # in the first column
1130 as a preprocessor directive unless -fno-cpp is supplied.
1132 2024-03-28 Jakub Jelinek <jakub@redhat.com>
1134 * predict.cc (estimate_bb_frequencies): Fix comment typo,
1135 scalling -> scaling.
1137 2024-03-28 Jakub Jelinek <jakub@redhat.com>
1139 PR tree-optimization/112303
1140 * profile-count.h (profile_count::operator+): Perform
1141 addition in uint64_t variable and set m_val to MIN of that
1143 (profile_count::operator+=): Likewise.
1144 (profile_count::operator-=): Formatting fix.
1145 (profile_count::apply_probability): Use safe_scale_64bit
1146 even in the int overload.
1148 2024-03-28 Jan Hubicka <jh@suse.cz>
1150 PR middle-end/113907
1151 * ipa-icf.cc (sem_function::init): Hash PHI operands
1152 (sem_function::compare_phi_node): Add argument about preserving order
1154 2024-03-28 Richard Biener <rguenther@suse.de>
1156 PR middle-end/114480
1157 * cfganal.cc (compute_idf): Use simpler bitmap iteration,
1158 touch work_set only when phi_insertion_points changed.
1160 2024-03-28 Palmer Dabbelt <palmer@rivosinc.com>
1162 * config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
1164 2024-03-27 Segher Boessenkool <segher@kernel.crashing.org>
1166 PR rtl-optimization/101523
1167 * combine.cc (try_combine): Don't do a 2-insn combination if
1168 it does not in fact change I2.
1170 2024-03-27 Jakub Jelinek <jakub@redhat.com>
1172 * doc/invoke.texi (Spec Files): Use @var{S} instead of S,
1173 @var{X} instead of X etc. for other placeholders.
1175 2024-03-27 Richard Biener <rguenther@suse.de>
1177 PR tree-optimization/114057
1178 * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
1179 BB reduction remain defs as scalar uses.
1181 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com>
1183 * config/aarch64/aarch64-option-extensions.def (rcpc3):
1184 Fix FEATURE_STRING field to "lrcpc3".
1186 2024-03-27 Victor Do Nascimento <victor.donascimento@arm.com>
1188 * config/aarch64/aarch64-option-extensions.def: Add LSE128
1189 AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
1191 * doc/invoke.texi (AArch64 Options): Document +lse128.
1193 2024-03-26 Richard Sandiford <richard.sandiford@arm.com>
1195 * config/aarch64/aarch64-feature-deps.h: Use constexpr for
1196 out-of-line statics.
1198 2024-03-26 Cupertino Miranda <cupertino.miranda@oracle.com>
1201 * btfout.cc (get_name_for_datasec_entry): Add function.
1202 (btf_asm_datasec_entry): Print label when possible.
1204 2024-03-26 Richard Ball <richard.ball@arm.com>
1207 * config/aarch64/aarch64-cores.def (AARCH64_CORE):
1208 Change SCHEDULER_IDENT from cortexa55 to cortexa53
1209 for Cortex-A510 and Cortex-A520.
1211 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1213 PR middle-end/111151
1214 * fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
1215 MULT_EXPR altogether, or for MAX_EXPR if c is -1.
1217 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1220 * tsan.cc (instrument_expr): Punt on non-generic address space
1223 2024-03-26 Richard Biener <rguenther@suse.de>
1225 PR tree-optimization/114471
1226 * tree-vect-stmts.cc (vectorizable_operation): Verify operand
1227 types are compatible with the result type.
1229 2024-03-26 Richard Biener <rguenther@suse.de>
1231 PR tree-optimization/114464
1232 * tree-vect-loop.cc (vectorizable_recurr): Verify the latch
1233 vector type is compatible with what we chose for the recurrence.
1235 2024-03-26 Jakub Jelinek <jakub@redhat.com>
1237 * cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
1238 Fix comment typo - multple -> multiple.
1239 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
1242 2024-03-26 YunQiang Su <syq@gcc.gnu.org>
1244 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
1245 __mips_strict_alignment if STRICT_ALIGNMENT.
1247 2024-03-25 Richard Biener <rguenther@suse.de>
1249 * config.gcc (amdgcn): Add gfx1036 entries.
1250 * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
1251 (gcn_local_sym_hash): Likewise.
1252 * config/gcn/gcn-opts.h (enum processor_type): Likewise.
1253 (TARGET_GFX1036): New macro.
1254 * config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
1255 (gcn_omp_device_kind_arch_isa): Likewise.
1256 (output_file_start): Likewise.
1257 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
1258 (TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
1259 * config/gcn/gcn.opt: Add gfx1036.
1260 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
1261 (main): Handle gfx1036.
1262 * config/gcn/t-omp-device: Add gfx1036 isa.
1263 * doc/install.texi (amdgcn): Add gfx1036.
1264 * doc/invoke.texi (-march): Likewise.
1266 2024-03-25 Pan Li <pan2.li@intel.com>
1268 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
1269 when V is disabled and init the RVV types and intrinic APIs.
1270 * config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
1271 error if V ext is disabled.
1272 * config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
1274 (riscv_arguments_is_vector_type_p): Ditto.
1275 (riscv_vector_cc_function_p): Ditto.
1276 * config/riscv/riscv_vector.h: Remove error if V is disable.
1278 2024-03-23 John David Anglin <danglin@gcc.gnu.org>
1280 * config/pa/pa.cc (pa_output_global_address): Handle
1281 UNSPEC_DLTIND14R addresses.
1282 * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
1283 UNSPEC_DLTIND14R address.
1285 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1287 PR tree-optimization/114433
1288 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
1289 m_bitfld_load check save_first rather than m_first.
1291 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1293 PR tree-optimization/114425
1294 * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
1295 _Complex large/huge _BitInt types like the large/huge _BitInt types.
1297 2024-03-23 Jakub Jelinek <jakub@redhat.com>
1299 PR middle-end/111683
1300 * tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
1301 and comp_step is RS_NONZERO, return false if any reference in the
1302 component doesn't have DR_STEP a multiple of access size.
1304 2024-03-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1306 * config/xtensa/xtensa.md: Add new split pattern described above.
1308 2024-03-22 Georg-Johann Lay <avr@gjlay.de>
1310 * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
1311 for deprecated SIGNAL and INTERRUPT usage without respective header.
1313 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1315 * config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
1316 (atomic_load<mode>): Adjust RDNA cache settings.
1317 (atomic_store<mode>): Likewise.
1318 (atomic_exchange<mode>): Likewise.
1320 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1322 * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
1325 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1327 * config.gcc (amdgcn): Add gfx1103 entries.
1328 * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
1329 (gcn_local_sym_hash): Likewise.
1330 * config/gcn/gcn-opts.h (enum processor_type): Likewise.
1331 (TARGET_GFX1103): New macro.
1332 * config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
1333 (gcn_omp_device_kind_arch_isa): Likewise.
1334 (output_file_start): Likewise.
1335 (gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
1336 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
1337 * config/gcn/gcn.opt: Add gfx1103.
1338 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
1339 (main): Handle gfx1103.
1340 * config/gcn/t-omp-device: Add gfx1103 isa.
1341 * doc/install.texi (amdgcn): Add gfx1103.
1342 * doc/invoke.texi (-march): Likewise.
1344 2024-03-22 Andrew Stubbs <ams@baylibre.com>
1346 * dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
1348 (do_compare_and_jump): Remove now-redundant similar code.
1349 * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
1351 (add_mask_and_len_args): Likewise.
1353 2024-03-22 Pan Li <pan2.li@intel.com>
1355 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
1356 macro __riscv_v_fixed_vlen when zvl.
1357 * config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
1358 New static func to take care of the RVV types decorated by
1361 2024-03-22 Andrew Pinski <quic_apinski@quicinc.com>
1364 * builtins.cc (fold_builtin_1): Use error_operand_p
1365 instead of checking against ERROR_MARK.
1366 (fold_builtin_2): Likewise.
1367 (fold_builtin_3): Likewise.
1369 2024-03-22 Jakub Jelinek <jakub@redhat.com>
1372 * ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
1373 SANITIZE_NULL instrumentation for non-generic address spaces
1374 for which targetm.addr_space.zero_address_valid (as) is true.
1376 2024-03-22 Jakub Jelinek <jakub@redhat.com>
1378 PR tree-optimization/114405
1379 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
1380 Set rprec to limb_prec rather than 0 if tprec is divisible by
1381 limb_prec. In the last bf_cur handling, set rprec to (tprec + bo_bit)
1382 % limb_prec rather than tprec % limb_prec and use just rprec instead
1383 of rprec + bo_bit. For build_bit_field_ref offset, divide
1384 (tprec + bo_bit) by limb_prec rather than just tprec.
1386 2024-03-22 Christoph Müllner <christoph.muellner@vrull.eu>
1389 * config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
1390 Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
1392 2024-03-22 Jeff Law <jlaw@ventanamicro.com>
1394 * config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
1395 tie for scalable and final stack adjustment if needed.
1396 Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
1398 2024-03-22 Pan Li <pan2.li@intel.com>
1401 * common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
1402 New struct for func decl and target name.
1403 (struct riscv_func_target_hasher): New hasher for hash table mapping
1404 from the fn_decl to fn_target_name.
1405 (riscv_func_decl_hash): New func to compute the hash for fn_decl.
1406 (riscv_func_target_hasher::hash): New func to impl hash interface.
1407 (riscv_func_target_hasher::equal): New func to impl equal interface.
1408 (riscv_cmdline_subset_list): New static var for cmdline subset list.
1409 (riscv_func_target_table_lazy_init): New func to lazy init the func
1411 (riscv_func_target_get): New func to get target name from hash table.
1412 (riscv_func_target_put): New func to put target name into hash table.
1413 (riscv_func_target_remove_and_destory): New func to remove target
1414 info from the hash table and destory it.
1415 (riscv_parse_arch_string): Set the static var cmdline_subset_list.
1416 * config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
1417 var for cmdline subset list.
1418 (riscv_func_target_get): New func decl.
1419 (riscv_func_target_put): Ditto.
1420 (riscv_func_target_remove_and_destory): Ditto.
1421 * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
1422 Take cmdline_subset_list instead of current_subset_list when clone.
1423 (riscv_process_target_attr): Record the func target info to hash table.
1424 (riscv_option_valid_attribute_p): Add new arg tree fndel.
1425 * config/riscv/riscv.cc (riscv_declare_function_name): Consume the
1426 func target info and print the arch message.
1428 2024-03-22 Pan Li <pan2.li@intel.com>
1431 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1432 Replace implied, combine and check to func finalize.
1433 (riscv_subset_list::finalize): New func impl to take care of
1434 implied, combine ext and related checks.
1435 * config/riscv/riscv-subset.h: Add func decl for finalize.
1436 * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
1437 Finalize the ext before return succeed.
1438 * config/riscv/riscv.cc (riscv_set_current_function): Reinit the
1439 machine mode before when set cur function.
1441 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1443 * config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
1445 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1447 * config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
1449 2024-03-21 Andrew Stubbs <ams@baylibre.com>
1451 * config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
1454 2024-03-21 liuhongt <hongtao.liu@intel.com>
1456 PR tree-optimization/114396
1457 * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
1458 and true to wi::from_mpz.
1460 2024-03-21 Richard Biener <rguenther@suse.de>
1462 PR tree-optimization/111736
1463 * asan.cc (instrument_derefs): Do not instrument accesses
1464 to non-generic address-spaces.
1466 2024-03-21 Richard Biener <rguenther@suse.de>
1468 PR tree-optimization/113727
1469 * tree-sra.cc (analyze_access_subtree): Do not allow
1470 replacements in subtrees when grp_partial_lhs.
1472 2024-03-21 liuhongt <hongtao.liu@intel.com>
1474 PR middle-end/114347
1475 * doc/invoke.texi: Document -fexcess-precision=16.
1477 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1479 * config/bpf/core-builtins.cc (bpf_core_get_index): Check if
1480 field contains a DECL_NAME.
1482 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1484 * config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
1485 Add assert to validate the string is set.
1486 * config/bpf/core-builtins.cc (cr_final): Make string struct
1488 (process_enum_value): Correct for field type change.
1489 (process_type): Set access string to "0".
1491 2024-03-20 Cupertino Miranda <cupertino.miranda@oracle.com>
1493 * config/bpf/core-builtins.cc (core_field_info): Add
1494 support for POINTER_PLUS_EXPR in the root of the field expression.
1495 (bpf_core_get_index): Likewise.
1496 (pack_field_expr): Make the BTF type to point to the structure
1497 related node, instead of its pointer type.
1498 (make_core_safe_access_index): Correct to new code.
1500 2024-03-20 Xi Ruoyao <xry111@xry111.site>
1503 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
1504 Fix typo in diagnostic message, enabing -> enabling.
1506 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1509 * config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
1510 TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
1511 if arg.type is NULL.
1513 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1516 * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
1517 nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1518 if arg.type is NULL.
1520 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1523 * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
1524 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1525 if arg.type is NULL.
1527 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1530 * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
1531 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1532 if arg.type is NULL.
1534 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1537 * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
1538 function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1539 if arg.type is NULL.
1541 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1544 * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
1545 skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1546 if arg.type is NULL.
1548 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1551 * config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
1552 csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1553 if arg.type is NULL.
1555 2024-03-20 Yury Khrustalev <yury.khrustalev@arm.com>
1557 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
1559 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1561 PR tree-optimization/114365
1562 * gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
1563 a PHI node, set iv2 to its result afterwards.
1565 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1567 * tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
1568 probabbility -> probability.
1569 (ch_base::copy_headers): Fix comment typo: itrations -> iterations.
1571 2024-03-20 Jakub Jelinek <jakub@redhat.com>
1574 * system.h (vec_step): Define to vec_step_ when compiling
1575 with clang on PowerPC.
1577 2024-03-20 demin.han <demin.han@starfivetech.com>
1580 * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
1581 (enum rvv_max_lmul_enum): Ditto
1582 (TARGET_MAX_LMUL): Ditto
1583 * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
1584 * config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
1585 (costs::better_main_loop_than_p): Ditto
1586 * config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
1588 2024-03-20 Richard Biener <rguenther@suse.de>
1590 PR middle-end/113396
1591 * tree-dfa.cc (get_ref_base_and_extent): Use index range
1592 bounds only if they fit within the address-range constraints
1595 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1597 * config/loongarch/loongarch.cc
1598 (loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
1599 UNITS_PER_FPREG macros.
1600 (loongarch_hard_regno_nregs): Ditto.
1601 (loongarch_class_max_nregs): Ditto.
1602 (loongarch_get_separate_components): Ditto.
1603 (loongarch_process_components): Ditto.
1604 * config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
1605 (UNITS_PER_HWFPVALUE): Ditto.
1606 (UNITS_PER_FPVALUE): Ditto.
1608 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1610 * config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
1611 of loongarch_expand_vec_cmp()'s return value.
1612 (vec_cmpu<ILASX:mode><mode256_i>): Ditto.
1613 * config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
1614 (vec_cmpu<ILSX:mode><mode_i>): Ditto.
1615 * config/loongarch/loongarch-protos.h
1616 (loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
1617 type from bool to void.
1618 * config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
1620 2024-03-20 Chenghui Pan <panchenghui@loongson.cn>
1622 * config/loongarch/loongarch-protos.h
1623 (loongarch_cfun_has_cprestore_slot_p): Delete.
1624 (loongarch_adjust_insn_length): Delete.
1625 (current_section_name): Delete.
1626 (loongarch_split_symbol_type): Delete.
1627 * config/loongarch/loongarch.cc
1628 (loongarch_case_values_threshold): Delete.
1629 (loongarch_spill_class): Delete.
1630 (TARGET_OPTAB_SUPPORTED_P): Delete.
1631 (TARGET_CASE_VALUES_THRESHOLD): Delete.
1632 (TARGET_SPILL_CLASS): Delete.
1634 2024-03-20 Lewis Hyatt <lhyatt@gmail.com>
1637 * diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
1638 * diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
1639 Make use of DK_ANY to indicate a diagnostic was initially enabled.
1640 (diagnostic_context::diagnostic_enabled): Do not change the type of
1641 a diagnostic if the saved classification is type DK_ANY.
1643 2024-03-19 Martin Jambor <mjambor@suse.cz>
1647 * ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
1648 at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
1649 a pointer parameter.
1650 (ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
1651 parameter, also recognize the case when pfn pointer is loaded in its
1654 2024-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
1657 * lra-constraints.cc (lra_constraints): Prevent removing insn
1658 with reverse equivalence to memory if the memory was reloaded.
1660 2024-03-19 David Malcolm <dmalcolm@redhat.com>
1662 PR middle-end/114348
1663 * diagnostic-format-json.cc
1664 (json_stderr_output_format::machine_readable_stderr_p): New.
1665 (json_file_output_format::machine_readable_stderr_p): New.
1666 * diagnostic-format-sarif.cc
1667 (sarif_stream_output_format::machine_readable_stderr_p): New.
1668 (sarif_file_output_format::machine_readable_stderr_p): New.
1669 * diagnostic.cc (diagnostic_context::action_after_output): Move
1670 "fnotice" to before "finish" call, so that we still have the
1672 (fnotice): Bail out if the user requested one of the
1673 machine-readable diagnostic output formats on stderr.
1675 (diagnostic_output_format::machine_readable_stderr_p): New pure
1677 (diagnostic_text_output_format::machine_readable_stderr_p): New.
1678 (diagnostic_context::get_output_format): New accessor.
1680 2024-03-19 Edwin Lu <ewlu@rivosinc.com>
1683 * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
1684 riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1687 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
1689 * doc/install.texi (Prerequisites): Document use of autogen for
1692 2024-03-19 Richard Biener <rguenther@suse.de>
1694 PR tree-optimization/114151
1695 PR tree-optimization/114269
1696 PR tree-optimization/114322
1697 PR tree-optimization/114074
1698 * tree-chrec.cc (chrec_fold_multiply): Restrict the use of
1699 unsigned arithmetic when actual overflow on constant operands
1702 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1705 * config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
1706 arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1707 if arg.type is NULL.
1709 2024-03-19 Xi Ruoyao <xry111@xry111.site>
1712 * config/loongarch/loongarch.cc
1713 (loongarch_setup_incoming_varargs): Only skip
1714 loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
1715 functions if arg.type is NULL.
1717 2024-03-19 Christophe Lyon <christophe.lyon@linaro.org>
1720 * config/arm/arm-mve-builtins.cc
1721 (function_instance::reads_global_state_p): Take CP_READ_MEMORY
1724 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1727 * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
1728 function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1729 if arg.type is NULL.
1731 2024-03-19 Jakub Jelinek <jakub@redhat.com>
1734 * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
1735 rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
1736 if arg.type is NULL.
1738 2024-03-19 Richard Biener <rguenther@suse.de>
1740 PR tree-optimization/114375
1741 * tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
1742 load permutation for masked loads but reject it when any
1744 * tree-vect-stmts.cc (vectorizable_load): Reject masked
1745 VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
1748 2024-03-19 Mary Bennett <mary.bennett@embecosm.com>
1750 * common/config/riscv/riscv-common.cc: Create XCVbi extension
1752 * config/riscv/riscv.opt: Likewise.
1753 * config/riscv/corev.md: Implement cv_branch<mode> pattern
1754 for cv.beqimm and cv.bneimm.
1755 * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
1756 branch instruction pattern.
1757 * config/riscv/constraints.md: Implement constraints
1758 cv_bi_s5 - signed 5-bit immediate.
1759 * config/riscv/predicates.md: Implement predicate
1760 const_int5s_operand - signed 5 bit immediate.
1761 * doc/sourcebuild.texi: Add XCVbi documentation.
1763 2024-03-19 Chen Jiawei <jiawei@iscas.ac.cn>
1765 * config/riscv/riscv-cores.def (RISCV_TUNE): New def.
1766 (RISCV_CORE): Ditto.
1767 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
1769 * config/riscv/riscv.cc: New def.
1770 * config/riscv/riscv.md: New include.
1771 * config/riscv/xiangshan.md: New file.
1773 2024-03-18 David Malcolm <dmalcolm@redhat.com>
1779 * selftest.h (ASSERT_NE_AT): New macro.
1781 2024-03-18 Uros Bizjak <ubizjak@gmail.com>
1784 * config/i386/i386-features.cc (smode_convert_cst): New function
1785 to handle SImode, DImode and TImode immediates, generalized from
1787 (timode_convert_cst): Remove.
1788 (scalar_chain::convert_op): Unify from
1789 general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
1790 (general_scalar_chain::convert_op): Remove.
1791 (timode_scalar_chain::convert_op): Remove.
1792 (timode_scalar_chain::convert_insn): Update the call to
1793 renamed timode_convert_cst.
1794 * config/i386/i386-features.h (class scalar_chain):
1795 Redeclare convert_op as protected class member.
1796 (class general_calar_chain): Remove convert_op.
1797 (class timode_scalar_chain): Ditto.
1799 2024-03-18 Jan Hubicka <jh@suse.cz>
1801 * config/i386/zn4zn5.md: Add file missed in the previous commit.
1803 2024-03-18 Jan Hubicka <jh@suse.cz>
1804 Karthiban Anbazhagan <Karthiban.Anbazhagan@amd.com>
1806 * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
1807 * common/config/i386/i386-common.cc (processor_names): Add znver5.
1808 (processor_alias_table): Likewise.
1809 * common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
1811 (processor_subtypes): Add znver5.
1812 * config.gcc (x86_64-*-* |...): Likewise.
1813 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
1814 march=native detect znver5 cpu's.
1815 * config/i386/i386-c.cc (ix86_target_macros_internal): Add
1817 * config/i386/i386-options.cc (m_ZNVER5): New definition
1818 (processor_cost_table): Add znver5.
1819 * config/i386/i386.cc (ix86_reassociation_width): Likewise.
1820 * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
1821 (PTA_ZNVER5): New definition.
1822 * config/i386/i386.md (define_attr "cpu"): Add znver5.
1823 (Scheduling descriptions) Add znver5.md.
1824 * config/i386/x86-tune-costs.h (znver5_cost): New definition.
1825 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
1826 (ix86_adjust_cost): Likewise.
1827 * config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
1828 (avx512_store_by_pieces): Add m_ZNVER5.
1829 * doc/extend.texi: Add znver5.
1830 * doc/invoke.texi: Likewise.
1831 * config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
1833 2024-03-18 Georg-Johann Lay <avr@gjlay.de>
1835 * config/avr/constraints.md (CX2, CX3, CX4): New constraints.
1836 * config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
1837 * config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
1838 * config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
1839 (xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
1840 (xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
1842 2024-03-18 liuhongt <hongtao.liu@intel.com>
1845 * config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
1846 (MODEF248): New mode iterator.
1847 (ssevecmodesuffix): Hanlde BF and HF.
1848 * config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
1849 (<code><mode>3): Ditto.
1851 2024-03-18 John David Anglin <danglin@gcc.gnu.org>
1853 PR rtl-optimization/112415
1854 * config/pa/pa.cc (pa_emit_move_sequence): Revise condition
1855 for symbolic memory operands.
1856 (pa_legitimate_address_p): Revise LO_SUM condition.
1857 * config/pa/pa.h (INT14_OK_STRICT): Revise define. Move
1858 comment about GNU linker to predicates.md.
1859 * config/pa/predicates.md (floating_point_store_memory_operand):
1860 Revise condition for symbolic memory operands. Update
1863 2024-03-17 John David Anglin <danglin@gcc.gnu.org>
1865 * config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
1867 2024-03-16 Jakub Jelinek <jakub@redhat.com>
1870 * config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
1871 ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
1872 if arg.type is NULL.
1874 2024-03-16 Jakub Jelinek <jakub@redhat.com>
1876 PR tree-optimization/114329
1877 * gimple-lower-bitint.cc (struct bitint_large_huge): Declare
1878 build_bit_field_ref method.
1879 (bitint_large_huge::build_bit_field_ref): New method.
1880 (bitint_large_huge::lower_mergeable_stmt): Use it.
1882 2024-03-15 YunQiang Su <syq@gcc.gnu.org>
1884 * config/riscv/riscv.opt.urls: Regenerated.
1885 * config/rs6000/sysv4.opt.urls: Likewise.
1886 * config/xtensa/xtensa.opt.urls: Likewise.
1888 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1890 * lower-subreg.cc (resolve_simple_move): Fix comment typo,
1892 * edit-context.cc (class line_event): Fix comment typo,
1893 betweeen -> between.
1895 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1898 * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
1899 a pasto, compare code against LE rather than GE.
1901 2024-03-15 Joe Ramsay <Joe.Ramsay@arm.com>
1903 * match.pd: Fix truncation pattern for -fno-signed-zeroes
1905 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1907 PR middle-end/114332
1908 * expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
1910 2024-03-15 Jakub Jelinek <jakub@redhat.com>
1912 PR tree-optimization/113466
1913 * gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
1915 (bitint_large_huge::bitint_large_huge): Initialize it.
1916 (bitint_large_huge::~bitint_large_huge): Release it.
1917 (bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
1918 before which at least one statement has been inserted.
1919 (gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
1920 calls to a different block and add corresponding PHIs.
1922 2024-03-15 YunQiang Su <syq@gcc.gnu.org>
1924 * config/mips/mips.opt: Support -mstrict-align, and use
1925 TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
1927 * config/mips/mips.h: Use TARGET_STRICT_ALIGN.
1928 * config/mips/mips.opt.urls: Regenerate.
1929 * doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
1931 2024-03-15 Tejas Belagod <tejas.belagod@arm.com>
1933 PR middle-end/114108
1934 * tree-vect-patterns.cc (vect_recog_abd_pattern): Call
1935 vect_convert_output with the correct vecitype.
1937 2024-03-15 Chenghui Pan <panchenghui@loongson.cn>
1939 * config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
1940 Remove masking of operand 3.
1942 2024-03-14 Jason Merrill <jason@redhat.com>
1944 * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
1947 2024-03-14 John David Anglin <danglin@gcc.gnu.org>
1950 * config/pa/pa.cc (pa_legitimate_address_p): Don't allow
1951 14-bit displacements before reload for modes that may use
1952 a floating-point load or store.
1954 2024-03-14 David Faust <david.faust@oracle.com>
1956 * config/bpf/bpf.h (INT8_TYPE): Change to signed char.
1958 2024-03-14 Max Filippov <jcmvbkbc@gmail.com>
1960 * config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
1961 patterns ahead of the l32i.n and s32i.n.
1963 2024-03-14 Jakub Jelinek <jakub@redhat.com>
1965 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
1967 2024-03-14 Jakub Jelinek <jakub@redhat.com>
1969 PR middle-end/113907
1970 * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
1971 SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
1974 2024-03-14 Xi Ruoyao <xry111@xry111.site>
1976 * config/loongarch/loongarch.md (any_ge): Remove.
1977 (sge<u>_<X:mode><GPR:mode>): Remove.
1979 2024-03-14 Jakub Jelinek <jakub@redhat.com>
1982 * config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
1983 TImode force newval into a register.
1985 2024-03-14 Chung-Lin Tang <cltang@baylibre.com>
1987 * tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
1988 (OMP_CLAUSE__CACHE__READONLY): New macro.
1989 * tree-core.h (struct GTY(()) tree_base): Adjust comments for new
1990 uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
1991 OMP_CLAUSE__CACHE__READONLY.
1992 * tree-pretty-print.cc (dump_omp_clause): Add support for printing
1993 OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
1995 2024-03-14 Andreas Krebbel <krebbel@linux.ibm.com>
1997 * config/s390/s390.cc (s390_encode_section_info): Adjust the check
1998 for misaligned symbols.
1999 * config/s390/s390.opt: Improve documentation.
2001 2024-03-14 Jakub Jelinek <jakub@redhat.com>
2003 * gimple-iterator.cc (edge_before_returns_twice_call): Copy all
2004 flags and probability from ad_edge to e edge. If CDI_DOMINATORS
2005 are computed, recompute immediate dominator of other_edge->src
2006 and other_edge->dest.
2007 (gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
2008 for the returns_twice call case to the gsi_for_stmt (stmt) to deal
2009 with update it for bb splitting.
2011 2024-03-14 liuhongt <hongtao.liu@intel.com>
2013 * config/i386/i386-features.cc
2014 (general_scalar_chain::convert_op): Handle REG_EH_REGION note.
2015 (convert_scalars_to_vector): Ditto.
2016 * config/i386/i386-features.h (class scalar_chain): New
2017 memeber control_flow_insns.
2019 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2021 PR middle-end/114319
2022 * gimple-ssa-store-merging.cc
2023 (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
2024 allow matching __builtin_bswap64 if there is bswapsi2 optab.
2026 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2028 * config/s390/s390.cc (s390_secondary_reload): Guard
2029 SYMBOL_FLAG_NOTALIGN2_P.
2031 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2033 * config/s390/s390-builtin-types.def: Update to reflect latest
2035 * config/s390/s390-builtins.def: Streamline vector builtins with
2038 2024-03-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2040 * config/s390/s390-builtins.def (vec_permi): Deprecate.
2041 (vec_ctd): Deprecate.
2042 (vec_ctd_s64): Deprecate.
2043 (vec_ctd_u64): Deprecate.
2044 (vec_ctsl): Deprecate.
2045 (vec_ctul): Deprecate.
2046 (vec_ld2f): Deprecate.
2047 (vec_st2f): Deprecate.
2048 (vec_insert): Deprecate overloads with bool vectors.
2050 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2052 PR middle-end/114313
2053 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
2054 TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
2055 (bitint_large_huge::handle_load): Pass NULL_TREE rather than
2056 rhs_type to limb_access for the bitfield load cases.
2057 (bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
2058 lhs_type to limb_access if nlhs is non-NULL.
2060 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2063 * asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
2064 build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
2065 gsi_safe_insert_before instead of gsi_insert_before.
2067 2024-03-13 Jakub Jelinek <jakub@redhat.com>
2070 * gimple-iterator.h (gsi_safe_insert_before,
2071 gsi_safe_insert_seq_before): Declare.
2072 * gimple-iterator.cc: Include gimplify.h.
2073 (edge_before_returns_twice_call, adjust_before_returns_twice_call,
2074 gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
2075 * ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
2076 instrument_nonnull_arg, instrument_nonnull_return): Use
2077 gsi_safe_insert_before instead of gsi_insert_before.
2078 (maybe_instrument_pointer_overflow): Use force_gimple_operand,
2079 gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
2080 instead of force_gimple_operand_gsi.
2081 (instrument_object_size): Likewise. Use gsi_safe_insert_before
2082 instead of gsi_insert_before.
2084 2024-03-12 Richard Biener <rguenther@suse.de>
2086 PR tree-optimization/114121
2087 * tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
2088 converted operand properly.
2089 (chrec_fold_multiply): Likewise. Handle missed recursion.
2091 2024-03-12 Jakub Jelinek <jakub@redhat.com>
2094 * asan.cc (has_stmt_been_instrumented_p): Don't instrument call
2095 stores on the caller side unless it is a call to a builtin or
2096 internal function or function doesn't return by hidden reference.
2097 (maybe_instrument_call): Likewise.
2098 (instrument_derefs): Instrument stores to RESULT_DECL if
2099 returning by hidden reference.
2101 2024-03-12 Jakub Jelinek <jakub@redhat.com>
2103 PR tree-optimization/114293
2104 * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
2105 max is smaller than min, set max to ~(size_t)0.
2107 2024-03-12 Pan Li <pan2.li@intel.com>
2109 * config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
2110 code style greater than 80 chars.
2111 (riscv_cpu_cpp_builtins): Fix useless empty line, indent
2112 with 3 space(s) and argument unalignment.
2114 2024-03-12 Richard Biener <rguenther@suse.de>
2116 PR tree-optimization/114297
2117 * tree-vect-loop.cc (vectorizable_live_operation): Pass in the
2118 live stmts SLP node to vect_create_epilog_for_reduction.
2120 2024-03-12 Andrew Pinski <quic_apinski@quicinc.com>
2123 * common.opt (fmultiflags): Add RejectNegative.
2125 2024-03-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
2127 * config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
2128 * config/aarch64/aarch64.opt: Likewise.
2129 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
2130 * config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
2131 (aarch64_expand_epilogue): Likewise.
2132 (aarch64_post_cfi_startproc): Likewise.
2133 (aarch64_handle_no_branch_protection): Copy and rename.
2134 (aarch64_handle_standard_branch_protection): Likewise.
2135 (aarch64_handle_pac_ret_protection): Likewise.
2136 (aarch64_handle_pac_ret_leaf): Likewise.
2137 (aarch64_handle_pac_ret_b_key): Likewise.
2138 (aarch64_handle_bti_protection): Likewise.
2139 (aarch64_override_options): Update branch protection validation.
2140 (aarch64_handle_attr_branch_protection): Likewise.
2141 * config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
2142 Pass branch protection type description as argument.
2143 (struct aarch_branch_protect_type): Move from aarch-common.h.
2144 * config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
2146 (aarch_handle_standard_branch_protection): Remove.
2147 (aarch_handle_pac_ret_protection): Remove.
2148 (aarch_handle_pac_ret_leaf): Remove.
2149 (aarch_handle_pac_ret_b_key): Remove.
2150 (aarch_handle_bti_protection): Remove.
2151 (aarch_validate_mbranch_protection): Pass branch protection type
2152 description as argument.
2153 * config/arm/aarch-common.h (enum aarch_key_type): Remove.
2154 (struct aarch_branch_protect_type): Remove.
2155 * config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
2156 * config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
2157 (arm_handle_standard_branch_protection): Likewise.
2158 (arm_handle_pac_ret_protection): Likewise.
2159 (arm_handle_pac_ret_leaf): Likewise.
2160 (arm_handle_bti_protection): Likewise.
2161 (arm_configure_build_target): Update branch protection validation.
2162 * config/arm/arm.opt: Remove aarch_ra_sign_key.
2164 2024-03-11 Richard Biener <rguenther@suse.de>
2166 PR middle-end/114299
2167 * gimplify.cc (internal_get_tmp_var): When gimplification
2168 of VAL failed, return a decl.
2170 2024-03-11 Jakub Jelinek <jakub@redhat.com>
2172 PR tree-optimization/114278
2173 * tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
2174 longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
2176 2024-03-11 Eric Botcazou <ebotcazou@adacore.com>
2180 * dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
2181 generate the DIE with the same parent as in the regular case.
2183 2024-03-11 Andrew Pinski <quic_apinski@quicinc.com>
2186 * fold-const.cc (merge_truthop_with_opposite_arm): Use
2187 the type of the operands of the comparison and not the type
2190 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2192 PR tree-optimization/110199
2193 * tree-ssa-scopedtables.cc
2194 (avail_exprs_stack::simplify_binary_operation): Generalize handling
2195 of MIN_EXPR/MAX_EXPR to allow additional simplifications. Canonicalize
2196 comparison operands for other cases.
2198 2024-03-10 Pan Li <pan2.li@intel.com>
2200 * tree-vect-stmts.cc (vectorizable_store): Enable the assert
2201 during transform process.
2202 (vectorizable_load): Ditto.
2204 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2207 * doc/install.texi: Document need for python when building
2210 2024-03-10 jlaw <jeffreyalaw@gmail.com>
2213 * mode-switching.cc (optimize_mode_switching): Only process
2216 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
2218 * config/avr/avr.md: Fix typos in comment, indentation glitches
2219 and some other nits.
2221 2024-03-09 Jakub Jelinek <jakub@redhat.com>
2224 * fwprop.cc (try_fwprop_subst_pattern): Don't propagate
2225 src containing MEMs unless prop.likely_profitable_p ().
2227 2024-03-09 Xi Ruoyao <xry111@xry111.site>
2229 * config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
2230 Support 'Q' for R_LARCH_RELAX for TLS IE.
2231 (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
2233 * config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
2235 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
2237 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
2238 usum_widenqihi and add_zero_extend1.
2239 [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
2241 * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
2242 Compute exact insn lengths.
2243 (*usum_widenqihi3): Allow input operands to commute.
2245 2024-03-09 Jakub Jelinek <jakub@redhat.com>
2247 * config/i386/i386.opt.urls: Regenerate.
2249 2024-03-09 Lulu Cheng <chenglulu@loongson.cn>
2251 * config/loongarch/sync.md (atomic_cas_value_strong<mode>):
2252 In loongarch64, a sign extension operation is added when
2253 operands[2] is a register operand and the mode is SImode.
2255 2024-03-08 Martin Jambor <mjambor@suse.cz>
2258 * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
2259 id->killed_new_ssa_names.
2261 2024-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
2264 * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
2265 for non-reload pseudo too.
2267 2024-03-08 David Faust <david.faust@oracle.com>
2269 * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
2270 not attempt inline expansion if size is above threshold.
2271 * config/bpf/bpf.opt (-minline-memops-threshold): New option.
2272 * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
2275 2024-03-08 Richard Biener <rguenther@suse.de>
2277 PR tree-optimization/114269
2278 PR tree-optimization/114074
2279 * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
2280 in the third CASE_CONVERT case as well.
2281 (chrec_fold_multiply): Handle sign-conversions from unsigned
2282 by performing the operation in the unsigned type.
2284 2024-03-08 Georg-Johann Lay <avr@gjlay.de>
2286 * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
2287 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
2289 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2291 * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
2292 asm_noperands < 0 means it is not asm goto too.
2294 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2297 * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
2299 * config/i386/i386-options.cc (ix86_set_func_type): Don't use
2300 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
2301 ix86_noreturn_no_callee_saved_registers is enabled.
2302 * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
2304 2024-03-08 Jakub Jelinek <jakub@redhat.com>
2307 * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
2308 on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
2310 2024-03-08 demin.han <demin.han@starfivetech.com>
2313 * config/riscv/riscv-vector-costs.cc: Fix ICE
2315 2024-03-08 Haochen Gui <guihaoc@gcc.gnu.org>
2317 * fwprop.cc (forward_propagate_into): Return false for volatile set
2320 2024-03-07 Wilco Dijkstra <wilco.dijkstra@arm.com>
2323 * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
2324 (aarch64_expand_cpymem): Emit single load/store only.
2325 (aarch64_set_one_block): Emit single stores only.
2327 2024-03-07 Robin Dapp <rdapp@ventanamicro.com>
2329 PR middle-end/114196
2330 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
2331 vectorization guards.
2333 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
2335 * doc/cppopts.texi: Remove incorrect claim about -dD not
2336 outputting predefined macros.
2338 2024-03-07 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
2341 * config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
2342 and simplify else if with else.
2344 2024-03-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2346 * system.h: Include safe-ctype.h after C++ standard headers.
2348 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2350 PR rtl-optimization/110079
2351 * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
2354 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2356 PR middle-end/105533
2357 * expmed.cc (choose_mult_variant): Only try the val - 1 variant
2358 if val is not HOST_WIDE_INT_MIN or if mode has exactly
2359 HOST_BITS_PER_WIDE_INT precision. Avoid triggering UB while computing
2362 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2364 PR middle-end/105533
2365 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
2366 Multiple op->off by BITS_PER_UNIT instead of shifting it left by
2369 2024-03-07 Yang Yujie <yangyujie@loongson.cn>
2371 * config.gcc: Add a case for loongarch*-*-linux-musl*.
2372 * config/loongarch/linux.h: Disable the multilib-compatible
2373 treatment for *musl* targets.
2374 * config/loongarch/musl.h: New file.
2376 2024-03-07 Jakub Jelinek <jakub@redhat.com>
2378 PR tree-optimization/114009
2379 * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
2380 argument even for GENERIC, not just for GIMPLE.
2381 * match.pd (a * !a -> 0): New simplifications.
2383 2024-03-07 demin.han <demin.han@starfivetech.com>
2385 * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
2386 * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
2387 (expand_vec_cmp_float): Adapt arguments
2389 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
2392 * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
2393 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
2394 (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
2395 (<plusminus:insn>v2qi3): Enable for optimize_size instead
2396 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
2397 (<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
2398 (<any_shift:insn>v2qi3): Enable for optimize_size instead
2399 of optimize_function_for_size_p.
2401 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
2405 * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
2407 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
2409 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
2410 (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
2412 (costs::add_stmt_cost): Also adjust cost for statements without
2414 * config/riscv/riscv-vector-costs.h: Define zero constant.
2416 2024-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
2419 * config/arm/arm.md (NOCOND): Improve comment.
2420 (arm_rev*) Add predicable.
2421 * config/arm/arm.cc (arm_final_prescan_insn): Add check for
2424 2024-03-06 Jeff Law <jlaw@ventanamicro.com>
2428 * config/riscv/riscv.cc (expand_conditional_move): Do not swap
2429 operands when the comparison operand is the same as the false
2432 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
2434 * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
2435 Eliminate common code and use generic code instead.
2437 2024-03-06 Georg-Johann Lay <avr@gjlay.de>
2439 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
2442 2024-03-06 Richard Biener <rguenther@suse.de>
2444 PR tree-optimization/114239
2445 * tree-vect-loop.cc (vect_get_vect_def): Remove.
2446 (vect_create_epilog_for_reduction): The passed in stmt_info
2447 should now be the live stmt that produces the scalar reduction
2448 result. Revert PR114192 fix. Base reduction info off
2449 info_for_reduction. Remove special handling of
2450 early-break/peeled, restore original vector def gathering.
2451 Make sure to pick the correct exit PHIs.
2452 (vectorizable_live_operation): Pass in the proper stmt_info
2453 for early break exits.
2455 2024-03-06 Richard Sandiford <richard.sandiford@arm.com>
2457 * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
2458 out-of-class definitions of static constants.
2460 2024-03-06 Richard Biener <rguenther@suse.de>
2462 PR tree-optimization/114249
2463 * tree-vect-slp.cc (vect_build_slp_instance): Move making
2464 a BB reduction lane number even ...
2465 (vect_slp_check_for_roots): ... here to avoid leaking
2468 2024-03-06 Richard Biener <rguenther@suse.de>
2470 PR tree-optimization/114246
2471 * tree-ssa-dse.cc (increment_start_addr): Strip useless
2472 type conversions from the adjusted address.
2474 2024-03-06 Jakub Jelinek <jakub@redhat.com>
2476 PR rtl-optimization/114190
2477 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
2478 Call df_remove_problem for df_note before calling df_analyze.
2480 2024-03-05 Cupertino Miranda <cupertino.miranda@oracle.com>
2481 Indu Bhagat <indu.bhagat@oracle.com>
2484 * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
2485 in the correct order of the dimensions.
2486 (gen_ctf_subrange_type): Refactor out handling of
2487 DW_TAG_subrange_type DIE to here.
2489 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
2492 * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
2494 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
2496 * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
2498 * config/aarch64/aarch64-sme.md
2499 (@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
2500 (@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
2501 (@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
2502 * config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
2503 (early_ra::maybe_convert_to_strided_access): Remove support for
2504 strided LUTI2 and LUTI4.
2506 2024-03-05 Richard Earnshaw <rearnsha@arm.com>
2509 * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
2510 low_register_operand.
2512 2024-03-05 Georg-Johann Lay <avr@gjlay.de>
2514 * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
2515 in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
2516 to "X = Y, X o= CST".
2518 2024-03-05 Xi Ruoyao <xry111@xry111.site>
2520 * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
2521 s9 as an alias of r22.
2523 2024-03-05 Roger Sayle <roger@nextmovesoftware.com>
2525 * config/avr/avr-protos.h (avr_out_insv): New proto.
2526 * config/avr/avr.cc (avr_out_insv): New function.
2527 (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
2528 (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
2529 * config/avr/avr.md (define_attr "adjust_len") Add insv.
2530 (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
2531 Add constraint alternative where the 3rd operand is a power
2532 of 2, and the source register may differ from the destination.
2533 (*insv.any_shift.<mode>_split): Call avr_out_insv to output
2534 instructions. Set attr "length" to "insv".
2535 * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
2537 2024-03-05 Richard Biener <rguenther@suse.de>
2539 PR tree-optimization/114231
2540 * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
2541 processing a BB SLP root.
2543 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2545 PR rtl-optimization/114211
2546 * lower-subreg.cc (resolve_simple_move): For double-word
2547 rotates by BITS_PER_WORD if there is overlap between source
2548 and destination use a temporary.
2550 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2552 PR middle-end/114157
2553 * gimple-lower-bitint.cc: Include stor-layout.h.
2554 (mergeable_op): Return true for BIT_FIELD_REF.
2555 (struct bitint_large_huge): Declare handle_bit_field_ref method.
2556 (bitint_large_huge::handle_bit_field_ref): New method.
2557 (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
2559 2024-03-05 Jakub Jelinek <jakub@redhat.com>
2562 * config/i386/i386.h (enum call_saved_registers_type): Add
2563 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
2564 * config/i386/i386-options.cc (ix86_set_func_type): Remove
2565 has_no_callee_saved_registers variable, add no_callee_saved_registers
2566 instead, initialize it depending on whether it is
2567 no_callee_saved_registers function or not. Don't set it if
2568 no_caller_saved_registers attribute is present. Adjust users.
2569 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
2570 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
2571 TYPE_NO_CALLEE_SAVED_REGISTERS.
2572 (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
2574 2024-03-05 Pan Li <pan2.li@intel.com>
2576 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
2577 mode_size related code.
2579 2024-03-05 Patrick Palka <ppalka@redhat.com>
2581 * doc/invoke.texi (-Wno-global-module): Document.
2583 2024-03-04 David Faust <david.faust@oracle.com>
2585 * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
2586 * config/bpf/bpf.cc (bpf_expand_setmem): New.
2587 * config/bpf/bpf.md (setmemdi): New define_expand.
2589 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2591 PR rtl-optimization/113010
2592 * combine.cc (simplify_comparison): Guard the
2593 WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
2594 and initialize inner_mode.
2596 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2598 * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
2599 VMLALDAVAXQ_U cases.
2600 (VMLALDAVXQ): Remove iterator.
2601 (VMLALDAVXQ_P): Likewise.
2602 (VMLALDAVAXQ): Likewise.
2603 * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
2604 mode iterator attribute with V4BI mode.
2605 * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
2606 VMLALDAVAXQ_U): Remove unused unspecs.
2608 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
2610 * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
2611 * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
2613 * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
2614 vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
2615 vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
2616 vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
2617 vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
2618 vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
2619 vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
2620 vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
2621 vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
2622 vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
2624 2024-03-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
2626 * config/arm/arm.md (mve_unpredicated_insn): New attribute.
2627 * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
2628 (MVE_VPT_UNPREDICATED_INSN_P): Likewise.
2629 (MVE_VPT_PREDICABLE_INSN_P): Likewise.
2630 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
2631 * config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
2632 (arm_vcx1q<a>v16qi): Likewise.
2633 (arm_vcx1qav16qi): Likewise.
2634 (arm_vcx1qv16qi): Likewise.
2635 (arm_vcx2q<a>_p_v16qi): Likewise.
2636 (arm_vcx2q<a>v16qi): Likewise.
2637 (arm_vcx2qav16qi): Likewise.
2638 (arm_vcx2qv16qi): Likewise.
2639 (arm_vcx3q<a>_p_v16qi): Likewise.
2640 (arm_vcx3q<a>v16qi): Likewise.
2641 (arm_vcx3qav16qi): Likewise.
2642 (arm_vcx3qv16qi): Likewise.
2643 (@mve_<mve_insn>q_<supf><mode>): Likewise.
2644 (@mve_<mve_insn>q_int_<supf><mode>): Likewise.
2645 (@mve_<mve_insn>q_<supf>v4si): Likewise.
2646 (@mve_<mve_insn>q_n_<supf><mode>): Likewise.
2647 (@mve_<mve_insn>q_r_<supf><mode>): Likewise.
2648 (@mve_<mve_insn>q_f<mode>): Likewise.
2649 (@mve_<mve_insn>q_m_<supf><mode>): Likewise.
2650 (@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
2651 (@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
2652 (@mve_<mve_insn>q_m_f<mode>): Likewise.
2653 (@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
2654 (@mve_<mve_insn>q_p_<supf>v4si): Likewise.
2655 (@mve_<mve_insn>q_p_<supf><mode>): Likewise.
2656 (@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
2657 (@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
2658 (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
2659 (@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
2660 (mve_v<absneg_str>q_f<mode>): Likewise.
2661 (mve_<mve_addsubmul>q<mode>): Likewise.
2662 (mve_<mve_addsubmul>q_f<mode>): Likewise.
2663 (mve_vadciq_<supf>v4si): Likewise.
2664 (mve_vadciq_m_<supf>v4si): Likewise.
2665 (mve_vadcq_<supf>v4si): Likewise.
2666 (mve_vadcq_m_<supf>v4si): Likewise.
2667 (mve_vandq_<supf><mode>): Likewise.
2668 (mve_vandq_f<mode>): Likewise.
2669 (mve_vandq_m_<supf><mode>): Likewise.
2670 (mve_vandq_m_f<mode>): Likewise.
2671 (mve_vandq_s<mode>): Likewise.
2672 (mve_vandq_u<mode>): Likewise.
2673 (mve_vbicq_<supf><mode>): Likewise.
2674 (mve_vbicq_f<mode>): Likewise.
2675 (mve_vbicq_m_<supf><mode>): Likewise.
2676 (mve_vbicq_m_f<mode>): Likewise.
2677 (mve_vbicq_m_n_<supf><mode>): Likewise.
2678 (mve_vbicq_n_<supf><mode>): Likewise.
2679 (mve_vbicq_s<mode>): Likewise.
2680 (mve_vbicq_u<mode>): Likewise.
2681 (@mve_vclzq_s<mode>): Likewise.
2682 (mve_vclzq_u<mode>): Likewise.
2683 (@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
2684 (@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
2685 (@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
2686 (@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
2687 (@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
2688 (@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
2689 (@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
2690 (@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
2691 (mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
2692 (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
2693 (mve_vcvtaq_<supf><mode>): Likewise.
2694 (mve_vcvtaq_m_<supf><mode>): Likewise.
2695 (mve_vcvtbq_f16_f32v8hf): Likewise.
2696 (mve_vcvtbq_f32_f16v4sf): Likewise.
2697 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
2698 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
2699 (mve_vcvtmq_<supf><mode>): Likewise.
2700 (mve_vcvtmq_m_<supf><mode>): Likewise.
2701 (mve_vcvtnq_<supf><mode>): Likewise.
2702 (mve_vcvtnq_m_<supf><mode>): Likewise.
2703 (mve_vcvtpq_<supf><mode>): Likewise.
2704 (mve_vcvtpq_m_<supf><mode>): Likewise.
2705 (mve_vcvtq_from_f_<supf><mode>): Likewise.
2706 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
2707 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
2708 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
2709 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
2710 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
2711 (mve_vcvtq_n_to_f_<supf><mode>): Likewise.
2712 (mve_vcvtq_to_f_<supf><mode>): Likewise.
2713 (mve_vcvttq_f16_f32v8hf): Likewise.
2714 (mve_vcvttq_f32_f16v4sf): Likewise.
2715 (mve_vcvttq_m_f16_f32v8hf): Likewise.
2716 (mve_vcvttq_m_f32_f16v4sf): Likewise.
2717 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
2718 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
2719 (mve_veorq_s><mode>): Likewise.
2720 (mve_veorq_u><mode>): Likewise.
2721 (mve_veorq_f<mode>): Likewise.
2722 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
2723 (mve_vidupq_u<mode>_insn): Likewise.
2724 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
2725 (mve_viwdupq_wb_u<mode>_insn): Likewise.
2726 (mve_vldrbq_<supf><mode>): Likewise.
2727 (mve_vldrbq_gather_offset_<supf><mode>): Likewise.
2728 (mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
2729 (mve_vldrbq_z_<supf><mode>): Likewise.
2730 (mve_vldrdq_gather_base_<supf>v2di): Likewise.
2731 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
2732 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
2733 (mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
2734 (mve_vldrdq_gather_offset_<supf>v2di): Likewise.
2735 (mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
2736 (mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
2737 (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
2738 (mve_vldrhq_<supf><mode>): Likewise.
2739 (mve_vldrhq_fv8hf): Likewise.
2740 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
2741 (mve_vldrhq_gather_offset_fv8hf): Likewise.
2742 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
2743 (mve_vldrhq_gather_offset_z_fv8hf): Likewise.
2744 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
2745 (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
2746 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
2747 (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
2748 (mve_vldrhq_z_<supf><mode>): Likewise.
2749 (mve_vldrhq_z_fv8hf): Likewise.
2750 (mve_vldrwq_<supf>v4si): Likewise.
2751 (mve_vldrwq_fv4sf): Likewise.
2752 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
2753 (mve_vldrwq_gather_base_fv4sf): Likewise.
2754 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
2755 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
2756 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
2757 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
2758 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
2759 (mve_vldrwq_gather_base_z_fv4sf): Likewise.
2760 (mve_vldrwq_gather_offset_<supf>v4si): Likewise.
2761 (mve_vldrwq_gather_offset_fv4sf): Likewise.
2762 (mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
2763 (mve_vldrwq_gather_offset_z_fv4sf): Likewise.
2764 (mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
2765 (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
2766 (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
2767 (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
2768 (mve_vldrwq_z_<supf>v4si): Likewise.
2769 (mve_vldrwq_z_fv4sf): Likewise.
2770 (mve_vmvnq_s<mode>): Likewise.
2771 (mve_vmvnq_u<mode>): Likewise.
2772 (mve_vornq_<supf><mode>): Likewise.
2773 (mve_vornq_f<mode>): Likewise.
2774 (mve_vornq_m_<supf><mode>): Likewise.
2775 (mve_vornq_m_f<mode>): Likewise.
2776 (mve_vornq_s<mode>): Likewise.
2777 (mve_vornq_u<mode>): Likewise.
2778 (mve_vorrq_<supf><mode>): Likewise.
2779 (mve_vorrq_f<mode>): Likewise.
2780 (mve_vorrq_m_<supf><mode>): Likewise.
2781 (mve_vorrq_m_f<mode>): Likewise.
2782 (mve_vorrq_m_n_<supf><mode>): Likewise.
2783 (mve_vorrq_n_<supf><mode>): Likewise.
2784 (mve_vorrq_s<mode>): Likewise.
2785 (mve_vorrq_s<mode>): Likewise.
2786 (mve_vsbciq_<supf>v4si): Likewise.
2787 (mve_vsbciq_m_<supf>v4si): Likewise.
2788 (mve_vsbcq_<supf>v4si): Likewise.
2789 (mve_vsbcq_m_<supf>v4si): Likewise.
2790 (mve_vshlcq_<supf><mode>): Likewise.
2791 (mve_vshlcq_m_<supf><mode>): Likewise.
2792 (mve_vshrq_m_n_<supf><mode>): Likewise.
2793 (mve_vshrq_n_<supf><mode>): Likewise.
2794 (mve_vstrbq_<supf><mode>): Likewise.
2795 (mve_vstrbq_p_<supf><mode>): Likewise.
2796 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
2797 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
2798 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
2799 (mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
2800 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
2801 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
2802 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
2803 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
2804 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
2805 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
2806 (mve_vstrhq_<supf><mode>): Likewise.
2807 (mve_vstrhq_fv8hf): Likewise.
2808 (mve_vstrhq_p_<supf><mode>): Likewise.
2809 (mve_vstrhq_p_fv8hf): Likewise.
2810 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
2811 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
2812 (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
2813 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
2814 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
2815 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
2816 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
2817 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
2818 (mve_vstrwq_<supf>v4si): Likewise.
2819 (mve_vstrwq_fv4sf): Likewise.
2820 (mve_vstrwq_p_<supf>v4si): Likewise.
2821 (mve_vstrwq_p_fv4sf): Likewise.
2822 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
2823 (mve_vstrwq_scatter_base_fv4sf): Likewise.
2824 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
2825 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
2826 (mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
2827 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
2828 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
2829 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
2830 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
2831 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
2832 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
2833 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
2834 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
2835 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
2836 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
2837 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
2839 2024-03-04 Marek Polacek <polacek@redhat.com>
2841 * doc/extend.texi: Update [[gnu::no_dangling]].
2843 2024-03-04 Andrew Stubbs <ams@baylibre.com>
2845 * dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
2846 * expr.cc (store_constructor): Likewise.
2847 (do_store_flag): Likewise.
2849 2024-03-04 Mark Wielaard <mark@klomp.org>
2851 * common.opt.urls: Regenerate.
2852 * config/avr/avr.opt.urls: Likewise.
2853 * config/i386/i386.opt.urls: Likewise.
2854 * config/pru/pru.opt.urls: Likewise.
2855 * config/riscv/riscv.opt.urls: Likewise.
2856 * config/rs6000/rs6000.opt.urls: Likewise.
2858 2024-03-04 Richard Biener <rguenther@suse.de>
2860 PR tree-optimization/114197
2861 * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
2862 there are volatile bitfield accesses.
2863 (pass_if_conversion::execute): Throw away result if the
2864 if-converted and original loops are not nested as expected.
2866 2024-03-04 Richard Biener <rguenther@suse.de>
2868 PR tree-optimization/114164
2869 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
2870 the code generated for mask argument setup is not supported.
2872 2024-03-04 Richard Biener <rguenther@suse.de>
2874 PR tree-optimization/114203
2875 * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
2876 adjustment before making the result defined at zero.
2878 2024-03-04 Richard Biener <rguenther@suse.de>
2880 PR tree-optimization/114192
2881 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
2882 appropriate def for the live out stmt in case of an alternate
2885 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2887 PR middle-end/114209
2888 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
2889 unshare_expr when creating a MEM_REF from MEM_REF.
2890 (bitint_large_huge::lower_stmt): Call unshare_expr.
2892 2024-03-04 Jakub Jelinek <jakub@redhat.com>
2895 * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
2896 is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
2899 2024-03-04 Roger Sayle <roger@nextmovesoftware.com>
2902 * simplify-rtx.cc (simplify_context::simplify_subreg): Call
2903 lowpart_subreg to perform type conversion, to avoid confusion
2904 over the offset to use in the call to simplify_reg_subreg.
2906 2024-03-03 Greg McGary <gkm@rivosinc.com>
2908 PR rtl-optimization/113010
2909 * combine.cc (simplify_comparison): Simplify a SUBREG on
2910 WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
2913 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2915 * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
2916 Use bool in place of int for boolean logic (if possible).
2917 Move declarations to definitions (if possible).
2918 * config/avr/avr.md: Use C++ comments. Fix some indentation glitches.
2919 * config/avr/avr-dimode.md: Same.
2920 * config/avr/constraints.md: Same.
2921 * config/avr/predicates.md: Same.
2923 2024-03-03 Uros Bizjak <ubizjak@gmail.com>
2926 * config/alpha/alpha.md (umuldi3_highpart): Remove expander.
2927 (*umuldi3_highpart_reg): Rename to umuldi3_highpart and
2928 simplify insn RTX using UMUL_HIGHPART rtx_code.
2929 (*umuldi3_highpart_const): Remove.
2931 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2934 * config/avr/avr-protos.h (_reg_unused_after): Remove proto.
2935 * config/avr/avr.cc (_reg_unused_after): Make static. And
2936 add 3rd argument to skip the current insn.
2937 (reg_unused_after): Adjust call of reg_unused_after.
2938 (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
2939 unneeded frame pointer adjustments.
2941 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2944 * config/avr/avr.md (define_attr "cc"): Remove.
2945 * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
2947 * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
2948 its uses. Add insn argument.
2949 (avr_out_plus_symbol): Remove pcc argument and its uses.
2950 (avr_out_plus): Remove pcc argument and its uses.
2951 Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
2952 (avr_out_round): Adjust call of avr_out_plus.
2954 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
2956 * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
2959 2024-03-03 Oleg Endo <olegendo@gcc.gnu.org>
2962 * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
2963 is not an insn, but e.g. a code label.
2965 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
2967 * config/avr/avr.md (REG_0, ... REG_36): New define_constants.
2968 * config/avr/avr.cc: Use them instead of magic numbers when it
2969 means a register number.
2971 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
2973 * config/avr/avr.cc: Adjust some comments.
2975 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
2978 * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
2979 the low part of the frame pointer with 8-bit stack pointer.
2981 2024-03-01 Patrick Palka <ppalka@redhat.com>
2985 * tree-inline.cc (remap_decl): Handle copy_decl returning the
2987 (remap_decls): Handle remap_decl returning the original decl.
2988 (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
2991 2024-03-01 Jeff Law <jlaw@ventanamicro.com>
2993 * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
2995 (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
2996 (movdi_32bit, movdi_64bit, movsi_internal): Likewise.
2997 (movhi_internal, movqi_internal): Likewise.
2998 (movsf_softfloat, movsf_hardfloat): Likewise.
2999 (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
3000 (movdf_softfloat): Likewise.
3002 2024-03-01 Marek Polacek <polacek@redhat.com>
3006 * doc/extend.texi: Document gnu::no_dangling.
3007 * doc/invoke.texi: Mention that gnu::no_dangling disables
3008 -Wdangling-reference.
3010 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
3012 * config/avr/avr.opt: Overhaul help screen.
3014 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3015 Tobias Burnus <tburnus@baylibre.com>
3018 * gimplify.cc (omp_notice_variable): Fix 'shared' arg to
3019 lang_hooks.decls.omp_disregard_value_expr for
3020 (first)private in target regions.
3022 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3024 PR middle-end/114136
3025 * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
3026 n_named_args initially before INIT_CUMULATIVE_ARGS to
3027 structure_value_addr_parm rather than 0, after it don't modify
3028 it if strict_argument_naming and clear only if
3029 !pretend_outgoing_varargs_named.
3031 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3034 * dwarf2out.cc (should_move_die_to_comdat): Return false for
3035 aggregates without DW_AT_byte_size attribute or with non-constant
3038 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
3040 * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
3041 valid values for level.
3043 2024-03-01 Richard Biener <rguenther@suse.de>
3045 PR middle-end/114070
3046 * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)):
3047 Allow the folding if before lowering and the current IL
3048 isn't supported with vcond_mask.
3050 2024-03-01 xuli <xuli1@eswincomputing.com>
3052 * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
3053 attribute to riscv_attribute_table.
3054 (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
3055 (riscv_fntype_abi): Add riscv_vector_cc attribute check.
3056 * doc/extend.texi: Add riscv_vector_cc attribute description.
3058 2024-03-01 Pan Li <pan2.li@intel.com>
3061 * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
3062 RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
3063 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
3064 (enum rvv_vector_bits_enum): New enum for different RVV vector bits.
3065 * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
3066 comments for option replacement.
3067 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
3068 riscv_autovec_preference to rvv_vector_bits.
3069 (vls_mode_valid_p): Ditto.
3070 (estimated_poly_value): Ditto.
3071 * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
3072 vector chunks and honor new option mrvv-vector-bits.
3073 (riscv_override_options_internal): Update comments and rename the
3075 * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
3076 internal option param=riscv-autovec-preference.
3078 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3080 * function.cc (assign_parms): Only call assign_parms_setup_varargs
3081 early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
3083 2024-03-01 Jakub Jelinek <jakub@redhat.com>
3085 PR middle-end/114156
3086 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
3087 rhs1 of a VCE to have no underlying variable if it is a load and
3090 2024-02-29 David Malcolm <dmalcolm@redhat.com>
3093 * function.cc (function_name): Make param const.
3094 * function.h (function_name): Likewise.
3096 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
3099 * doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
3100 * config/avr/avr.opt (-mfuse-add=): New target option.
3101 * common/config/avr/avr-common.cc (avr_option_optimization_table)
3102 [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
3103 [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
3104 * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
3105 * config/avr/avr-protos.h (avr_split_tiny_move)
3106 (make_avr_pass_fuse_add): New protos.
3107 * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
3108 avr_split_tiny_move to split indirect memory accesses.
3109 (gen_move_clobbercc): New define_expand helper.
3110 * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
3111 (avr_pass_fuse_add): New class from rtl_opt_pass.
3112 (make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
3113 (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
3114 (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
3115 of PLUS addressing for AVR_TINY.
3116 (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
3117 (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
3118 (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
3120 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
3123 * config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
3124 * config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
3125 (avr_function_arg): Set it.
3126 (avr_frame_pointer_required_p): Use it instead of .nregs.
3128 2024-02-29 Andrew Pinski <quic_apinski@quicinc.com>
3131 * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
3132 static and mark with GTY.
3134 2024-02-29 Xi Ruoyao <xry111@xry111.site>
3136 * config/loongarch/loongarch.md
3137 (loongarch_<crc>_w_<size>_w_extended): New define_insn.
3139 2024-02-29 Xi Ruoyao <xry111@xry111.site>
3141 * config/loongarch/loongarch.md (CRC): New define_int_iterator.
3142 (crc): New define_int_attr.
3143 (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
3145 (loongarch_<crc>_w_<size>_w): ... here.
3147 2024-02-29 Kito Cheng <kito.cheng@sifive.com>
3150 * config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
3151 extend the expected value if needed.
3153 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3155 * config.gcc (target_gtfiles): Change coreout to btfext-out.
3156 (extra_objs): Change coreout to btfext-out.
3157 * config/bpf/coreout.cc: Rename to btfext-out.cc.
3158 * config/bpf/btfext-out.cc: Add.
3159 * config/bpf/coreout.h: Rename to btfext-out.h.
3160 * config/bpf/btfext-out.h: Add.
3161 * config/bpf/core-builtins.cc: Change include.
3162 * config/bpf/core-builtins.h: Change include.
3163 * config/bpf/t-bpf: Accomodate renamed files.
3165 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3168 * config/bpf/bpf.cc (bpf_function_prologue): Define target
3170 * config/bpf/coreout.cc (brf_ext_info_section)
3171 (btf_ext_info): Move from coreout.h
3172 (btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
3173 (bpf_core_reloc): Rename to btf_ext_core_reloc.
3174 (btf_ext): Add static variable.
3175 (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
3176 (bpf_create_or_find_funcinfo, bpt_create_core_reloc)
3177 (btf_ext_add_string, btf_funcinfo_type_callback)
3178 (btf_add_func_info_for, btf_validate_funcinfo)
3179 (btf_ext_info_len, output_btfext_func_info): Add function.
3180 (output_btfext_header, bpf_core_reloc_add)
3181 (output_btfext_core_relocs, btf_ext_init, btf_ext_output):
3182 Change to support new structs.
3183 * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
3184 Move and change in coreout.cc.
3185 (btf_add_func_info_for, btf_ext_add_string): Add prototypes.
3187 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3189 * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
3190 enabled by default for BPF.
3191 (bpf_file_end): Call BTF deallocation.
3192 (bpf_asm_init_sections): Correct condition.
3193 * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
3195 (ctf_debuf_finish): Correct condition for calling
3198 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3200 * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
3201 (traverse_btf_func_types): Define function.
3202 * ctfc.h (funcs_traverse_callback): Typedef for function
3204 (traverse_btf_func_types): Add prototype.
3206 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
3208 * btfout.cc (btf_collect_dataset): Corrects BTF type id.
3210 2024-02-28 Richard Biener <rguenther@suse.de>
3212 PR tree-optimization/113831
3213 PR tree-optimization/108355
3214 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
3217 2024-02-28 Richard Biener <rguenther@suse.de>
3219 PR tree-optimization/114121
3220 * tree-ssa-sccvn.h (vn_reference_s::offset,
3221 vn_reference_s::max_size): New fields.
3222 (vn_reference_insert_pieces): Adjust prototype.
3223 * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
3224 * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
3225 size, allow using "don't know" state.
3226 (vn_walk_cb_data::finish): Pass along offset/max_size.
3227 (vn_reference_lookup_or_insert_for_pieces): Take offset and
3228 max_size as argument and use it.
3229 (vn_reference_lookup_3): Properly adjust offset and max_size
3230 according to the adjusted ao_ref.
3231 (vn_reference_lookup_pieces): Initialize offset and max_size.
3232 (vn_reference_lookup): Likewise.
3233 (vn_reference_lookup_call): Likewise.
3234 (vn_reference_insert): Likewise.
3235 (visit_reference_op_call): Likewise.
3236 (vn_reference_insert_pieces): Take offset and max_size
3237 as argument and use it.
3239 2024-02-28 Juergen Christ <jchrist@linux.ibm.com>
3241 PR tree-optimization/114075
3242 * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
3245 2024-02-28 Jakub Jelinek <jakub@redhat.com>
3247 PR tree-optimization/114041
3248 * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
3249 INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
3251 2024-02-28 Jakub Jelinek <jakub@redhat.com>
3253 PR tree-optimization/113988
3254 * stor-layout.h (bitwise_mode_for_size): Declare.
3255 * stor-layout.cc (bitwise_mode_for_size): New function.
3256 * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
3257 Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
3258 Use BITS_PER_UNIT instead of 8.
3260 2024-02-27 Uros Bizjak <ubizjak@gmail.com>
3263 * config/i386/mmx.md (V248FI): Add V2BF mode.
3266 2024-02-27 Eric Botcazou <ebotcazou@adacore.com>
3268 * tree-ssa-dse.cc (compute_trims): Fix description. Return early
3269 if either ref->offset is not byte aligned or ref->size is not known
3270 to be equal to ref->max_size.
3271 (maybe_trim_complex_store): Fix description.
3272 (maybe_trim_constructor_store): Likewise.
3273 (maybe_trim_partially_dead_store): Likewise.
3275 2024-02-27 Richard Earnshaw <rearnsha@arm.com>
3277 * config/arm/mmintrin.h: Warn if this header is included without
3278 defining __ENABLE_DEPRECATED_IWMMXT.
3280 2024-02-27 Richard Biener <rguenther@suse.de>
3282 PR tree-optimization/114074
3283 * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
3284 * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
3285 Handle poly vs. non-poly multiplication correctly with respect
3286 to undefined behavior on overflow.
3288 2024-02-27 Jakub Jelinek <jakub@redhat.com>
3290 PR rtl-optimization/114044
3291 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
3292 DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
3293 * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
3294 expand_PARITY): Declare.
3295 * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
3296 expand_CTZ, expand_FFS, expand_PARITY): New functions.
3297 (expand_POPCOUNT): Use expand_bitquery.
3299 2024-02-27 Richard Biener <rguenther@suse.de>
3301 PR tree-optimization/114081
3302 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3303 Perform manual dominator update for prologue peeling.
3304 (vect_do_peeling): Properly update dominators after adding the
3305 prologue-around guard.
3307 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
3309 * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
3310 (mstrict-X): Tag as "Optimization".
3312 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
3314 * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
3315 an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
3317 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3318 H.J. Lu <hjl.tools@gmail.com>
3320 PR rtl-optimization/113617
3321 * varasm.cc (default_elf_select_rtx_section): For
3322 references to private symbols in comdat sections
3323 use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
3324 or .rodata.<comdat> comdat sections.
3326 2024-02-26 Richard Biener <rguenther@suse.de>
3328 PR tree-optimization/114099
3329 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3330 Create and fill in a needed virtual LC PHI for the alternate
3331 exits. Remove code dealing with that missing.
3333 2024-02-26 Richard Biener <rguenther@suse.de>
3335 PR tree-optimization/114068
3336 * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
3338 (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
3339 on the main exit if needed. Remove band-aid for the case
3342 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
3345 * config/i386/i386-options.cc (ix86_set_func_type): Check
3346 interrupt instead of noreturn attribute.
3348 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3350 * config/i386/i386.cc (ix86_bitint_type_info): Add support for
3353 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3355 PR tree-optimization/114090
3356 * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
3357 Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
3359 ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
3361 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3363 PR middle-end/114084
3364 * fold-const.cc (fold_binary_loc): Avoid the final associate_trees
3365 if all subtrees of var0 come from one of the op0 or op1 operands
3366 and all subtrees of con0 come from the other one. Don't clear
3367 variables which are never used afterwards.
3369 2024-02-26 Richard Biener <rguenther@suse.de>
3371 PR middle-end/114070
3372 * genmatch.cc (parser::parse_c_expr): Do not record operand
3373 lists but only mark operators used.
3374 * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)):
3375 Properly guard the case of tcc_comparison changing the VEC_COND
3378 2024-02-26 Jakub Jelinek <jakub@redhat.com>
3381 * config/i386/i386.cc (x86_function_profiler): Add missing new-line
3382 to printed instruction.
3384 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
3387 * config/i386/amxtileintrin.h (_tile_loadconfig): Use
3388 __builtin_ia32_ldtilecfg.
3389 (_tile_storeconfig): Use __builtin_ia32_sttilecfg.
3390 * config/i386/i386-builtin.def (BDESC): Add
3391 __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
3392 * config/i386/i386-expand.cc (ix86_expand_builtin): Handle
3393 IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
3394 * config/i386/i386.md (ldtilecfg): New pattern.
3395 (sttilecfg): Likewise.
3397 2024-02-24 Richard Sandiford <richard.sandiford@arm.com>
3399 PR tree-optimization/113205
3400 * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
3401 the proposed layout if it does not allow a source partition with
3402 layout 2 to keep that layout.
3404 2024-02-24 Jakub Jelinek <jakub@redhat.com>
3406 * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
3407 * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
3408 * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
3409 * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
3410 (mk_attr_alt): Use HOST_WIDE_INT_0 macro.
3411 * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
3413 * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
3414 * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
3415 * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
3416 HOST_WIDE_INT_UC macros.
3417 * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
3418 * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
3419 * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
3420 * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
3422 * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
3423 * config/i386/constraints.md (define_constraint "L"): Use
3424 HOST_WIDE_INT_C macro.
3425 * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
3427 (movl + movb peephole2): Likewise.
3428 * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
3429 (const_32bit_mask): Likewise.
3431 2024-02-24 Jakub Jelinek <jakub@redhat.com>
3433 PR middle-end/114073
3434 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
3435 VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
3436 types like vector or complex types.
3437 (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
3438 types. Fix up VIEW_CONVERT_EXPR handling. Allow merging
3439 VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
3441 2024-02-23 Robin Dapp <rdapp@ventanamicro.com>
3444 * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
3445 Return false if inner mode is already Pmode.
3446 (rvv_builder::is_all_same_sequence): New function.
3447 (expand_vec_init): Emit broadcast if sequence is all same.
3449 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3452 * config/aarch64/aarch64-early-ra.cc
3453 (early_ra::m_current_region): New member variable.
3454 (early_ra::m_fpr_recency): Likewise.
3455 (early_ra::start_new_region): Bump m_current_region.
3456 (early_ra::allocate_colors): Prefer less recently used registers
3457 in the event of a tie. Add a comment to explain why we prefer(ed)
3458 higher-numbered registers.
3459 (early_ra::find_oldest_color): Prefer less recently used registers
3461 (early_ra::finalize_allocation): Update recency information for
3462 allocated registers.
3463 (early_ra::process_blocks): Initialize m_current_region and
3466 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3469 * config/aarch64/aarch64-early-ra.cc
3470 (early_ra::test_strictness): New enum.
3471 (early_ra::is_chain_candidate): Add a strictness parameter to
3472 control whether only correctness matters, or whether both correctness
3473 and heuristics should be used. Handle multiple levels of equivalence.
3474 (early_ra::find_related_start): Update call accordingly.
3475 (early_ra::strided_polarity_pref): Likewise.
3476 (early_ra::form_chains): Likewise.
3477 (early_ra::try_to_chain_allocnos): Use is_chain_candidate in
3478 correctness mode rather than trying to inline the test.
3480 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
3483 * config/aarch64/aarch64-early-ra.cc
3484 (early_ra::find_related_start): Account for definitions by shared
3485 registers when testing for a single register definition.
3486 (early_ra::accumulate_defs): New function.
3487 (early_ra::record_copy): If A shares B's register, fold A's
3488 definition information into B's. Fold A's use information into B's.
3490 2024-02-23 H.J. Lu <hjl.tools@gmail.com>
3492 * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
3493 if R_X86_64_CODE_6_GOTTPOFF is supported.
3494 * config.in: Regenerated.
3495 * configure: Likewise.
3496 * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
3497 UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
3499 2024-02-23 Richard Earnshaw <rearnsha@arm.com>
3502 * config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
3503 Gate with ARM_HAVE_NEON_<MODE>_ARITH.
3505 2024-02-23 Jakub Jelinek <jakub@redhat.com>
3507 PR rtl-optimization/114054
3508 * expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
3509 temp variable instead of target parameter for result.
3511 2024-02-23 Jakub Jelinek <jakub@redhat.com>
3513 PR tree-optimization/114040
3514 * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
3515 Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
3516 probability from likely to unlikely. When handling the true true
3517 store, first cast to limb_access_type and then to l's type.
3519 2024-02-23 Richard Biener <rguenther@suse.de>
3522 * config.gcc: Add ia64*-*-* to the list of obsoleted targets.
3524 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
3527 * config/riscv/arch-canonicalize: Move to python3
3528 * config/riscv/multilib-generator: Likewise
3530 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
3532 * doc/invoke.texi: Document -mcpu.
3534 2024-02-23 Lulu Cheng <chenglulu@loongson.cn>
3536 * configure: Regenerate.
3537 * configure.ac: Add parameter "--fatal-warnings" to assemble
3538 when checking whether the assemble support conditional branch
3541 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3544 * doc/extend.texi: (__extension__): Remove comments about scope
3545 tokens vs. two colons.
3547 2024-02-22 Andrew Pinski <quic_apinski@quicinc.com>
3549 PR tree-optimization/109804
3550 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
3551 DEMANGLE_COMPONENT_UNNAMED_TYPE.
3553 2024-02-22 Richard Biener <rguenther@suse.de>
3555 PR tree-optimization/114048
3556 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
3557 can also produce -1 off.
3559 2024-02-22 Richard Biener <rguenther@suse.de>
3561 PR tree-optimization/114027
3562 * tree-vect-loop.cc (vecctorizable_reduction): Use optimized
3563 condition reduction classification only for single-element
3566 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3569 * profile-count.h (profile_count::dump): Remove overload with
3570 char * first argument.
3571 * profile-count.cc (profile_count::dump): Change overload with char *
3572 first argument which uses sprintf into the overfload with FILE *
3573 first argument and use fprintf instead. Remove overload which wrapped
3576 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3578 PR tree-optimization/113993
3579 * tree-call-cdce.cc (get_no_error_domain): Handle
3580 BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle
3581 BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
3582 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
3583 the as the F128 suffixed cases, otherwise as non-suffixed ones.
3584 Handle BUILT_IN_{EXP,POW}10L for
3585 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
3588 2024-02-22 Jakub Jelinek <jakub@redhat.com>
3590 PR tree-optimization/114038
3591 * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
3592 loop exit condition if end is divisible by limb_prec.
3594 2024-02-22 YunQiang Su <syq@gcc.gnu.org>
3596 * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
3597 problem of mabi=, mno-flush-func, mexplicit-relocs;
3598 add missing leading - of mbranch-cost option.
3599 * config/mips/mips.opt.urls: Regenerate.
3601 2024-02-22 Kewen Lin <linkw@linux.ibm.com>
3604 * config/rs6000/constraints.md (we): Update internal doc without
3605 referring to option -mpower9-vector.
3606 * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
3608 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
3609 OTHER_P8_VECTOR_MASKS): Merge to ...
3610 (OTHER_VSX_VECTOR_MASKS): ... here.
3611 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
3612 some error message handlings and explicit option mask adjustments on
3613 explicit option power{8,9}-vector conflicting with other options.
3614 (rs6000_print_isa_options): Update comments.
3615 (rs6000_disable_incompatible_switches): Remove power{8,9}-vector
3616 related array items and handlings.
3617 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
3619 * config/rs6000/rs6000.opt: Make option power{8,9}-vector as
3621 * doc/extend.texi: Remove documentation referring to option
3623 * doc/invoke.texi: Remove documentation for option
3624 -mpower{8,9}-vector and adjust some documentation referring to them.
3625 * doc/md.texi: Update documentation for constraint we.
3626 * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
3628 2024-02-22 Pan Li <pan2.li@intel.com>
3631 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
3632 the version to 0.12.
3634 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3636 * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
3638 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3639 Robin Dapp <rdapp.gcc@gmail.com>
3641 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
3642 (generic_ooo_vec_load): Ditto
3643 (generic_ooo_vec_store): Ditto
3644 (generic_ooo_vec_loadstore_seg): Ditto
3645 (generic_ooo_vec_alu): Ditto
3646 (generic_ooo_vec_fcmp): Ditto
3647 (generic_ooo_vec_imul): Ditto
3648 (generic_ooo_vec_fadd): Ditto
3649 (generic_ooo_vec_fmul): Ditto
3650 (generic_ooo_crypto): Ditto
3651 (generic_ooo_perm): Ditto
3652 (generic_ooo_vec_reduction): Ditto
3653 (generic_ooo_vec_ordered_reduction): Ditto
3654 (generic_ooo_vec_idiv): Ditto
3655 (generic_ooo_vec_float_divsqrt): Ditto
3656 (generic_ooo_vec_mask): Ditto
3657 (generic_ooo_vec_vesetvl): Ditto
3658 (generic_ooo_vec_setrm): Ditto
3659 (generic_ooo_vec_readlen): Ditto
3660 * config/riscv/riscv.md: Include generic-vector-ooo
3661 * config/riscv/generic-vector-ooo.md: New file. To here
3663 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
3665 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
3666 (generic_ooo_branch): Ditto
3667 * config/riscv/generic.md (generic_sfb_alu): Ditto
3668 (generic_fmul_half): Ditto
3669 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
3670 * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
3671 (sifive_7_popcount): Ditto
3672 * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
3673 * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
3674 * config/riscv/vector.md: Change rdfrm to fmove
3675 * config/riscv/zc.md: Change pushpop to load/store
3677 2024-02-21 Jonathan Wakely <jwakely@redhat.com>
3679 * doc/invoke.texi (Warning Options): Fix typos.
3681 2024-02-21 David Faust <david.faust@oracle.com>
3683 * config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
3684 * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
3685 * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
3687 2024-02-21 Martin Jambor <mjambor@suse.cz>
3690 * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
3691 initializers in the contructor.
3692 (ipa_node_params::~ipa_node_params): Release lattices as a vector.
3693 * ipa-cp.h: New file.
3694 * ipa-cp.cc: Include sreal.h and ipa-cp.h.
3695 (ipcp_value_source): Move to ipa-cp.h.
3696 (ipcp_value_base): Likewise.
3697 (ipcp_value): Likewise.
3698 (ipcp_lattice): Likewise.
3699 (ipcp_agg_lattice): Likewise.
3700 (ipcp_bits_lattice): Likewise.
3701 (ipcp_vr_lattice): Likewise.
3702 (ipcp_param_lattices): Likewise.
3703 (ipa_get_parm_lattices): Remove assert latticess is non-NULL.
3704 (ipa_value_from_jfunc): Adjust a check for empty lattices.
3705 (ipa_context_from_jfunc): Likewise.
3706 (ipa_agg_value_from_jfunc): Likewise.
3707 (merge_agg_lats_step): Do not memset new aggregate lattices to zero.
3708 (ipcp_propagate_stage): Allocate lattices in a vector as opposed to
3709 just in contiguous memory.
3710 (ipcp_store_vr_results): Adjust a check for empty lattices.
3711 * auto-profile.cc: Include sreal.h and ipa-cp.h.
3712 * cgraph.cc: Likewise.
3713 * cgraphclones.cc: Likewise.
3714 * cgraphunit.cc: Likewise.
3715 * config/aarch64/aarch64.cc: Likewise.
3716 * config/i386/i386-builtins.cc: Likewise.
3717 * config/i386/i386-expand.cc: Likewise.
3718 * config/i386/i386-features.cc: Likewise.
3719 * config/i386/i386-options.cc: Likewise.
3720 * config/i386/i386.cc: Likewise.
3721 * config/rs6000/rs6000.cc: Likewise.
3722 * config/s390/s390.cc: Likewise.
3723 * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
3724 files to be included in gtype-desc.cc.
3725 * gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
3726 * ipa-devirt.cc: Likewise.
3727 * ipa-fnsummary.cc: Likewise.
3728 * ipa-icf.cc: Likewise.
3729 * ipa-inline-analysis.cc: Likewise.
3730 * ipa-inline-transform.cc: Likewise.
3731 * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
3732 * ipa-modref.cc: Include sreal.h and ipa-cp.h.
3733 * ipa-param-manipulation.cc: Likewise.
3734 * ipa-predicate.cc: Likewise.
3735 * ipa-profile.cc: Likewise.
3736 * ipa-prop.cc: Likewise.
3737 (ipa_node_params_t::duplicate): Assert new lattices remain empty
3738 instead of setting them to NULL.
3739 * ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
3740 * ipa-split.cc: Likewise.
3741 * ipa-sra.cc: Likewise.
3742 * ipa-strub.cc: Likewise.
3743 * ipa-utils.cc: Likewise.
3745 * toplev.cc: Likewise.
3746 * tree-ssa-ccp.cc: Likewise.
3747 * tree-ssa-sccvn.cc: Likewise.
3748 * tree-vrp.cc: Likewise.
3750 2024-02-21 Tamar Christina <tamar.christina@arm.com>
3752 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
3755 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3757 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3758 Use aarch64_gen_compare_zero_and_branch rather than emitting
3761 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3763 * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
3764 Remove duplicated call.
3766 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3768 * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
3769 Check that each individual piece of state is shared in the same
3770 way, rather than using an aggregate check for PSTATE.ZA.
3772 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3774 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3775 In the code that commits a lazy save, only zero ZA if the function
3776 has ZA state. Similarly zero ZT0 if the function has ZT0 state.
3778 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3780 * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
3781 directly inserting the associated sequence
3782 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
3785 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3788 * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
3789 fold the SVE allocation into the initial allocation if the
3790 initial allocation includes a VG save.
3792 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
3795 * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
3796 contain jumps even if called after initial RTL expansion.
3797 * mode-switching.cc: Include cfgbuild.h.
3798 (optimize_mode_switching): Allow the sequence returned by the
3799 emit hook to contain internal jumps. Record which blocks
3800 contain such jumps and split the blocks at the end.
3801 * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
3802 non-debug insns when scanning the sequence.
3804 2024-02-21 Tobias Burnus <tburnus@baylibre.com>
3806 * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
3807 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
3809 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
3811 * doc/invoke.texi (-mmcu): Add information about MCU specs.
3813 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
3815 * doc/invoke.texi (-minrt): Clarify that main
3816 must take no arguments.
3818 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
3820 * config/avr/builtins.def: Use function prototypes of given size
3822 * config/avr/avr.cc (avr_init_builtins): Adjust types required
3824 * doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
3826 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
3828 * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
3831 2024-02-20 Will Hawkins <hawkinsw@obs.cr>
3833 * config/bpf/bpf.opt: Add help information for -mcpu.
3835 2024-02-20 Richard Sandiford <richard.sandiford@arm.com>
3838 * config/aarch64/aarch64-passes.def (pass_late_track_speculation):
3840 * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
3842 * config/aarch64/aarch64.md (is_call): New attribute.
3843 (*and<mode>3nr_compare0): Rename to...
3844 (@aarch64_and<mode>3nr_compare0): ...this.
3845 * config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
3846 (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
3847 * config/aarch64/aarch64-speculation.cc: Update file comment to
3848 describe the new late pass.
3849 (aarch64_do_track_speculation): Handle is_call insns like other calls.
3850 (pass_track_speculation): Add an is_late member variable.
3851 (pass_track_speculation::gate): Run the late pass for streaming-
3852 compatible functions and the early pass for other functions.
3853 (make_pass_track_speculation): Update accordingly.
3854 (make_pass_late_track_speculation): New function.
3855 * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
3857 (aarch64_guard_switch_pstate_sm): Use it.
3859 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
3861 * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
3862 Register these builtins with a pointer to uint64_t rather than unsigned
3865 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
3868 * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
3869 Conditionalize on '!TARGET_RDNA2_PLUS'.
3870 * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
3871 (gcn_expand_reduc_scalar):
3872 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
3874 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
3876 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
3877 '__gfx90a__' target CPU definition. Add some safeguards for the future.
3879 2024-02-19 Richard Biener <rguenther@suse.de>
3881 PR rtl-optimization/54052
3882 * rtl-ssa/blocks.cc (function_info::place_phis): Filter
3883 local defs by LR_OUT.
3885 2024-02-19 Jakub Jelinek <jakub@redhat.com>
3887 PR tree-optimization/113967
3888 * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
3889 in condition that @rpos is multiple of vector element size.
3891 2024-02-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3894 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
3895 Suppress vsetvl fusion.
3897 2024-02-18 H.J. Lu <hjl.tools@gmail.com>
3900 * config/i386/i386.cc (ix86_can_use_push2pop2): New.
3901 (ix86_pro_and_epilogue_can_use_push2pop2): Use it.
3902 (ix86_emit_save_regs): Don't generate push2 if
3903 ix86_can_use_push2pop2 return false.
3904 (ix86_expand_epilogue): Don't generate pop2 if
3905 ix86_can_use_push2pop2 return false.
3907 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
3909 * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
3910 Note on complete device support.
3912 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
3914 * doc/extend.texi (AVR Function Attributes): Fuse description
3915 of "signal" and "interrupt" attribute. Link pseudo instruction.
3917 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
3919 * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
3920 symbol type conversions.
3921 (__cacop_d): Likewise.
3922 (__cpucfg): Likewise.
3923 (__asrtle_d): Likewise.
3924 (__asrtgt_d): Likewise.
3925 (__lddir_d): Likewise.
3926 (__ldpte_d): Likewise.
3927 (__crc_w_b_w): Likewise.
3928 (__crc_w_h_w): Likewise.
3929 (__crc_w_w_w): Likewise.
3930 (__crc_w_d_w): Likewise.
3931 (__crcc_w_b_w): Likewise.
3932 (__crcc_w_h_w): Likewise.
3933 (__crcc_w_w_w): Likewise.
3934 (__crcc_w_d_w): Likewise.
3935 (__csrrd_w): Likewise.
3936 (__csrwr_w): Likewise.
3937 (__csrxchg_w): Likewise.
3938 (__csrrd_d): Likewise.
3939 (__csrwr_d): Likewise.
3940 (__csrxchg_d): Likewise.
3941 (__iocsrrd_b): Likewise.
3942 (__iocsrrd_h): Likewise.
3943 (__iocsrrd_w): Likewise.
3944 (__iocsrrd_d): Likewise.
3945 (__iocsrwr_b): Likewise.
3946 (__iocsrwr_h): Likewise.
3947 (__iocsrwr_w): Likewise.
3948 (__iocsrwr_d): Likewise.
3949 (__frecipe_s): Likewise.
3950 (__frecipe_d): Likewise.
3951 (__frsqrte_s): Likewise.
3952 (__frsqrte_d): Likewise.
3954 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
3956 * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
3957 function return value type to unsigned short.
3959 2024-02-16 Edwin Lu <ewlu@rivosinc.com>
3961 * doc/sourcebuild.texi: add scan-assembler-bound
3963 2024-02-16 Jason Merrill <jason@redhat.com>
3965 * gdbhooks.py: Fix regex syntax.
3967 2024-02-16 Richard Biener <rguenther@suse.de>
3969 PR tree-optimization/113895
3970 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
3971 consistency checking when there are out-of-bound array
3972 accesses. Allow -1 off when from an array reference with
3975 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
3978 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
3981 2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3983 * doc/sourcebuild.texi (Effective-Target Keywords, Other
3984 attribugs): Document linker_plugin.
3985 (Require Support): Document dg-require-linker-plugin.
3987 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
3990 * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
3991 * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
3992 (RISCV_MINOR_VERSION_BASE): Ditto.
3993 (RISCV_REVISION_VERSION_BASE): Ditto.
3994 * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
3995 rather than magic number.
3996 * config/riscv/riscv.h (riscv_arch_help): New.
3997 (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
3998 (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
3999 --print-supported-extensions.
4000 * config/riscv/riscv.opt (march=help): New.
4001 (print-supported-extensions): New.
4002 (-print-supported-extensions): New.
4003 * doc/invoke.texi (RISC-V Options): Document -march=help.
4005 2024-02-16 Tejas Belagod <tejas.belagod@arm.com>
4008 * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
4009 for indirect calls with 4 or more arguments in pac-enabled functions.
4011 2024-02-15 David Faust <david.faust@oracle.com>
4013 * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
4014 use ldxb instead of ldxh.
4016 2024-02-15 Jakub Jelinek <jakub@redhat.com>
4018 PR middle-end/113921
4019 * cfgrtl.h (prepend_insn_to_edge): New declaration.
4020 * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
4022 (prepend_insn_to_edge): New function.
4023 * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
4024 insert_insn_on_edge.
4026 2024-02-15 Richard Biener <rguenther@suse.de>
4028 PR tree-optimization/111156
4029 * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
4030 at the pattern stmt if any.
4032 2024-02-15 Georg-Johann Lay <avr@gjlay.de>
4035 * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
4036 * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
4037 * config/avr/avr.cc (avr_adiw_reg_p): New function.
4038 (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
4039 Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
4040 * config/avr/avr.md: Same.
4041 (attr "isa") <tiny, no_tiny>: Remove.
4042 <adiw, no_adiw>: Add.
4043 (define_insn, define_insn_and_split): When an alternative has
4044 constraint "w", then set attribute "isa" to "adiw".
4045 * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
4046 Built-in define __AVR_HAVE_ADIW__.
4047 * doc/invoke.texi (AVR Options): Document it.
4049 2024-02-15 Andrew Stubbs <ams@baylibre.com>
4051 * config/gcn/gcn-valu.md
4052 (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
4053 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
4054 details are supported on RDNA devices.
4056 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
4058 PR middle-end/113508
4059 * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
4060 usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
4061 smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
4062 Add sentence about what the mode m is.
4064 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
4066 * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
4067 smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
4070 2024-02-15 Richard Biener <rguenther@suse.de>
4072 * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
4075 2024-02-15 Jakub Jelinek <jakub@redhat.com>
4077 PR tree-optimization/113567
4078 * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
4079 _BitInt multiplication, division or modulo with
4080 SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
4081 force the affected inputs into a new SSA_NAME.
4083 2024-02-14 Uros Bizjak <ubizjak@gmail.com>
4086 * config/i386/mmx.md (V248FI): New mode iterator.
4088 (vec_shl_<V248FI:mode>): New expander.
4089 (vec_shl_<V24FI_32:mode>): Ditto.
4090 (vec_shr_<V248FI:mode>): Ditto.
4091 (vec_shr_<V24FI_32:mode>): Ditto.
4092 * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
4093 (vec_shr_<V248FI:mode>): Ditto.
4095 2024-02-14 Jan Hubicka <jh@suse.cz>
4097 PR tree-optimization/111054
4098 * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
4100 2024-02-14 Tamar Christina <tamar.christina@arm.com>
4102 * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
4104 2024-02-14 Richard Biener <rguenther@suse.de>
4106 PR tree-optimization/113910
4107 * bitmap.cc (bitmap_hash): Mix the full element "hash" to
4110 2024-02-14 Jakub Jelinek <jakub@redhat.com>
4112 * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
4113 (pp_integer_with_precision): For unsigned ptrdiff_t printing
4114 with u, o or x print ptrdiff_t argument converted to
4115 unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
4117 2024-02-14 Richard Biener <rguenther@suse.de>
4119 PR middle-end/113576
4120 * expr.cc (do_store_flag): For vector bool compares of vectors
4121 with padding zero that.
4122 * dojump.cc (do_compare_and_jump): Likewise.
4124 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
4126 * doc/install.texi (Prerequisites): Update gettext link.
4128 2024-02-13 H.J. Lu <hjl.tools@gmail.com>
4131 * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
4132 Return false if the incoming stack isn't 16-byte aligned.
4134 2024-02-13 Tobias Burnus <tburnus@baylibre.com>
4136 PR middle-end/113904
4137 * omp-general.cc (struct omp_ts_info): Update for splitting of
4138 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
4139 * omp-selectors.h (enum omp_tp_type): Replace
4140 OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
4142 2024-02-13 Monk Chiang <monk.chiang@sifive.com>
4145 * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
4146 recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
4148 2024-02-13 Richard Biener <rguenther@suse.de>
4150 PR tree-optimization/113895
4151 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
4152 offset to discover constant array indices in bits, handle
4153 COMPONENT_REF to bitfields.
4155 2024-02-13 Richard Biener <rguenther@suse.de>
4157 PR tree-optimization/113831
4158 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
4161 2024-02-13 Richard Biener <rguenther@suse.de>
4163 PR tree-optimization/113902
4164 * tree-vect-loop.cc (move_early_exit_stmts): Track
4165 last_seen_vuse for VUSE updating.
4167 2024-02-13 Tamar Christina <tamar.christina@arm.com>
4169 PR tree-optimization/113734
4170 * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
4171 an early break loop as partial.
4173 2024-02-13 Richard Biener <rguenther@suse.de>
4175 PR tree-optimization/113898
4176 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
4177 missing accumulated off adjustment.
4179 2024-02-13 Jakub Jelinek <jakub@redhat.com>
4181 * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
4182 instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
4183 it against UINT_MAX and ULONG_MAX.
4185 2024-02-13 David Malcolm <dmalcolm@redhat.com>
4187 * diagnostic-core.h (emit_diagnostic_valist): Rename overload
4189 (emit_diagnostic_valist_meta): ...this.
4190 * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
4191 (emit_diagnostic_valist_meta): ...this.
4193 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4195 PR tree-optimization/113849
4196 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
4197 fast path for widening casts where !m_upwards_2limb and lhs_type
4198 has precision which is a multiple of limb_prec.
4200 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4203 * attribs.cc (extract_attribute_substring): Remove.
4204 (lookup_scoped_attribute_spec): Don't call it.
4206 2024-02-12 Jakub Jelinek <jakub@redhat.com>
4208 * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
4209 and cast to fmt_size_t instead of %lu and cast to unsigned long.
4211 2024-02-12 Christophe Lyon <christophe.lyon@linaro.org>
4213 * Makefile.in: Add no-info dependency.
4214 * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
4216 * configure: Regenerate.
4218 2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
4221 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
4222 available to all sub-targets.
4223 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
4224 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
4226 2024-02-12 Richard Biener <rguenther@suse.de>
4228 PR tree-optimization/113831
4229 PR tree-optimization/108355
4230 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
4231 we see variable array indices and get_ref_base_and_extent
4232 can resolve those to constants fix up the ops to constants
4234 (ao_ref_init_from_vn_reference): Use 'off' member for
4235 ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
4236 (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
4238 2024-02-12 Pan Li <pan2.li@intel.com>
4240 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
4241 Replace args to arguments for misspelled term.
4243 2024-02-12 Georg-Johann Lay <avr@gjlay.de>
4246 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
4247 <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
4248 when not linked with -mrodata-in-ram.
4250 2024-02-12 Richard Biener <rguenther@suse.de>
4252 PR tree-optimization/113863
4253 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4254 Record crossed virtual PHIs.
4255 * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
4258 2024-02-10 Marek Polacek <polacek@redhat.com>
4263 * doc/invoke.texi: Document -Wtemplate-id-cdtor.
4265 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4267 * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
4268 computation of idx for i == 4 of bitint_prec_huge.
4270 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4272 PR middle-end/110754
4273 * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
4274 decls create PARM_DECL with pointer to original type, set
4275 TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
4276 DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
4277 (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
4278 wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
4279 (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
4280 of the var as argument.
4282 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4284 * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
4285 size_t and precision 4 for ptrdiff_t. Formatting fix.
4286 (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers.
4288 (test_pp_format): Test t and z modifiers.
4289 * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
4291 2024-02-10 Jakub Jelinek <jakub@redhat.com>
4293 * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
4294 sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
4295 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
4296 * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
4297 and casts to fmt_size_t instead of "%ld" and casts to long.
4298 (print_value_expr_statistics, print_type_hash_statistics): Likewise.
4299 * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
4300 instead of "%lu" and casts to unsigned long.
4301 * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
4303 * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
4304 and casts to fmt_size_t instead of "%ld" and casts to long.
4305 * cfgexpand.cc (dump_stack_var_partition): Use
4306 HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
4307 and casts to unsigned long.
4308 * gengtype.cc (adjust_field_rtx_def): Likewise.
4309 * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
4310 and casts to fmt_size_t instead of "%ld" and casts to long.
4311 * postreload-gcse.cc (dump_hash_table): Likewise.
4312 * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
4313 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
4314 (ggc_internal_alloc, ggc_free): Likewise.
4315 * genpreds.cc (write_lookup_constraint_1): Likewise.
4316 (write_insn_constraint_len): Likewise.
4317 * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
4318 and casts to fmt_size_t instead of "%ld" and casts to long.
4319 * varasm.cc (output_constant_pool_contents): Use
4320 HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
4321 * var-tracking.cc (dump_var): Likewise.
4323 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4325 PR tree-optimization/113783
4326 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
4327 through VIEW_CONVERT_EXPR for final cast checks. Handle
4328 VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
4330 (gimple_lower_bitint): Don't merge mergeable operations or other
4331 casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
4332 * expr.cc (expand_expr_real_1): Don't use convert_modes if either
4335 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4337 * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
4338 HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
4339 HOST_SIZE_T_PRINT_HEX_PURE): Define.
4340 * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting
4343 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4345 PR middle-end/113415
4346 * cfgexpand.cc (expand_asm_stmt): For asm goto, use
4347 duplicate_insn_chain to duplicate after_rtl_seq sequence instead
4348 of hand written loop with emit_insn of copy_insn and emit original
4349 after_rtl_seq on the last edge.
4351 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4353 PR tree-optimization/113818
4354 * gimple-lower-bitint.cc (add_eh_edge): New function.
4355 (bitint_large_huge::handle_load,
4356 bitint_large_huge::lower_mergeable_stmt,
4357 bitint_large_huge::lower_muldiv_stmt): Use it.
4359 2024-02-09 Jakub Jelinek <jakub@redhat.com>
4361 PR tree-optimization/113774
4362 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
4363 emit any comparison if m_first and low + 1 is equal to
4364 m_upwards_2limb, simplify condition for that. If not
4365 single_comparison, not m_first and we can prove that the idx <= low
4366 comparison will be always true, emit instead of idx <= low
4367 comparison low <= low such that cfg cleanup will optimize it at
4368 the end of the pass.
4370 2024-02-08 Aldy Hernandez <aldyh@redhat.com>
4372 PR tree-optimization/113735
4373 * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
4376 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4378 * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
4379 (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
4381 2024-02-08 H.J. Lu <hjl.tools@gmail.com>
4385 * config/i386/constraints.md: List all constraints with j prefix.
4386 (j>): Change auto-dec to auto-inc in documentation.
4387 (je): Changed to a memory constraint with APX NDD TLS operand
4389 (jM): New memory constraint for APX NDD instructions.
4391 * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
4392 * config/i386/i386.cc (x86_poff_operand_p): Likewise.
4393 * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
4394 (*add<mode>_1[SWI48]): Use je and jM.
4395 (addsi_1_zext): Use jM.
4396 (*addv<dwi>4_doubleword_1[DWI]): Likewise.
4397 (*sub<mode>_1[SWI]): Use jM.
4398 (@add<mode>3_cc_overflow_1[SWI]): Likewise.
4399 (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
4400 (*and<dwi>3_doubleword): Likewise.
4402 (*andsi_1_zext): Likewise.
4403 (*and<mode>_1[SWI24]): Likewise.
4404 (*<code><dwi>3_doubleword[any_or]): Use rjO
4405 (*code<mode>_1[any_or SWI248]): Use jM.
4406 (*<code>si_1_zext[zero_extend + any_or]): Likewise.
4407 * config/i386/predicates.md (apx_ndd_memory_operand): New.
4408 (apx_ndd_add_memory_operand): Likewise.
4410 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4413 * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
4414 * doc/avr-mmcu.texi: Rebuild.
4416 2024-02-08 Tamar Christina <tamar.christina@arm.com>
4418 PR tree-optimization/113808
4419 * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
4420 value cross iterations.
4422 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4424 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
4425 defines __AVR_PM_BASE_ADDRESS__ if the core has it.
4427 2024-02-08 Richard Biener <rguenther@suse.de>
4429 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4430 Revert last change to dr_may_alias_p.
4432 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
4434 * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
4435 cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
4436 Remove spec asm_misc.
4437 * config/avr/specs.h: Same.
4439 2024-02-08 Pan Li <pan2.li@intel.com>
4442 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
4443 sure the c.arg_num is >= 2 before checking.
4444 (struct build_frm_base): Ditto.
4445 (struct narrow_alu_def): Ditto.
4447 2024-02-07 Richard Biener <rguenther@suse.de>
4449 PR tree-optimization/113796
4450 * tree-if-conv.cc (combine_blocks): Wipe range-info before
4451 replacing PHIs and inserting predicates.
4453 2024-02-07 Roger Sayle <roger@nextmovesoftware.com>
4454 Uros Bizjak <ubizjak@gmail.com>
4457 * config/i386/i386-features.cc (timode_convert_cst): New helper
4458 function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
4460 (timode_scalar_chain::convert_op): Use timode_convert_cst.
4461 (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
4462 Use timode_convert_cst.
4464 2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com>
4466 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
4467 * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
4468 (AARCH64_FL_DEBUGv8p9): Likewise.
4469 (AARCH64_FL_FGT2): Likewise.Likewise.
4470 (AARCH64_FL_ITE): Likewise.
4471 (AARCH64_FL_PFAR): Likewise.
4472 (AARCH64_FL_PMUv3_ICNTR): Likewise.
4473 (AARCH64_FL_PMUv3_SS): Likewise.
4474 (AARCH64_FL_PMUv3p9): Likewise.
4475 (AARCH64_FL_RASv2): Likewise.
4476 (AARCH64_FL_S1PIE): Likewise.
4477 (AARCH64_FL_S1POE): Likewise.
4478 (AARCH64_FL_S2PIE): Likewise.
4479 (AARCH64_FL_S2POE): Likewise.
4480 (AARCH64_FL_SCTLR2): Likewise.
4481 (AARCH64_FL_SEBEP): Likewise.
4482 (AARCH64_FL_SPE_FDS): Likewise.
4483 (AARCH64_FL_TCR2): Likewise.
4485 2024-02-07 Richard Biener <rguenther@suse.de>
4487 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
4488 Only check whether reads are in-bound in places that are not safe.
4489 Fix dependence check. Add missing newline. Clarify comments.
4491 2024-02-07 Tamar Christina <tamar.christina@arm.com>
4493 PR tree-optimization/113750
4494 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
4495 for single predecessor when doing early break vect.
4496 * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
4499 2024-02-07 Tamar Christina <tamar.christina@arm.com>
4501 PR tree-optimization/113731
4502 * gimple-iterator.cc (gsi_move_before): Take new parameter for update
4504 * gimple-iterator.h (gsi_move_before): Default new param to
4506 * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
4509 2024-02-07 Jakub Jelinek <jakub@redhat.com>
4511 PR tree-optimization/113756
4512 * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
4513 use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
4514 of lh_bits value and mask.
4516 2024-02-07 Jakub Jelinek <jakub@redhat.com>
4518 PR tree-optimization/113753
4519 * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
4520 UNSIGNED rather than SIGNED. If high or needs_overflow and prec is
4521 not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
4522 so that they start with r[half_blocks_needed] lowest bit. Fix up
4523 computation of top mask for SIGNED.
4525 2024-02-07 Pan Li <pan2.li@intel.com>
4528 * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
4529 the signature of func.
4530 * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
4531 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
4532 overloaded func with empty args error.
4534 2024-02-06 H.J. Lu <hjl.tools@gmail.com>
4537 * config/i386/i386.cc (x86_64_select_profile_regnum): Return
4538 R10_REG after sorry.
4540 2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com>
4542 * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
4543 Move before new caller, and add ".default" suffix.
4544 (get_suffixed_assembler_name): New.
4545 (make_resolver_func): Use get_suffixed_assembler_name.
4546 (aarch64_generate_version_dispatcher_body): Redo name mangling.
4548 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4551 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
4552 element from std::pair<unsigned int, char> to an unnamed struct.
4553 Adjust uses of tile range variable.
4555 2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4557 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
4558 (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
4560 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4563 * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
4564 reset maxlen to sizetype maximum.
4566 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4568 PR tree-optimization/113736
4569 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
4570 var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
4572 2024-02-06 Jakub Jelinek <jakub@redhat.com>
4574 PR tree-optimization/113759
4575 * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
4576 or from_unsignedN differs from properties of typeN, update typeN
4577 to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not
4578 uselessly convertible to typeN, convert it using fold_convert or
4579 build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
4580 (convert_plusminus_to_widen): Likewise.
4582 2024-02-06 Tejas Belagod <tejas.belagod@arm.com>
4585 * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
4586 vector structure modes correctly.
4588 2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu>
4590 * config/riscv/thead.cc (th_print_operand_address): Fix compiler
4593 2024-02-05 H.J. Lu <hjl.tools@gmail.com>
4596 * config/i386/i386.cc (x86_64_select_profile_regnum): New.
4597 (x86_function_profiler): Call x86_64_select_profile_regnum to
4598 get a scratch register for large model profiling.
4600 2024-02-05 Richard Ball <richard.ball@arm.com>
4602 * config/arm/arm.cc (arm_output_mi_thunk): Emit
4603 insn for bti_c when bti is enabled.
4605 2024-02-05 Xi Ruoyao <xry111@xry111.site>
4607 * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
4610 2024-02-05 Xi Ruoyao <xry111@xry111.site>
4612 * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
4613 (neg<mode>2): Change the mode iterator from MSA to IMSA because
4614 in FP arithmetic we cannot use (0 - x) for -x.
4615 (neg<mode>2): New define_insn to implement FP vector negation,
4616 using a bnegi instruction to negate the sign bit.
4618 2024-02-05 Richard Biener <rguenther@suse.de>
4620 PR tree-optimization/113707
4621 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
4622 checking the avail set treat out-of-region defines as
4625 2024-02-05 Richard Biener <rguenther@suse.de>
4627 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
4628 the default mode when building a pointer.
4630 2024-02-05 Jakub Jelinek <jakub@redhat.com>
4632 PR tree-optimization/113737
4633 * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
4634 has just a single label, remove it and make single successor edge
4637 2024-02-05 Jakub Jelinek <jakub@redhat.com>
4640 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
4641 Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
4644 2024-02-05 Richard Biener <rguenther@suse.de>
4647 * config/i386/i386-expand.cc
4648 (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
4649 Use a new pseudo for the skipped number of bytes.
4651 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
4653 * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
4654 * doc/invoke.texi (RISC-V Options): Add sifive-p450,
4657 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
4659 * config/riscv/riscv.md: Include sifive-p400.md.
4660 * config/riscv/sifive-p400.md: New file.
4661 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
4662 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
4664 * config/riscv/riscv.cc (sifive_p400_tune_info): New.
4665 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
4666 * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
4668 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4670 * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
4671 Add missing ":SI" to the match_operator.
4673 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4675 * config/xtensa/xtensa.md (SHI): New mode iterator.
4676 (2 split patterns related to constsynth):
4677 Change to also accept HImode operands.
4679 2024-02-04 Jeff Law <jlaw@ventanamicro.com>
4681 * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
4684 2024-02-04 Xi Ruoyao <xry111@xry111.site>
4686 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
4688 * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
4689 (elmsgnbit): Likewise.
4690 (neg<mode:FVEC>2): New define_insn.
4691 * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
4692 are now instantiated in simd.md.
4694 2024-02-04 Xi Ruoyao <xry111@xry111.site>
4696 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
4697 use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
4700 2024-02-04 Li Wei <liwei@loongson.cn>
4702 * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
4703 (loongarch_expand_vselect_vconcat): Ditto.
4704 (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
4705 all 128-bit constant permutation situations.
4706 (loongarch_expand_lsx_shuffle): Adjust and rename function name.
4707 (loongarch_is_imm_set_shuffle): Renamed function name.
4708 (loongarch_expand_vec_perm_even_odd): Function forward declaration.
4709 (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
4710 extract-even and extract-odd permutations.
4711 (loongarch_is_odd_extraction): Delete.
4712 (loongarch_is_even_extraction): Ditto.
4713 (loongarch_expand_vec_perm_const): Adjust.
4715 2024-02-03 Jakub Jelinek <jakub@redhat.com>
4717 PR middle-end/113722
4718 * wide-int.cc (wi::bswap_large): Rename third argument from
4719 len to xlen and adjust use in safe_uhwi. Add len variable, set
4720 it to BLOCKS_NEEDED (precision) and use it for clearing of val
4721 and as canonize argument. Clear val using memset instead of
4724 2024-02-03 Jakub Jelinek <jakub@redhat.com>
4726 * ggc-common.cc (gt_pch_save): Allow addr to be equal to
4727 mmi.preferred_base + mmi.size - sizeof (void *).
4729 2024-02-03 Xi Ruoyao <xry111@xry111.site>
4731 * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
4732 * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
4733 the ODR-violating locale declaration.
4735 2024-02-02 Tamar Christina <tamar.christina@arm.com>
4737 PR tree-optimization/113588
4738 PR tree-optimization/113467
4739 * tree-vect-data-refs.cc
4740 (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
4741 (vect_analyze_early_break_dependences): Update comments.
4743 2024-02-02 John David Anglin <danglin@gcc.gnu.org>
4746 * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
4747 and PA_BUILTIN_SET_FPSR builtins.
4748 * (pa_builtins_icode): Declare.
4749 * (def_builtin, pa_fpu_init_builtins): New.
4750 * (pa_init_builtins): Initialize FPU builtins.
4751 * (pa_builtin_decl, pa_expand_builtin_1): New.
4752 * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
4753 PA_BUILTIN_SET_FPSR builtins.
4754 * (pa_atomic_assign_expand_fenv): New.
4755 * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
4757 (get_fpsr, put_fpsr): New expanders.
4758 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
4761 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4764 * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
4766 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
4768 * doc/extend.texi (Common Type Attributes): Fix typo in
4769 description of hardbool.
4771 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4773 PR tree-optimization/113692
4774 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
4775 from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
4778 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4780 PR middle-end/113699
4781 * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
4782 uninitialized large/huge _BitInt SSA_NAME inputs.
4784 2024-02-02 Jakub Jelinek <jakub@redhat.com>
4786 PR middle-end/113705
4787 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
4788 around wi::to_wide in order to compare value in prec precision.
4790 2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
4793 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4795 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
4797 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4799 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
4801 2024-02-02 Pan Li <pan2.li@intel.com>
4803 * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
4804 (riscv_pass_by_reference): Ditto.
4805 (riscv_fntype_abi): Ditto.
4807 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4809 * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
4810 (pre_vsetvl::cleaup): Remove vsetvl_pre.
4811 (pre_vsetvl::remove_vsetvl_pre_insns): New function.
4813 2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
4815 * config/loongarch/larchintrin.h
4816 (__frecipe_s): Update function return type.
4817 (__frecipe_d): Ditto.
4818 (__frsqrte_s): Ditto.
4819 (__frsqrte_d): Ditto.
4821 2024-02-02 Li Wei <liwei@loongson.cn>
4823 * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
4824 (loongarch_vector_costs::add_stmt_cost): Adjust.
4826 2024-02-02 Xi Ruoyao <xry111@xry111.site>
4828 * config/loongarch/loongarch.md (unspec): Add
4829 UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
4830 (la_pcrel64_two_parts): New define_insn.
4831 * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
4832 typo in the comment.
4833 (loongarch_call_tls_get_addr): If -mcmodel=extreme
4834 -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
4835 addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
4836 note to allow CSE addressing __tls_get_addr.
4837 (loongarch_legitimize_tls_address): If -mcmodel=extreme
4838 -mexplicit-relocs={always,auto}, address TLS IE symbols with
4839 la_pcrel64_two_parts.
4840 (loongarch_split_symbol): If -mcmodel=extreme
4841 -mexplicit-relocs={always,auto}, address symbols with
4842 la_pcrel64_two_parts.
4843 (loongarch_output_mi_thunk): Clean up unreachable code. If
4844 -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
4845 thunks with la_pcrel64_two_parts.
4847 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4849 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
4850 Add support for call36.
4852 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4854 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
4855 When the code model of the symbol is extreme and -mexplicit-relocs=auto,
4856 the macro instruction loading symbol address is not applicable.
4857 (loongarch_call_tls_get_addr): Adjust code.
4858 (loongarch_legitimize_tls_address): Likewise.
4860 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4862 * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
4863 Add function declaration.
4864 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
4865 For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
4867 (loongarch_load_tls): Added macro support in extreme mode.
4868 (loongarch_call_tls_get_addr): Likewise.
4869 (loongarch_legitimize_tls_address): Likewise.
4870 (loongarch_force_address): Likewise.
4871 (loongarch_legitimize_move): Likewise.
4872 (loongarch_output_mi_thunk): Likewise.
4873 (loongarch_option_override_internal): Remove the code that detects
4874 explicit relocs status.
4875 (loongarch_handle_model_attribute): Likewise.
4876 * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
4877 * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
4878 (symbolic_off64_or_reg_operand): Likewise.
4880 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4882 * config/loongarch/loongarch.cc (loongarch_load_tls):
4883 Load all types of tls symbols through one function.
4884 (loongarch_got_load_tls_gd): Delete.
4885 (loongarch_got_load_tls_ld): Delete.
4886 (loongarch_got_load_tls_ie): Delete.
4887 (loongarch_got_load_tls_le): Delete.
4888 (loongarch_call_tls_get_addr): Modify the called function name.
4889 (loongarch_legitimize_tls_address): Likewise.
4890 * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
4891 (@load_tls<mode>): New template.
4892 (@got_load_tls_ld<mode>): Delete.
4893 (@got_load_tls_le<mode>): Delete.
4894 (@got_load_tls_ie<mode>): Delete.
4896 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
4898 * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
4899 (loongarch_legitimize_address): Add logical transformation code.
4901 2024-02-01 Marek Polacek <polacek@redhat.com>
4903 * doc/invoke.texi: Update -Wdangling-reference documentation.
4905 2024-02-01 Uros Bizjak <ubizjak@gmail.com>
4908 * config/i386/i386.md (*cmp<dwi>_doubleword):
4909 Do not force SUBREG pieces to pseudos.
4911 2024-02-01 John David Anglin <danglin@gcc.gnu.org>
4913 * config/pa/pa.md (atomic_storedi_1): Fix bug in
4916 2024-02-01 Georg-Johann Lay <avr@gjlay.de>
4918 * config/avr/avr.cc: Tabify.
4920 2024-02-01 Richard Ball <richard.ball@arm.com>
4922 PR tree-optimization/111268
4923 * tree-vect-slp.cc (vectorizable_slp_permutation_1):
4924 Add variable-length check for vector input arguments
4927 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
4929 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
4930 hard-code number of SGPR/VGPR/AVGPR registers.
4931 * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
4932 SGPR/VGPR/AVGPR registers.
4934 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
4936 * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
4937 attribute, and include sifive-p600.md.
4938 * config/riscv/generic-ooo.md: Update type attribute.
4939 * config/riscv/generic.md: Update type attribute.
4940 * config/riscv/sifive-7.md: Update type attribute.
4941 * config/riscv/sifive-p600.md: New file.
4942 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
4943 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
4945 * config/riscv/riscv.cc (sifive_p600_tune_info): New.
4946 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
4947 * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
4949 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
4951 * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
4952 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
4953 * config/riscv/riscv.opt: New macro for 7 new unprivileged
4955 * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
4956 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
4958 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4960 * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
4961 -static-libasan. Add missing whitespace.
4963 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
4965 * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
4966 (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
4967 Don't 'define_constants'.
4969 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
4971 * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
4973 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
4975 * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
4976 [TARGET_RDNA3]: Adjust.
4978 2024-02-01 Richard Biener <rguenther@suse.de>
4980 PR tree-optimization/113693
4981 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
4982 data when available.
4984 2024-02-01 Jakub Jelinek <jakub@redhat.com>
4985 Jason Merrill <jason@redhat.com>
4988 * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
4989 on variables which were promoted to TREE_STATIC.
4991 2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
4992 Richard Biener <rguenther@suse.de>
4995 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
4996 information via tree_non_zero_bits to check if this operand
4997 is suitably extended for a widening (or highpart) multiplication.
4998 (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
4999 isn't already of the claimed type.
5001 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5004 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5006 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
5007 (generic_ooo_branch): ditto
5008 * config/riscv/generic.md (generic_sfb_alu): ditto
5009 (generic_fmul_half): ditto
5010 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
5011 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
5012 (sifive_7_popcount): ditto
5013 * config/riscv/vector.md: change rdfrm to fmove
5014 * config/riscv/zc.md: change pushpop to load/store
5016 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5019 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5020 Robin Dapp <rdapp.gcc@gmail.com>
5022 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
5023 (generic_ooo_vec_load): ditto
5024 (generic_ooo_vec_store): ditto
5025 (generic_ooo_vec_loadstore_seg): ditto
5026 (generic_ooo_vec_alu): ditto
5027 (generic_ooo_vec_fcmp): ditto
5028 (generic_ooo_vec_imul): ditto
5029 (generic_ooo_vec_fadd): ditto
5030 (generic_ooo_vec_fmul): ditto
5031 (generic_ooo_crypto): ditto
5032 (generic_ooo_perm): ditto
5033 (generic_ooo_vec_reduction): ditto
5034 (generic_ooo_vec_ordered_reduction): ditto
5035 (generic_ooo_vec_idiv): ditto
5036 (generic_ooo_vec_float_divsqrt): ditto
5037 (generic_ooo_vec_mask): ditto
5038 (generic_ooo_vec_vesetvl): ditto
5039 (generic_ooo_vec_setrm): ditto
5040 (generic_ooo_vec_readlen): ditto
5041 * config/riscv/riscv.md: include generic-vector-ooo
5042 * config/riscv/generic-vector-ooo.md: New file. to here
5044 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5047 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5049 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
5051 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5053 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
5055 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5056 Robin Dapp <rdapp.gcc@gmail.com>
5058 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
5059 (generic_ooo_vec_load): ditto
5060 (generic_ooo_vec_store): ditto
5061 (generic_ooo_vec_loadstore_seg): ditto
5062 (generic_ooo_vec_alu): ditto
5063 (generic_ooo_vec_fcmp): ditto
5064 (generic_ooo_vec_imul): ditto
5065 (generic_ooo_vec_fadd): ditto
5066 (generic_ooo_vec_fmul): ditto
5067 (generic_ooo_crypto): ditto
5068 (generic_ooo_perm): ditto
5069 (generic_ooo_vec_reduction): ditto
5070 (generic_ooo_vec_ordered_reduction): ditto
5071 (generic_ooo_vec_idiv): ditto
5072 (generic_ooo_vec_float_divsqrt): ditto
5073 (generic_ooo_vec_mask): ditto
5074 (generic_ooo_vec_vesetvl): ditto
5075 (generic_ooo_vec_setrm): ditto
5076 (generic_ooo_vec_readlen): ditto
5077 * config/riscv/riscv.md: include generic-vector-ooo
5078 * config/riscv/generic-vector-ooo.md: New file. to here
5080 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
5082 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
5083 (generic_ooo_branch): ditto
5084 * config/riscv/generic.md (generic_sfb_alu): ditto
5085 (generic_fmul_half): ditto
5086 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
5087 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
5088 (sifive_7_popcount): ditto
5089 * config/riscv/vector.md: change rdfrm to fmove
5090 * config/riscv/zc.md: change pushpop to load/store
5092 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
5095 * config/aarch64/aarch64-simd.md (split for movv8di):
5096 For strict aligned mode, use DImode instead of TImode.
5098 2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
5100 PR middle-end/113607
5101 * match.pd: Make sure else values match when folding a
5102 vec_cond into a conditional operation.
5104 2024-01-31 Marek Polacek <polacek@redhat.com>
5106 * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
5108 2024-01-31 Tamar Christina <tamar.christina@arm.com>
5109 Matthew Malcomson <matthew.malcomson@arm.com>
5112 * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
5114 * builtins.cc (expand_builtin): Include HWASAN when checking for
5117 2024-01-31 Richard Biener <rguenther@suse.de>
5119 PR middle-end/110176
5120 * match.pd (zext (bool) <= (int) 4294967295u): Make sure
5121 to match INTEGER_CST only without outstanding conversion.
5123 2024-01-31 Alex Coplan <alex.coplan@arm.com>
5126 * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
5127 V16QImode for the full 16-byte FPR saves in the vector PCS case.
5129 2024-01-31 Richard Biener <rguenther@suse.de>
5131 PR tree-optimization/111444
5132 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
5133 vn_reference_lookup_2 when optimistically skipping may-defs.
5135 2024-01-31 Richard Biener <rguenther@suse.de>
5137 PR tree-optimization/113630
5138 * tree-ssa-pre.cc (compute_avail): Avoid registering a
5139 reference with a representation with not matching base
5142 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5144 PR rtl-optimization/113656
5145 * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
5146 <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
5148 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5151 * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
5152 with BLKmode are larger than DWARF2_ADDR_SIZE.
5154 2024-01-31 Jakub Jelinek <jakub@redhat.com>
5156 PR tree-optimization/113639
5157 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
5158 For VIEW_CONVERT_EXPR set rhs1 to its operand.
5160 2024-01-31 Richard Biener <rguenther@suse.de>
5162 PR tree-optimization/113670
5163 * tree-vect-data-refs.cc (vect_check_gather_scatter):
5164 Make sure we can take the address of the reference base.
5166 2024-01-31 Georg-Johann Lay <avr@gjlay.de>
5168 * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
5169 ATA5835, ATtiny64AUTO, ATA5700M322.
5170 * doc/avr-mmcu.texi: Rebuild.
5172 2024-01-31 Alexandre Oliva <oliva@adacore.com>
5175 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
5178 2024-01-31 Alexandre Oliva <oliva@adacore.com>
5180 PR middle-end/112917
5181 PR middle-end/113100
5182 * builtins.cc (expand_builtin_stack_address): Use
5183 STACK_ADDRESS_OFFSET.
5184 * doc/extend.texi (__builtin_stack_address): Adjust.
5185 * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
5186 * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
5187 * doc/tm.texi: Rebuilt.
5189 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5192 * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
5193 (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
5194 (pre_vsetvl::compute_transparent): New function.
5195 (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
5197 2024-01-30 Fangrui Song <maskray@google.com>
5200 * config/i386/constraints.md: Define constraint "Ws".
5201 * doc/md.texi: Document it.
5203 2024-01-30 Marek Polacek <polacek@redhat.com>
5207 * doc/invoke.texi: Update -Wdangling-reference description.
5209 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5211 * config/xtensa/constraints.md (R, T, U):
5212 Change define_constraint to define_memory_constraint.
5213 * config/xtensa/predicates.md (move_operand): Don't check that a
5214 constant pool operand size is a multiple of UNITS_PER_WORD.
5215 * config/xtensa/xtensa.cc
5216 (xtensa_lra_p, TARGET_LRA_P): Remove.
5217 (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
5218 clause as it can no longer be true.
5219 (fixup_subreg_mem): Drop function.
5220 (xtensa_output_integer_literal_parts): Consider 16-bit wide
5222 (xtensa_legitimate_constant_p): Add short-circuit path for
5223 integer load instructions. Don't check that mode size is
5224 at least UNITS_PER_WORD.
5225 * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
5226 rather reload_in_progress and reload_completed.
5227 (doloop_end): Drop operand 2.
5228 (movhi_internal): Add alternative loading constant from a
5230 (define_split for DI register_operand): Don't limit to
5231 !TARGET_AUTO_LITPOOLS.
5232 * config/xtensa/xtensa.opt (mlra): Change to no effect.
5234 2024-01-30 Pan Li <pan2.li@intel.com>
5236 * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
5237 calculate the gpr count required by vls mode.
5238 (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
5239 (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
5241 (riscv_get_arg_info): Add vls mode handling.
5242 (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
5244 2024-01-30 Richard Biener <rguenther@suse.de>
5246 PR tree-optimization/113659
5247 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
5248 Handle main exit without virtual use.
5250 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
5252 * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
5254 2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
5257 * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
5258 (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
5259 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
5260 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
5261 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
5262 * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
5264 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
5267 * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
5268 Mark all registers that occur in addresses as needing a GPR.
5270 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
5273 * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
5274 the containing insn as an extra parameter. Reset debug instructions
5275 if they reference a register that is no longer used by real insns.
5276 (early_ra::apply_allocation): Update calls accordingly.
5278 2024-01-30 Jakub Jelinek <jakub@redhat.com>
5280 PR tree-optimization/113603
5281 * tree-ssa-strlen.cc (strlen_pass::handle_store): After
5282 count_nonzero_bytes call refetch si using get_strinfo in case it
5283 has been unshared in the meantime.
5285 2024-01-30 Jakub Jelinek <jakub@redhat.com>
5287 PR middle-end/101195
5288 * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
5289 fit into unsigned HOST_WIDE_INT, return constm1_rtx.
5291 2024-01-30 Jin Ma <jinma@linux.alibaba.com>
5293 * config/riscv/thead.cc (th_print_operand_address): Change %ld
5296 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
5297 Manolis Tsamis <manolis.tsamis@vrull.eu>
5298 Philipp Tomsich <philipp.tomsich@vrull.eu>
5300 * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
5301 * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
5303 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
5304 Call on framework moved later.
5306 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
5308 * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
5309 instruction in naked function epilogues.
5311 2024-01-29 YunQiang Su <syq@gcc.gnu.org>
5314 * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
5315 gcc_cv_as_mips_explicit_relocs.
5316 * configure: Regnerated.
5318 2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
5321 * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
5322 Correct generated RTL.
5323 (arm_rev16si2_alt1): Correctly handle conditional execution.
5324 (arm_rev16si2_alt2): Likewise.
5326 2024-01-29 Richard Biener <rguenther@suse.de>
5328 PR middle-end/113622
5329 * expr.cc (expand_assignment): Spill hard registers if
5330 we index them with a variable offset.
5332 2024-01-29 Richard Biener <rguenther@suse.de>
5334 PR middle-end/113622
5335 * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
5336 Also allow DECL_HARD_REGISTER variables.
5338 2024-01-29 Alex Coplan <alex.coplan@arm.com>
5341 * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
5342 Use iterate_safely when iterating over debug uses.
5343 (fixup_debug_uses): Likewise.
5344 (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
5345 over nondebug insns instead of manually maintaining the next insn.
5346 * iterator-utils.h (class safe_iterator): New.
5347 (iterate_safely): New.
5349 2024-01-29 H.J. Lu <hjl.tools@gmail.com>
5352 * config/i386/i386-options.cc (ix86_set_func_type): Save
5353 callee-saved registers in noreturn functions for -O0/-Og.
5355 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5358 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
5359 define for !TARGET_RDNA2_PLUS.
5361 2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
5364 * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
5365 workaround for right shifts.
5366 (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
5367 (vect_determine_precisions_from_range): Be more selective about
5368 which codes can be narrowed based on their input and output ranges.
5369 For shifts, require at least one more bit of precision than the
5370 maximum shift amount.
5372 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5374 * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
5376 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5378 * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
5379 but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
5382 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
5385 * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
5386 (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
5387 (SET_SRAM_ECC_UNSET): ... this.
5388 (copy_early_debug_info): Remove gfx900 special case, now handled as
5389 part of the generic handling.
5390 (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
5392 2024-01-29 Jakub Jelinek <jakub@redhat.com>
5394 PR tree-optimization/110603
5395 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
5396 setting of pdata->maxlen to vr.upper_bound (which is unconditionally
5397 overwritten anyway). Avoid creating invalid range with minlen
5398 larger than maxlen. Formatting fix.
5400 2024-01-29 Richard Biener <rguenther@suse.de>
5403 * tree-inline.cc (initialize_inlined_parameters): Reverse
5404 the decl chain of inlined parameters.
5406 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
5408 * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
5409 alignment of CFString constants by setting DECL_USER_ALIGN.
5411 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
5412 Jakub Jelinek <jakub@redhat.com>
5415 * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
5416 and BUILT_IN_GCC_NESTED_PTR_DELETED.
5417 * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
5418 BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
5419 rename the library fallbacks to __gcc_nested_func_ptr_created and
5420 __gcc_nested_func_ptr_deleted.
5421 * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
5422 and __gcc_nested_func_ptr_deleted.
5423 * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
5424 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
5425 * tree.cc (build_common_builtin_nodes): Build the
5426 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
5427 builtins only for non-explicit.
5429 2024-01-28 YunQiang Su <syq@gcc.gnu.org>
5431 * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
5433 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
5436 * config/i386/i386-options.cc (ix86_set_func_type): Don't
5437 save and restore callee saved registers for a noreturn function
5438 with nothrow or compiled with -fno-exceptions.
5440 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
5444 * config/i386/i386-expand.cc (ix86_expand_call): Replace
5445 no_caller_saved_registers check with call_saved_registers check.
5446 Clobber all registers that are not used by the callee with
5447 no_callee_saved_registers attribute.
5448 * config/i386/i386-options.cc (ix86_set_func_type): Set
5449 call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
5450 noreturn function. Disallow no_callee_saved_registers with
5451 interrupt or no_caller_saved_registers attributes together.
5452 (ix86_set_current_function): Replace no_caller_saved_registers
5453 check with call_saved_registers check.
5454 (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
5455 (ix86_handle_call_saved_registers_attribute): This.
5456 (ix86_gnu_attributes): Add
5457 ix86_handle_call_saved_registers_attribute.
5458 * config/i386/i386.cc (ix86_conditional_register_usage): Replace
5459 no_caller_saved_registers check with call_saved_registers check.
5460 (ix86_function_ok_for_sibcall): Don't allow callee with
5461 no_callee_saved_registers attribute when the calling function
5462 has callee-saved registers.
5463 (ix86_comp_type_attributes): Also check
5464 no_callee_saved_registers.
5465 (ix86_epilogue_uses): Replace no_caller_saved_registers check
5466 with call_saved_registers check.
5467 (ix86_hard_regno_scratch_ok): Likewise.
5468 (ix86_save_reg): Replace no_caller_saved_registers check with
5469 call_saved_registers check. Don't save any registers for
5470 TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
5471 TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
5472 no_callee_saved_registers attribute is called.
5473 (find_drap_reg): Replace no_caller_saved_registers check with
5474 call_saved_registers check.
5475 * config/i386/i386.h (call_saved_registers_type): New enum.
5476 (machine_function): Replace no_caller_saved_registers with
5477 call_saved_registers.
5478 * doc/extend.texi: Document no_callee_saved_registers attribute.
5480 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5482 PR tree-optimization/113614
5483 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
5484 widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
5485 TRUNC_MOD_EXPR or FLOAT_EXPR uses.
5487 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5489 PR tree-optimization/113568
5490 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
5491 For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
5492 in the widening extension checks.
5494 2024-01-27 Jakub Jelinek <jakub@redhat.com>
5496 * gimple-lower-bitint.cc (gimple_lower_bitint): For
5497 TDF_DETAILS dump mapping of SSA_NAMEs to decls.
5499 2024-01-26 Hans-Peter Nilsson <hp@axis.com>
5501 * cgraphunit.cc (process_function_and_variable_attributes): Tweak
5502 the warning for an attribute-always_inline without inline declaration.
5504 2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
5507 * genopinit.cc (main): Split init_all_optabs into functions
5508 of 1000 patterns each.
5510 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
5512 * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
5514 * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
5515 * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
5518 2024-01-26 Andrew Stubbs <ams@baylibre.com>
5520 * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
5521 * config/gcn/gcn-valu.md (all_convert): New iterator.
5522 (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
5523 define_expand, and rename the old one to ...
5524 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
5525 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
5526 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
5527 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
5528 * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
5529 (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
5530 * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
5531 (<u>mulqihi3_scalar): Likewise.
5533 2024-01-26 Richard Biener <rguenther@suse.de>
5535 PR tree-optimization/113602
5536 * tree-data-ref.cc (dr_analyze_innermost): Fail when
5537 the base object isn't addressable.
5539 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
5541 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
5542 "--amdhsa-code-object-version=" argument.
5543 (ASM_SPEC): Use it; replace previous version of it.
5545 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5547 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
5548 (pre_vsetvl::emit_vsetvl): Ditto.
5550 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
5552 * config/loongarch/lasx.md (vec_extract<mode>_0):
5553 New define_insn_and_split patten.
5555 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
5557 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
5559 2024-01-26 Li Wei <liwei@loongson.cn>
5561 * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
5563 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5566 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
5568 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
5571 * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
5572 undefined shift after the call to exact_log2.
5574 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
5577 * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
5578 before taking the negative of it.
5580 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
5583 * lra-constraints.cc (curr_insn_transform): Change class even for
5584 spilled pseudo successfully matched with with NO_REGS.
5586 2024-01-25 Georg-Johann Lay <avr@gjlay.de>
5589 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
5591 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
5594 * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
5595 (aarch64_expand_epilogue): Use the new function.
5596 (aarch64_split_compare_and_swap): Likewise.
5597 (aarch64_split_atomic_op): Likewise.
5599 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
5601 PR middle-end/112971
5602 * fold-const.cc (simplify_const_binop): New function for binop
5603 simplification of two constant vectors when element-wise
5604 handling is not necessary.
5605 (const_binop): Call new function.
5607 2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
5609 * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
5610 * config/riscv/constraints.md: Likewise.
5611 * config/riscv/corev.def: Likewise.
5612 * config/riscv/corev.md: Likewise.
5613 * config/riscv/predicates.md: Likewise.
5614 * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
5615 * config/riscv/riscv-ftypes.def: Likewise.
5616 * config/riscv/riscv.opt: Likewise.
5617 * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
5618 * doc/extend.texi: Add XCVbitmanip builtin documentation.
5619 * doc/sourcebuild.texi: Likewise.
5621 2024-01-25 Tobias Burnus <tburnus@baylibre.com>
5623 * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
5625 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
5628 * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
5629 (riscv_fntype_abi): Ditto.
5630 * config/riscv/riscv.opt: Ditto.
5632 2024-01-25 Jakub Jelinek <jakub@redhat.com>
5634 PR middle-end/113574
5635 * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
5636 count against TYPE_PRECISION rather than TYPE_SIZE.
5638 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5641 * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
5642 Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
5644 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5647 * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
5648 whether each split instruction is a load that clobbers the source
5649 address. Emit that instruction last if so.
5651 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
5654 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
5656 (<optab><Vnarrowq><mode>2): Use it instead of generating a
5657 paradoxical subreg for the input.
5659 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5661 * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
5662 (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
5663 predecessors dump information.
5665 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5667 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
5668 redundant full available computation.
5669 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
5671 2024-01-25 Jakub Jelinek <jakub@redhat.com>
5673 * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
5674 * doc/rtl.texi (CONST_VECTOR): Likewise.
5676 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5678 * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
5679 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
5680 (pass_vsetvl::execute): Ditto.
5681 * config/riscv/riscv.opt: Ditto.
5683 2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
5685 * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
5686 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
5688 2024-01-25 Richard Biener <rguenther@suse.de>
5690 PR tree-optimization/113576
5691 * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
5692 exits with may_be_zero niters when its the last one.
5694 2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
5696 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
5697 For symbols of type tls, non-zero Offset is not generated.
5699 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
5701 * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
5702 P9 with m32 and mpowerpc64.
5704 2024-01-25 liuhongt <hongtao.liu@intel.com>
5706 * config/i386/i386-options.cc (ix86_option_override_internal):
5707 Enable -mlam=u57 by default when compiled with
5708 -fsanitize=hwaddress.
5710 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
5712 * common/config/riscv/riscv-common.cc (riscv_implied_info):
5713 Remove {"ztso", "a"}.
5715 2024-01-24 Martin Jambor <mjambor@suse.cz>
5719 * cgraph.h (cgraph_edge): Add a parameter to
5720 redirect_call_stmt_to_callee.
5721 * ipa-param-manipulation.h (ipa_param_adjustments): Add a
5722 parameter to modify_call.
5723 (ipa_release_ssas_in_hash): Declare.
5724 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
5725 parameter killed_ssas, pass it to padjs->modify_call.
5726 * ipa-param-manipulation.cc (purge_all_uses): New function.
5727 (ipa_param_adjustments::modify_call): New parameter killed_ssas.
5728 Instead of substituting uses, invoke purge_all_uses. If
5729 hash of killed SSAs has not been provided, create a temporary one
5730 and release SSAs that have been added to it.
5731 (compare_ssa_versions): New function.
5732 (ipa_release_ssas_in_hash): Likewise.
5733 * tree-inline.cc (redirect_all_calls): Create
5734 id->killed_new_ssa_names earlier, pass it to edge redirection,
5736 (copy_body): Release SSAs in id->killed_new_ssa_names.
5738 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
5741 * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
5742 TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
5744 2024-01-24 Monk Chiang <monk.chiang@sifive.com>
5747 * config/riscv/sfb.md: New splitters to rewrite single bit
5748 sign extension as the condition to SFB instructions.
5750 2024-01-24 Jan Hubicka <jh@suse.cz>
5753 * common.opt: (flimit-function-alignment): Reorder alphabeticaly
5754 (fmin-function-alignment): New parameter.
5755 * doc/invoke.texi: (-fmin-function-alignment): Document.
5756 (-falign-functions,-falign-loops,-falign-labels): Mention that
5757 aglinments are ignored in cold code.
5758 * varasm.cc (assemble_start_function): Handle min-function-alignment.
5760 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5763 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
5765 * config/aarch64/iterators.md (VQDIV): Remove.
5766 (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
5767 SVE_I_SIMD_DI): New.
5768 (VPRED, sve_lane_con): Add V4SI and V2DI.
5769 * config/aarch64/aarch64-sve.md (<optab><mode>3,
5770 @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
5771 (mul<mode>3): New, split from <optab><mode>3.
5772 (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
5773 * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
5774 *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
5775 SVE_FULL_HSDI_SIMD_DI.
5777 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5779 PR tree-optimization/113552
5780 * config/aarch64/aarch64.cc
5781 (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
5783 2024-01-24 Martin Jambor <mjambor@suse.cz>
5786 * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
5787 count is equal or greater than the limit. Use the limit from the
5790 2024-01-24 YunQiang Su <syq@gcc.gnu.org>
5792 * configure.ac: Detect the explicit relocs support for
5793 mips, and define C macro MIPS_EXPLICIT_RELOCS.
5794 * config.in: Regenerated.
5795 * configure: Regenerated.
5796 * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
5797 * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
5798 * config/mips/mips.cc(mips_set_compression_mode): Sorry if
5799 !TARGET_EXPLICIT_RELOCS instead of just set it.
5800 * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
5801 TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
5802 * config/mips/mips.opt: Introduce -mexplicit-relocs= option
5803 and define -m(no-)explicit-relocs as aliases.
5805 2024-01-24 Alex Coplan <alex.coplan@arm.com>
5807 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
5809 (-mlate-ldp-fusion): Likewise.
5811 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5813 * tree-vect-loop.cc (vect_get_vect_def,
5814 vect_create_epilog_for_reduction): Rename main_exit_p to
5817 2024-01-24 Tamar Christina <tamar.christina@arm.com>
5819 PR tree-optimization/113364
5820 * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
5821 early exits then we must reduce from the first offset for all of them.
5823 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5826 * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
5828 (get_bb_index): Ditto.
5829 (pre_vsetvl::compute_avl_def_data): Ditto.
5830 (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
5831 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
5833 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
5834 Richard Sandiford <richard.sandiford@arm.com>
5837 * ccmp.cc (ccmp_candidate_p): Add outer argument.
5838 Allow if the outer is true and the lhs is used more
5840 (expand_ccmp_expr): Update call to ccmp_candidate_p.
5841 * expr.h (expand_expr_real_gassign): Declare.
5842 * expr.cc (expand_expr_real_gassign): New function, split out from...
5843 (expand_expr_real_1): ...here.
5844 * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
5846 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5849 * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
5850 (fixup_debug_use): New.
5851 (fixup_debug_uses_trailing_add): New.
5852 (fixup_debug_uses): New. Use it ...
5853 (ldp_bb_info::fuse_pair): ... here.
5854 (try_promote_writeback): Call fixup_debug_uses_trailing_add to
5855 fix up debug uses of the base register that are affected by
5856 folding in the trailing add insn.
5858 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5861 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
5862 Update trailing nondebug uses of the base register in the case
5863 of cancelling writeback.
5865 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5868 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
5869 (debug_insn_use_iterator): New.
5870 (set_info::first_debug_insn_use): New.
5871 (set_info::debug_insn_uses): New.
5872 * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
5873 (set_info::first_debug_insn_use): New.
5874 (set_info::debug_insn_uses): New.
5876 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5879 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
5880 Don't record hazards against the opposite insn in the pair.
5882 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5885 * config/aarch64/aarch64-ldp-fusion.cc
5886 (struct stp_change_builder): New.
5887 (decide_stp_strategy): Reanme to ...
5888 (try_repurpose_store): ... this.
5889 (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
5890 construct stp changes. Fix up uses when inserting new stp insns.
5892 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5895 * rtl-ssa.h: Include hash-set.h.
5896 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
5897 new_sets parameter and use it to keep track of new user-created sets.
5898 (function_info::apply_changes_to_insn): Also call add_def on new sets.
5899 (function_info::change_insns): Add hash_set to keep track of new
5900 user-created defs. Plumb it through.
5901 * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
5902 apply_changes_to_insn.
5904 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5907 * rtl-ssa/accesses.cc (function_info::create_use): New.
5908 * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
5909 Ensure new uses end up referring to permanent defs.
5910 * rtl-ssa/functions.h (function_info::create_use): Declare.
5912 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5915 * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
5916 to finalize_new_accesses from the backwards placement loop, run it
5917 forwards in a separate loop.
5919 2024-01-23 Richard Biener <rguenther@suse.de>
5921 PR tree-optimization/113552
5922 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
5923 floor_log2 instead of exact_log2 on the number of calls.
5925 2024-01-23 Jeff Law <jlaw@ventanamicro.com>
5926 Jakub Jelinek <jakub@redhat.com>
5928 * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
5931 2024-01-23 Richard Biener <rguenther@suse.de>
5933 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
5934 Separate single and multi-exit case when creating PHIs between
5935 the main and epilogue.
5937 2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
5940 * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
5941 MODE_single variants of functions that don't take tuple arguments.
5943 2024-01-23 Alex Coplan <alex.coplan@arm.com>
5946 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
5947 Don't assert recog success, just punt if the writeback pair
5950 2024-01-23 Jakub Jelinek <jakub@redhat.com>
5952 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
5953 ATTRIBUTE_UNUSED to decl.
5955 2024-01-23 Richard Biener <rguenther@suse.de>
5958 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
5959 handle unexpected but bogus DIE contexts when not checking
5962 2024-01-23 Jakub Jelinek <jakub@redhat.com>
5964 PR tree-optimization/113462
5965 * fold-const.cc (native_interpret_int): Don't punt if total_bytes
5966 is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
5967 (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
5968 sizes between 129 and 8192 bytes.
5970 2024-01-23 Xi Ruoyao <xry111@xry111.site>
5972 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
5973 If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
5974 for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
5975 (loongarch_call_tls_get_addr): Do not split symbols of
5976 SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
5977 EXPLICIT_RELOCS_AUTO.
5979 2024-01-23 Richard Biener <rguenther@suse.de>
5981 * alias.cc (known_base_value_p): Remove.
5982 (find_base_value): Remove PLUS/MINUS handling
5983 when both operands are not CONST_INT_P.
5985 2024-01-23 Richard Biener <rguenther@suse.de>
5987 PR rtl-optimization/113255
5988 * alias.cc (find_base_term): Remove PLUS/MINUS handling
5989 when both operands are not CONST_INT_P.
5991 2024-01-23 Richard Biener <rguenther@suse.de>
5994 * dwarf2out.cc (dwarf2out_finish): Reset all type units
5995 for the fat part of an LTO compile.
5997 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
5999 * doc/sourcebuild.texi: Add attributes for keywords.
6001 2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
6004 * doc/invoke.texi (Warning Options): Correct lists of options
6005 enabled by -Wall and -Wextra by checking against common.opt
6008 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
6011 * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
6012 instead of cpu_optaliases.
6013 (check_arch): Use arch_opt_alias instead of arch_optaliases.
6015 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6017 * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
6018 * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
6019 * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
6021 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6024 * config/riscv/riscv.md: Use reg instead of subreg.
6026 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
6029 * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
6030 to match the compiler default.
6031 (simple_object_copy_lto_debug_sections): Never unlink the outfile
6032 on error as the caller does so.
6033 (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
6034 (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
6036 2024-01-22 Richard Biener <rguenther@suse.de>
6038 PR tree-optimization/113373
6039 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6040 Create LC PHIs in the exit blocks where necessary.
6041 * tree-vect-loop.cc (vectorizable_live_operation): Do not try
6042 to handle missing LC PHIs.
6043 (find_connected_edge): Remove.
6044 (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
6046 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6048 * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
6050 2024-01-22 xuli <xuli1@eswincomputing.com>
6053 * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
6054 (registered_function::overloaded_hash):refactor.
6055 (resolve_overloaded_builtin):avoid internal ICE.
6057 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
6061 * calls.cc (emit_library_call_value_1): Pass valid TYPE
6063 * expr.cc (emit_push_insn): Likewise.
6065 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
6067 * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
6068 correcction version of last change.
6070 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
6072 * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
6073 fix bugs in signature.
6075 2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
6076 Richard Biener <rguenther@suse.de>
6078 PR rtl-optimization/111267
6079 * fwprop.cc (fwprop_propagation::profitabe_p): Rename
6080 profitable_p method to likely_profitable_p.
6081 (try_fwprop_subst_node): Update call to likely_profitable_p.
6082 Only bail-out early when !prop.likely_profitable_p for instructions
6083 that are not single sets. When comparing costs, bail-out if the
6084 cost is unchanged and !prop.likely_profitable_p.
6086 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
6089 * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
6090 isn't enabled by -Wunused unless -Wextra is provided, and that
6091 -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
6092 -Wunused doesn't enable -Wunused-* options documented as behaving
6093 otherwise, and list them explicitly.
6095 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
6098 * doc/invoke.texi (Warning Options): Fix broken example and
6099 clean up/reorganize the others. Also describe what the short-form
6102 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
6105 * doc/invoke.texi (Option Summary): Add -Warray-parameter.
6106 (Warning Options): Correct/edit discussion of -Warray-parameter
6107 to make the first example less confusing, and fill in missing info.
6109 2024-01-20 Jakub Jelinek <jakub@redhat.com>
6111 PR tree-optimization/113462
6112 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
6113 Handle rhs1 INTEGER_CST like SSA_NAME.
6115 2024-01-20 Jakub Jelinek <jakub@redhat.com>
6117 PR tree-optimization/113491
6118 * tree-switch-conversion.cc (switch_conversion::build_constructors):
6119 If elt.index has precision higher than sizetype, fold_convert it to
6121 (switch_conversion::array_value_type): Return type if type is
6122 BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
6123 (switch_conversion::build_arrays): Use unsigned_type_for rather than
6124 lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
6125 above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
6126 higher than sizetype, use sizetype as tidx type and fold_convert the
6127 subtraction to sizetype.
6129 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6131 * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
6132 (riscv_vector_mode_supported_any_target_p): Ditto.
6134 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
6137 * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
6138 (TARGET_ZERO_CALL_USED_REGS): Define.
6140 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
6143 * config/m68k/m68k.cc (output_andsi3): Use QImode for
6144 address adjusted for 1-byte RMW access.
6145 (output_iorsi3): Likewise.
6146 (output_xorsi3): Likewise.
6148 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6150 * doc/invoke.texi (RISC-V Options): Add list of supported
6153 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6156 * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
6157 (RVV_VUNDEF): Ditto.
6158 * config/riscv/riscv-vsetvl.cc: Add timevar.
6160 2024-01-19 Richard Biener <rguenther@suse.de>
6163 * lto-streamer-in.cc (lto_read_tree_1): When there isn't
6164 an early DIE but there should be, do not pretend there is.
6166 2024-01-19 Richard Biener <rguenther@suse.de>
6168 PR tree-optimization/113494
6169 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6170 Handle endless loop on exit. Handle re-allocated PHI.
6172 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6174 PR tree-optimization/113464
6175 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
6176 optimize loads into GIMPLE_ASM stmts.
6178 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6180 PR tree-optimization/113463
6181 * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
6182 Only look through NOP_EXPRs if rhs1 doesn't have wider type than
6185 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6187 PR tree-optimization/113459
6188 * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
6189 TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
6190 of SCALAR_INT_TYPE_MODE if type has BLKmode.
6191 (vn_reference_lookup_3): Likewise. Formatting fix.
6193 2024-01-19 Jakub Jelinek <jakub@redhat.com>
6194 Richard Biener <rguenther@suse.de>
6196 * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
6197 VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
6198 * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
6199 but adjust_address also for BLKmode mode and MEM op0.
6201 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
6203 * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
6206 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6208 * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
6210 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6212 * common/config/riscv/riscv-common.cc
6213 (riscv_subset_list::parse_std_ext): Remove.
6214 (riscv_subset_list::parse_multiletter_ext): Remove.
6215 * config/riscv/riscv-subset.h
6216 (riscv_subset_list::parse_std_ext): Remove.
6217 (riscv_subset_list::parse_multiletter_ext): Remove.
6219 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6221 * common/config/riscv/riscv-common.cc
6222 (riscv_subset_list::parse_single_std_ext): New parameter.
6223 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
6224 (riscv_subset_list::parse_single_ext): Ditto.
6225 (riscv_subset_list::parse): Relax the order for the input of ISA
6227 * config/riscv/riscv-subset.h
6228 (riscv_subset_list::parse_single_std_ext): New parameter.
6229 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
6230 (riscv_subset_list::parse_single_ext): Ditto.
6232 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6234 * common/config/riscv/riscv-common.cc
6235 (riscv_subset_list::parse_base_ext): New.
6236 (riscv_subset_list::parse): Extract part of logic into
6237 riscv_subset_list::parse_base_ext.
6238 * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
6241 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
6243 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
6246 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
6248 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
6251 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
6254 * doc/extend.texi (Common Variable Attributes): Explain what
6255 happens when multiple variables with cleanups are in the same scope.
6257 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6260 * doc/extend.texi (Common Function Attributes): Document that
6261 noinline also disables some interprocedural optimizations and
6262 improve flow to the part about using inline asm instead to
6263 disable calls from being optimized away completely. Remove the
6264 sentence that says noipa is mainly for internal compiler testing.
6266 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
6268 PR tree-optimization/69807
6269 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
6271 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
6274 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
6275 from x86 Windows Options.
6277 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6280 * doc/extend.texi (C Extensions): Add new section to menu.
6281 (Function Attributes): Move dangling index entries to....
6282 (Const and Volatile Functions): New section.
6284 2024-01-18 David Malcolm <dmalcolm@redhat.com>
6286 PR middle-end/112684
6287 * toplev.cc (toplev::main): Don't ICE in
6288 -fdiagnostics-generate-patch when exiting after options,
6289 since no edit context will have been created.
6291 2024-01-18 Richard Biener <rguenther@suse.de>
6293 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
6296 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6298 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
6299 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
6301 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6302 Jin Ma <jinma@linux.alibaba.com>
6303 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6304 Christoph Müllner <christoph.muellner@vrull.eu>
6306 * config/riscv/thead.cc
6307 (th_asm_output_opcode): Rewrite some instructions.
6309 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6310 Jin Ma <jinma@linux.alibaba.com>
6311 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6312 Christoph Müllner <christoph.muellner@vrull.eu>
6314 * config/riscv/riscv.md (none,thv,rvv): New attribute.
6315 (no,yes): Add an attribute to disable alternative
6316 for xtheadvector or RVV1.0.
6317 * config/riscv/vector.md:
6318 Disable alternatives that destination register overlaps
6319 source register group for xtheadvector.
6321 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6322 Jin Ma <jinma@linux.alibaba.com>
6323 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6324 Christoph Müllner <christoph.muellner@vrull.eu>
6326 * config/riscv/riscv-vector-builtins-bases.cc
6327 (class th_loadstore_width): Define new builtin bases.
6328 (class th_extract): Define new builtin bases.
6329 (BASE): Define new builtin bases.
6330 * config/riscv/riscv-vector-builtins-bases.h:
6331 Define new builtin class.
6332 * config/riscv/riscv-vector-builtins-shapes.cc
6333 (struct th_loadstore_width_def): Define new builtin shapes.
6334 (struct th_indexed_loadstore_width_def):
6335 Define new builtin shapes.
6336 (struct th_extract_def): Define new builtin shapes.
6337 (SHAPE): Define new builtin shapes.
6338 * config/riscv/riscv-vector-builtins-shapes.h:
6339 Define new builtin shapes.
6340 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
6341 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
6342 * config/riscv/riscv-vector-builtins.h
6343 (enum required_ext): Add new XTheadVector member.
6344 (struct function_group_info): Likewise.
6345 * config/riscv/t-riscv:
6346 Add thead-vector-builtins-functions.def
6347 * config/riscv/thead-vector.md
6348 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
6349 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
6350 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
6351 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
6352 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
6353 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
6354 (@pred_th_extract<mode>): Likewise.
6355 (*pred_th_extract<mode>): Likewise.
6356 * config/riscv/thead-vector-builtins-functions.def: New file.
6358 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6359 Jin Ma <jinma@linux.alibaba.com>
6360 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6361 Christoph Müllner <christoph.muellner@vrull.eu>
6363 * config.gcc: Add files for XTheadVector intrinsics.
6364 * config/riscv/autovec.md: Guard XTheadVector.
6365 * config/riscv/predicates.md: Disable immediate vl
6367 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
6368 Add pragma for XTheadVector.
6369 * config/riscv/riscv-string.cc (riscv_expand_block_move):
6371 * config/riscv/riscv-v.cc (vls_mode_valid_p):
6373 * config/riscv/riscv-vector-builtins-bases.cc:
6374 Do not normalize vsetvl instructions for XTheadVector.
6375 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
6376 New check type function.
6377 (build_one): Adjust for XTheadVector.
6378 * config/riscv/riscv-vector-switch.def (ENTRY):
6379 Disable fractional mode for the XTheadVector extension.
6380 (TUPLE_ENTRY): Likewise.
6381 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
6383 (riscv_preferred_simd_mode): Likewsie.
6384 (riscv_autovectorize_vector_modes): Likewise.
6385 (riscv_vector_mode_supported_any_target_p): Likewise.
6386 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
6387 * config/riscv/thead.cc (th_asm_output_opcode):
6388 Rewrite vsetvl instructions.
6389 * config/riscv/vector.md:
6390 Include thead-vector.md and change fractional LMUL
6392 * config/riscv/riscv_th_vector.h: New file.
6393 * config/riscv/thead-vector.md: New file.
6395 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6396 Jin Ma <jinma@linux.alibaba.com>
6397 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6398 Christoph Müllner <christoph.muellner@vrull.eu>
6400 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
6401 Add new function to add assembler insn code prefix/suffix.
6402 (th_asm_output_opcode):
6403 Add Thead function to add assembler insn code prefix/suffix.
6404 * config/riscv/riscv.cc (riscv_asm_output_opcode):
6405 Implement function to add assembler insn code prefix/suffix.
6406 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
6407 Add new function to add assembler insn code prefix/suffix.
6408 * config/riscv/thead.cc (th_asm_output_opcode):
6409 Implement Thead function to add assembler insn code
6412 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6413 Jin Ma <jinma@linux.alibaba.com>
6414 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6415 Christoph Müllner <christoph.muellner@vrull.eu>
6417 * common/config/riscv/riscv-common.cc
6418 (riscv_subset_list::parse): Add new vendor extension.
6419 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
6421 * config/riscv/riscv.opt: Add new mask.
6423 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6425 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
6426 to be conditional on macosx-version-min.
6428 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6430 * config/darwin.cc (darwin_objc1_section): Use the correct
6431 meta-data version for constant strings.
6432 (machopic_select_section): Assert if we fail to handle CFString
6433 sections as Obejctive-C meta-data or drectly.
6435 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6437 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
6438 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
6439 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
6440 versions when the object format is Mach-O.
6442 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
6445 * config/darwin.cc (machopic_select_section): Handle C and C++
6447 (darwin_rename_builtins): Move this out of the CFString code.
6448 (darwin_libc_has_function): Likewise.
6449 (darwin_build_constant_cfstring): Create an anonymous var to
6451 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
6454 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6457 * haifa-sched.cc (dep_list_size): Make global.
6458 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
6459 * sched-int.h (dep_list_size): Declare.
6461 2024-01-18 Martin Jambor <mjambor@suse.cz>
6463 PR tree-optimization/110422
6464 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
6467 2024-01-18 Richard Biener <rguenther@suse.de>
6469 PR tree-optimization/113475
6470 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
6471 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
6472 (phi_analyzer::~phi_analyzer): Deallocate and free collected
6474 (phi_analyzer::process_phi): Record allocated phi_groups.
6476 2024-01-18 Richard Biener <rguenther@suse.de>
6478 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
6479 storage for gvec_oprnds elements.
6481 2024-01-18 Richard Biener <rguenther@suse.de>
6483 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
6484 prefer all later exits we can handle.
6485 (vect_analyze_loop_form): Free the allocated loop body.
6488 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6490 * config/avr/avr-log.cc: Tabify.
6492 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6494 * config/riscv/autovec.md: Support vi variant.
6496 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6498 * config/avr/avr-devices.cc: Tabify.
6500 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6502 * config/avr/avr-c.cc: Tabify.
6504 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6506 * config/avr/driver-avr.cc: Tabify.
6508 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6510 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
6512 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6514 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
6516 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6518 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
6519 minline-strcmp, minline-strncmp, minline-strlen,
6520 -param=riscv-vector-abi): Remove Bool keywords.
6522 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6525 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
6526 support. Add missing space after , in emitted assembly in some
6527 cases. Formatting fixes.
6529 2024-01-18 Xi Ruoyao <xry111@xry111.site>
6531 * config/loongarch/loongarch.md (movsi_internal): Remove
6534 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
6536 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
6537 in the diagnostic, and capitalize the device name.
6538 (print_mcu): Generate specs such that:
6539 <*check_rodata_in_ram>: New.
6540 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
6541 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
6542 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
6544 2024-01-18 Jakub Jelinek <jakub@redhat.com>
6547 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
6548 Common and Optimization.
6550 2024-01-18 Richard Biener <rguenther@suse.de>
6552 PR tree-optimization/113431
6553 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
6554 When there is an invariant load we might not preserve
6557 2024-01-18 Richard Biener <rguenther@suse.de>
6559 PR tree-optimization/113374
6560 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
6561 * tree-vect-loop.cc (move_early_exit_stmts): Update
6563 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6564 Refactor. Preserve virtual LC PHIs on all exits.
6566 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
6568 * config/loongarch/loongarch.cc (loongarch_split_symbol):
6569 Assign the '/u' attribute to the mem.
6571 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6573 PR middle-end/110847
6574 * doc/invoke.texi (Option Summary): Document negative forms of
6575 -Wtsan and -Wxor-used-as-pow.
6576 (Warning Options): Likewise.
6578 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6581 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
6583 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
6585 * doc/extend.texi (Common Function Attributes): Re-alphabetize
6587 (Common Variable Attributes): Likewise.
6588 (Common Type Attributes): Likewise.
6590 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6592 PR middle-end/111659
6593 * doc/extend.texi (Common Variable Attributes): Fix long lines
6594 in documentation of strict_flex_array + other minor copy-editing.
6595 Add a cross-reference to -Wstrict-flex-arrays.
6596 * doc/invoke.texi (Option Summary): Fix whitespace in tables
6597 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
6598 (C Dialect Options): Combine the docs for the two
6599 -fstrict-flex-arrays forms into a single entry. Note this option
6600 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
6601 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
6602 Minor copy-editing. Add cross references to the strict_flex_array
6603 attribute and -fstrict-flex-arrays option. Add note that this
6604 option depends on -ftree-vrp.
6606 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
6609 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
6610 only allow REG operands instead of allowing all.
6612 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
6614 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
6615 Remove redundant checks in else condition for readablity.
6616 (earliest_fuse_vsetvl_info) Print iteration count in debug
6618 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
6619 dump details in certain cases.
6621 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
6623 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
6624 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
6625 * config/riscv/riscv-vsetvl.cc
6626 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
6627 (pass_vsetvl::execute): Use vsetvl_strategy.
6629 2024-01-17 Jan Hubicka <jh@suse.cz>
6631 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
6632 accidental hack reseting offset.
6634 2024-01-17 Jan Hubicka <jh@suse.cz>
6636 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
6637 handling of X86_TUNE_AVOID_512FMA_CHAINS.
6639 2024-01-17 Jan Hubicka <jh@suse.cz>
6640 Jakub Jelinek <jakub@redhat.com>
6642 PR tree-optimization/110852
6643 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
6645 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
6646 PRED_COMBINED_VALUE_PREDICTIONS_PHI
6647 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
6648 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
6650 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6652 PR tree-optimization/113421
6653 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
6655 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
6656 formatting. Start at vop rather than cvop even if stmt is a store
6657 and needs_operand_addr.
6659 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6661 PR middle-end/113410
6662 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
6663 If access_nelts is integral with larger precision than sizetype,
6664 fold_convert it to sizetype.
6666 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6668 PR tree-optimization/113408
6669 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
6670 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
6673 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6675 PR middle-end/113406
6676 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
6677 regardless of whether is_gimple_reg_type (restype) or not.
6679 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6681 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
6682 funcions -> functions, and use were instead of was.
6683 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
6684 and guaranteee -> guarantee.
6685 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
6687 2024-01-17 Jakub Jelinek <jakub@redhat.com>
6689 PR middle-end/113409
6690 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
6692 (omp_extract_for_data): Use build_bitint_type rather than
6693 build_nonstandard_integer_type if either iter_type or loop->v type
6695 * omp-expand.cc (expand_omp_for_generic,
6696 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
6697 BITINT_TYPE like INTEGER_TYPE.
6699 2024-01-17 Richard Biener <rguenther@suse.de>
6701 PR tree-optimization/113371
6702 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
6703 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
6704 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
6705 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
6707 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6709 PR rtl-optimization/96388
6710 PR rtl-optimization/111554
6711 * sched-deps.cc (find_inc): Avoid exponential behavior.
6713 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6716 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
6717 from C++ Language Options to Warning Options. Add entry for
6719 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
6721 (Warning Options): ...to here. Minor copy-editing to fix typo
6724 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
6726 * config/mips/mips.cc (mips_compute_frame_info): If another
6727 register is used as global_pointer, mark $GP live false.
6729 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
6732 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
6733 give the section a light copy-editing pass.
6735 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
6737 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
6738 * config/aarch64/aarch64-tune.md: Regenerated.
6739 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
6741 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
6744 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
6745 badly formed CONST expressions.
6747 2024-01-16 Daniel Cederman <cederman@gaisler.com>
6749 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
6751 2024-01-16 Daniel Cederman <cederman@gaisler.com>
6753 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
6754 * config/sparc/sync.md (membar_storeload): Turn into named insn
6755 and add GR712RC errata workaround.
6756 (membar_v8): Add GR712RC errata workaround.
6758 2024-01-16 Andreas Larsson <andreas@gaisler.com>
6760 * config/sparc/sync.md (*membar_storeload_leon3): Remove
6761 (*membar_storeload): Enable for LEON
6763 2024-01-16 Jakub Jelinek <jakub@redhat.com>
6765 PR tree-optimization/113372
6767 PR middle-end/110115
6768 PR middle-end/111422
6769 * cfgexpand.cc (add_scope_conflicts_2): New function.
6770 (add_scope_conflicts_1): Use it.
6772 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
6774 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
6775 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
6776 * doc/avr-mmcu.texi: Regenerate.
6778 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
6780 PR tree-optimization/113091
6781 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
6782 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
6783 scalar use with new function.
6784 (vect_bb_slp_mark_live_stmts): New function as entry to existing
6785 overriden functions with same name.
6786 (vect_slp_analyze_operations): Call new entry function to mark
6789 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6792 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
6793 for RVV in big-endian mode.
6795 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
6797 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
6798 (riscv_pass_in_vector_p): Delete.
6799 (riscv_init_cumulative_args): Delete the checking.
6800 (riscv_get_arg_info): Delete the checking.
6801 (riscv_function_value): Delete the checking.
6802 * config/riscv/riscv.h: Delete the member for checking.
6804 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
6806 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
6808 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
6810 * config.gcc: Include riscv_bitmanip.h.
6811 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
6812 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
6813 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
6814 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
6815 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
6816 * config/riscv/riscv-ftypes.def (2): New ftypes.
6817 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
6818 (RISCV_BUILTIN_NO_PREFIX): Likewise.
6819 * config/riscv/riscv_bitmanip.h: New file.
6821 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
6823 * config.gcc: Include riscv_crypto.h.
6824 * config/riscv/riscv_crypto.h: New file.
6826 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
6828 PR middle-end/113354
6829 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
6830 in the insn if the corresponding operand does not require hard
6833 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
6836 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
6837 * config/avr/driver-avr.cc (avr_no_devlib): New function.
6838 (avr_devicespecs_file): Use it to remove -nodevicelib from the
6839 options for cores only.
6840 * config/avr/avr-arch.h (avr_get_parch): New prototype.
6841 * config/avr/avr-devices.cc (avr_get_parch): New function.
6843 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6846 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
6847 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
6848 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
6850 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6853 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
6854 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
6855 * config/riscv/riscv-vector-costs.h: New function.
6857 2024-01-15 Richard Biener <rguenther@suse.de>
6859 PR tree-optimization/113385
6860 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
6861 First redirect, then split the exit edge.
6863 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6865 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
6866 Remove m_num_vector_iterations.
6867 * config/riscv/riscv-vector-costs.h: Ditto.
6869 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
6872 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
6873 (-mbranch-cost): Set "Optimization" flag.
6875 2024-01-15 Jakub Jelinek <jakub@redhat.com>
6877 PR tree-optimization/113370
6878 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
6879 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
6880 set it to just prec % limb_prec.
6882 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6885 * config/riscv/vector.md: Fix ternary attributes.
6887 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
6890 * configure.ac [target=avr]: Check availability of emulations
6891 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
6892 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
6893 * configure: Regenerate.
6894 * config.in: Regenerate.
6895 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
6896 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
6897 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
6898 * config/avr/avr-arch.h (enum avr_device_specific_features):
6900 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
6902 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
6903 (avr_set_core_architecture): Set avr_arch_index.
6904 (have_avrxmega2_flmap, have_avrxmega4_flmap)
6905 (have_avrxmega3_rodata_in_flash): Set new static const bool according
6906 to configure results.
6907 (avr_rodata_in_flash_p): New function using them.
6908 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
6909 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
6910 (avr_asm_named_section): Track avr_has_rodata_p.
6911 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
6912 and not avr_rodata_in_flash_p ().
6913 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
6914 (LINK_SPEC): Add %(link_rodata_in_ram).
6915 (LINK_ARCH_SPEC): Remove.
6916 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
6917 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
6918 const bool according to configure results.
6919 (diagnose_mrodata_in_ram): New function.
6920 (print_mcu): Generate specs with the following changes:
6921 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
6922 need to extend avr/specs.h each time we add a new bell or whistle.
6923 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
6924 -m[no-]rodata-in-ram.
6925 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
6926 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
6927 <*cpp>: Add %(cpp_rodata_in_ram).
6928 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
6930 <*self_spec>: Add -mflmap or %<mflmap as needed.
6932 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
6934 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
6935 not the GPR iterator. Adjust pattern name and mode attribute
6938 2024-01-13 Jakub Jelinek <jakub@redhat.com>
6940 PR tree-optimization/113361
6941 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
6942 Fix up determination of the type for > limb_prec constants.
6944 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
6946 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
6947 Add web-link to the avr-gcc wiki.
6949 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
6951 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
6952 documentation for a version without argument, which is not supported.
6954 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
6956 * config/arm/arm_neon.h
6957 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
6958 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
6959 (vld1_f16_x4, vld1_f32_x4): New.
6960 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
6961 (vld1_bf16_x4): New.
6962 (vld1q_types_x4): Updated to use vld1q_x4
6963 from arm_neon_builtins.def
6964 * config/arm/arm_neon_builtins.def
6965 (vld1_x4): Updated entries.
6966 (vld1q_x4): New entries, but comes from the old vld1_x4
6967 * config/arm/neon.md
6968 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
6970 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
6972 * config/arm/arm_neon.h
6973 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
6974 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
6975 (vld1_f16_x3, vld1_f32_x3): New.
6976 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
6977 (vld1_bf16_x3): New.
6978 (vld1q_types_x3): Updated to use vld1q_x3 from
6979 arm_neon_builtins.def
6980 * config/arm/arm_neon_builtins.def
6981 (vld1_x3): Updated entries.
6982 (vld1q_x3): New entries, but comes from the old vld1_x2
6983 * config/arm/neon.md
6984 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
6986 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
6988 * config/arm/arm_neon.h
6989 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
6990 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
6991 (vld1_f16_x2, vld1_f32_x2): New.
6992 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
6993 (vld1_bf16_x2): New.
6994 (vld1q_types_x2): Updated to use vld1q_x2 from
6995 arm_neon_builtins.def
6996 * config/arm/arm_neon_builtins.def
6997 (vld1_x2): Updated entries.
6998 (vld1q_x2): New entries, but comes from the old vld1_x2
6999 * config/arm/neon.md
7000 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
7003 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7005 * config/arm/arm_neon.h
7006 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
7007 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
7008 (vst1q_f16_x4, vst1q_f32_x4): New.
7009 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
7010 (vst1q_bf16_x4): New.
7011 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
7012 * config/arm/neon.md
7013 (neon_vst1q_x4<mode>): New.
7014 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
7015 * config/arm/unspecs.md
7016 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
7018 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7020 * config/arm/arm_neon.h
7021 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
7022 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
7023 (vst1q_f16_x3, vst1q_f32_x3): New.
7024 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
7025 (vst1q_bf16_x3): New.
7026 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
7027 * config/arm/neon.md
7028 (neon_vst1q_x3<mode>): New.
7029 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
7030 * config/arm/unspecs.md
7031 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
7033 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7035 * config/arm/arm_neon.h
7036 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
7037 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
7038 (vst1q_f16_x2, vst1q_f32_x2): New.
7039 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
7040 (vst1q_bf16_x2): New.
7041 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
7042 * config/arm/neon.md
7043 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
7045 * config/arm/iterators.md
7046 (VMEMX2): New mode iterator.
7047 (VMEMX2_q): New mode attribute.
7049 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7051 * config/arm/arm_neon.h
7052 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
7053 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
7054 (vst1_f16_x4, vst1_f32_x4): New.
7055 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
7056 (vst1_bf16_x4): New.
7057 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
7058 * config/arm/neon.md (vst1_x4<mode>): New.
7060 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7062 * config/arm/arm_neon.h
7063 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
7064 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
7065 (vst1_f16_x3, vst1_f32_x3): New.
7066 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
7067 (vst1_bf16_x3): New.
7068 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
7069 * config/arm/neon.md (vst1_x3<mode>): New.
7071 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7073 * config/arm/arm_neon.h
7074 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
7075 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
7076 (vst1_f16_x2, vst1_f32_x2): New.
7077 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
7078 (vst1_bf16_x2): New.
7079 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
7080 * config/arm/neon.md (vst1_x2<mode>): New.
7082 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7084 * config/arm/arm_neon.h
7085 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
7086 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
7087 (vld1q_f16_x4, vld1q_f32_x4): New.
7088 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
7089 (vld1q_bf16_x4): New.
7090 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
7091 * config/arm/neon.md
7092 (neon_vld1_x4<mode>): New.
7093 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
7094 * config/arm/unspecs.md
7095 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
7097 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7099 * config/arm/arm_neon.h
7100 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
7101 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
7102 (vld1q_f16_x3, vld1q_f32_x3): New.
7103 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
7104 (vld1q_bf16_x3): New.
7105 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
7106 * config/arm/neon.md
7107 (neon_vld1_x3<mode>): New.
7108 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
7109 * config/arm/unspecs.md
7110 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
7112 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
7114 * config/arm/arm_neon.h
7115 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
7116 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
7117 (vld1q_f16_x2, vld1q_f32_x2): New.
7118 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
7119 (vld1q_bf16_x2): New.
7120 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
7121 * config/arm/neon.md (vld1_x2<mode>): New.
7123 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7125 PR tree-optimization/113287
7126 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
7128 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7130 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
7131 * tree-vect-loop.cc (vect_transform_loop): Likewise.
7133 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7135 PR tree-optimization/113178
7136 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
7139 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7141 PR tree-optimization/113237
7142 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
7143 existing LCSSA variable for exit when all exits are early break.
7145 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7147 PR tree-optimization/113137
7148 PR tree-optimization/113136
7149 PR tree-optimization/113172
7150 PR tree-optimization/113178
7151 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
7152 Maintain PHIs on inverted loops.
7153 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
7154 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
7156 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
7158 2024-01-12 Tamar Christina <tamar.christina@arm.com>
7160 PR tree-optimization/113135
7161 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
7162 dependency analysis.
7164 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
7166 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
7167 diagnostics class member name for abort of error.
7169 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
7171 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
7172 format string to %s argument.
7174 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
7175 Jakub Jelinek <jakub@redhat.com>
7177 PR middle-end/113182
7178 * varasm.cc (process_pending_assemble_externals,
7179 assemble_external_libcall): Use targetm.strip_name_encoding
7180 before calling get_identifier.
7182 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7185 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
7186 New member variable.
7187 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
7189 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
7190 * config/aarch64/aarch64-simd.md
7191 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
7192 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
7193 zip2 for zero-extends to...
7194 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
7195 instruction. Fix big-endian handling.
7196 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
7197 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
7198 zip1 for zero-extends to...
7199 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
7200 Fix big-endian handling.
7201 (*aarch64_zip1_uxtl): New pattern.
7202 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
7203 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
7204 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
7205 (aarch64_gen_shareable_zero): Use it.
7206 (aarch64_split_simd_shift_p): New function.
7208 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7210 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
7211 (function_beg_insn): New macro.
7212 * function.cc (expand_function_start): Initialize function_beg_insn.
7214 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7217 * config/aarch64/aarch64-sve-builtins.h
7218 (function_builder::m_overload_names): Replace with...
7219 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
7221 (add_overloaded_function): Update accordingly, using get_identifier
7222 to get a GGC-friendly record of the name.
7224 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
7227 * config/aarch64/aarch64-sve-builtins.def: Don't include
7228 aarch64-sve-builtins-sme.def.
7229 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
7230 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
7231 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
7232 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
7233 requires AARCH64_FL_SME2.
7234 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
7235 AARCH64_FL_SME adjustment here.
7236 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
7237 include SME intrinsics.
7238 (sme_function_groups): New array.
7239 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
7240 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
7242 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7245 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
7246 (struct cpu_vector_cost): Add regmove struct.
7247 (get_vector_costs): Export as global.
7248 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
7249 (costs::add_stmt_cost): Ditto.
7250 * config/riscv/riscv.cc (get_common_costs): Export global function.
7252 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7254 PR tree-optimization/113334
7255 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
7256 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
7257 to determine if number should be extended by all ones rather than zero
7260 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7262 PR tree-optimization/113330
7263 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
7266 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7268 PR tree-optimization/113323
7269 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
7270 check for lhs being large/huge _BitInt not in m_names.
7272 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7274 PR tree-optimization/113316
7275 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
7276 uninitialized large/huge _BitInt arguments to calls.
7278 2024-01-12 Jakub Jelinek <jakub@redhat.com>
7280 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
7281 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
7282 CEIL (TYPE_PRECISION (t), limb_prec).
7283 (bitint_large_huge::handle_cast): Likewise.
7285 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
7288 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
7289 Use assemble_function_label_final () for Power ELF V1 ABI.
7290 * output.h (assemble_function_label_final): New function.
7291 * varasm.cc (assemble_function_label_raw): Use
7292 assemble_function_label_final ().
7293 (assemble_function_label_final): New function.
7295 2024-01-12 Richard Biener <rguenther@suse.de>
7297 PR middle-end/113344
7298 * match.pd ((double)float CMP (double)float -> float CMP float):
7299 Perform result type check only for vectors.
7300 * fold-const.cc (fold_binary_loc): Likewise.
7302 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
7304 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
7305 (usdot_prod<mode>): Ditto.
7306 (sdot_prod<mode>): Ditto.
7307 (udot_prod<mode>): Ditto.
7309 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
7312 * config/i386/i386-c.cc (ix86_target_macros_internal):
7313 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
7315 2024-01-12 Richard Biener <rguenther@suse.de>
7318 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
7319 Do not generate code when d.testing_p.
7321 2024-01-12 liuhongt <hongtao.liu@intel.com>
7324 * doc/invoke.texi (fcf-protection=): Update documents.
7326 2024-01-12 Pan Li <pan2.li@intel.com>
7328 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
7329 comments of predicate func riscv_v_ext_mode_p.
7331 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
7333 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
7334 Modify ABI-name length of vfloat16m8_t
7336 2024-01-12 Li Wei <liwei@loongson.cn>
7338 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
7341 2024-01-12 Li Wei <liwei@loongson.cn>
7343 * config/loongarch/loongarch.md (add<mode>3): Removed.
7347 (*addsi3_extended): Removed.
7348 (addsi3_extended): New.
7350 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
7352 * config/riscv/thead.md: Add limits for splits.
7354 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
7356 PR middle-end/113322
7357 * expr.cc (do_store_flag): Don't try single bit tests with
7358 comparison on vector types.
7360 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
7362 PR tree-optimization/113301
7363 * match.pd (`1/x`): Delay signed case until late.
7365 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
7367 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
7369 (AVR Internal Options): ...this new @subsubsection.
7371 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
7373 PR rtl-optimization/112918
7374 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
7375 (in_class_p): Restrict condition for narrowing class in case of
7376 allow_all_reload_class_changes_p.
7377 (process_alt_operands): Try to match operand without and with
7378 narrowing reg class. Discourage narrowing the class. Finish insn
7379 matching only if there is no class narrowing.
7380 (curr_insn_transform): Pass true to in_class_p for reg operand win.
7382 2024-01-11 Richard Biener <rguenther@suse.de>
7384 PR tree-optimization/112505
7385 * tree-vect-loop.cc (vectorizable_induction): Reject
7386 bit-precision induction.
7388 2024-01-11 Richard Biener <rguenther@suse.de>
7390 PR tree-optimization/113126
7391 * match.pd ((double)float CMP (double)float -> float CMP float):
7392 Make sure the boolean type is the same.
7393 * fold-const.cc (fold_binary_loc): Likewise.
7395 2024-01-11 Richard Biener <rguenther@suse.de>
7397 PR tree-optimization/112636
7398 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
7399 estimate_numbers_of_iterations before querying
7400 get_max_loop_iterations_int.
7401 (pass_ch::execute): Initialize SCEV and loops appropriately.
7403 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
7405 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
7407 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
7408 * doc/extend.texi (AVR Variable Attributes): Improve documentation
7409 of io, io_low and address attributes.
7410 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
7411 * doc/avr-mmcu.texi: Rebuild.
7413 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
7416 * config/loongarch/genopts/loongarch.opt.in: Mark options with
7417 the "Save" property.
7418 * config/loongarch/loongarch.opt: Same.
7419 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
7420 according to la_target.
7421 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
7422 RESTORE} for the la_target structure; Rename option conditions
7423 to have the same "la_" prefix.
7424 * config/loongarch/loongarch.h: Same.
7426 2024-01-11 Pan Li <pan2.li@intel.com>
7428 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
7429 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
7431 2024-01-11 Alex Coplan <alex.coplan@arm.com>
7434 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
7435 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
7436 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
7437 synthesize these if needed. Update caller ...
7438 (ldp_bb_info::fuse_pair): ... here.
7439 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
7440 and either insn is frame-related.
7441 (find_trailing_add): Punt on frame-related insns.
7442 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
7443 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
7445 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
7447 * config/mips/mips.cc (mips_start_function_definition):
7448 Add ATTRIBUTE_UNUSED.
7450 2024-01-11 Richard Biener <rguenther@suse.de>
7452 PR middle-end/112740
7453 * expr.cc (store_constructor): Check the integer vector
7454 mask has a single bit per element before using sign-extension
7455 to expand an uniform vector.
7457 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7459 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
7460 preempt VLS on unknown NITERS loop.
7462 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
7464 * doc/invoke.texi: Add -mevex512.
7466 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
7468 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
7469 (*nor<mode>3): Likewise.
7470 (nor<mode>3): Likewise.
7471 (*negsi2_extended): New template.
7472 (*<optab>si3_internal): Likewise.
7473 (*one_cmplsi2_internal): Likewise.
7474 (*norsi3_internal): Likewise.
7475 (*<optab>nsi_internal): Likewise.
7476 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
7477 modified bit operation to make the optimization work.
7479 2024-01-11 liuhongt <hongtao.liu@intel.com>
7482 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
7484 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7486 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
7487 (get_vector_costs): Ditto.
7488 (riscv_builtin_vectorization_cost): Ditto.
7490 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7492 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
7494 2024-01-10 Antoni Boucher <bouanto@zoho.com>
7497 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
7498 ipa_free_size_summary.
7499 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
7500 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
7501 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
7502 * ipa-prop.h (ipa_prop_cc_finalize): New function.
7503 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
7504 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
7505 ipa_sra_cc_finalize): New functions.
7506 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
7507 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
7509 Include ipa-utils.h.
7511 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
7513 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
7514 (th_int_get_save_adjustment): Likewise.
7515 (th_int_adjust_cfi_prologue): Likewise.
7516 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
7517 (TH_INT_INTERRUPT): New macro.
7518 (riscv_expand_prologue): Add the processing of XTheadInt.
7519 (riscv_expand_epilogue): Likewise.
7520 * config/riscv/riscv.h (BITSET_P): Moved to here.
7521 * config/riscv/riscv.md: New unspec.
7522 * config/riscv/thead.cc (th_int_get_mask): New function.
7523 (th_int_get_save_adjustment): Likewise.
7524 (th_int_adjust_cfi_prologue): Likewise.
7525 * config/riscv/thead.md (th_int_push): New pattern.
7526 (th_int_pop): new pattern.
7528 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7530 PR tree-optimization/112468
7531 * doc/sourcebuild.texi: Document ifn_copysign.
7532 * match.pd: Only apply transformation if target supports the IFN.
7534 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
7536 PR tree-optimization/112581
7537 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
7538 mark_ssa_maybe_undefs.
7539 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
7540 variables can not be reassociated.
7541 (init_range_entry): Check for uninitialized variables too.
7542 (init_reassoc): Call mark_ssa_maybe_undefs.
7544 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
7546 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
7547 Also handle sign extension.
7549 2024-01-10 Alex Coplan <alex.coplan@arm.com>
7551 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
7553 (-mlate-ldp-fusion): Likewise.
7555 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7557 PR tree-optimization/113287
7558 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
7559 instead of using BRANCH_EDGE to determine true edge.
7561 2024-01-10 Richard Biener <rguenther@suse.de>
7563 PR tree-optimization/113078
7564 * tree-vect-loop.cc (check_reduction_path): Canonicalize
7565 .COND_SUB to .COND_ADD.
7567 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7569 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
7570 Handle prefix mappings before calling find_opt.
7571 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
7572 "-fno-"-prefixed command-line option.
7573 * opts-common.cc (get_option_prefix_remapping): New.
7574 * opts.h (get_option_prefix_remapping): New decl.
7576 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7578 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
7579 m_urlifier to pp_output_formatted_text.
7580 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
7581 (obstack_append_string): New overload, taking a length.
7582 (urlify_quoted_string): Pass in an obstack ptr, rather than using
7583 that of the pp's buffer. Generalize to handle trailing text in
7584 the buffer beyond the run of quoted text.
7585 (class quoting_info): New.
7586 (on_begin_quote): New.
7587 (on_end_quote): New.
7588 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
7589 it to calls to on_begin_quote and on_end_quote.
7590 (struct auto_obstack): New.
7591 (quoting_info::handle_phase_3): New.
7592 (pp_output_formatted_text): Add urlifier param. Use it if there
7593 is deferred urlification. Delete m_quotes.
7594 (selftest::pp_printf_with_urlifier): Pass urlifier to
7595 pp_output_formatted_text.
7596 (selftest::test_urlification): Update results for the existing
7597 case of quoted text stradding chunks; add more such test cases.
7598 * pretty-print.h (class quoting_info): New forward decl.
7599 (chunk_info::m_quotes): New field.
7600 (pp_output_formatted_text): Add optional urlifier param.
7602 2024-01-10 David Malcolm <dmalcolm@redhat.com>
7604 * pretty-print.cc (selftest::test_pp_format): Add selftest
7605 coverage for numbered args.
7607 2024-01-10 Tamar Christina <tamar.christina@arm.com>
7609 PR tree-optimization/113144
7610 PR tree-optimization/113145
7611 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
7612 Update all BB that the original exits dominated.
7614 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
7616 * dwarf2out.cc (modified_type_die): Extend the support of reverse
7617 storage order to enumeration types if -gstrict-dwarf is not passed.
7618 (gen_enumeration_type_die): Add REVERSE parameter and generate the
7619 DIE immediately after the existing one if it is true.
7620 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
7621 call to gen_enumeration_type_die.
7622 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
7623 first recursive call as well as the call to gen_tagged_type_die.
7624 (gen_type_die): Add REVERSE parameter and pass it in the call to
7625 gen_type_die_with_usage.
7627 2024-01-10 Jakub Jelinek <jakub@redhat.com>
7629 PR tree-optimization/113120
7630 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
7631 with root->size TYPE_PRECISION don't build anything new.
7632 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
7633 rather than build_nonstandard_integer_type.
7635 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
7637 * config/i386/i386.opt: Adjust document.
7638 * doc/invoke.texi: Add description for
7639 -mapx-inline-asm-use-gpr32.
7641 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7643 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
7644 (avg<v_double_trunc>3_floor): New pattern.
7645 (<u>avg<v_double_trunc>3_ceil): Remove.
7646 (avg<v_double_trunc>3_ceil): New pattern.
7647 (uavg<mode>3_floor): Ditto.
7648 (uavg<mode>3_ceil): Ditto.
7649 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
7650 (enum insn_type): Ditto.
7651 * config/riscv/riscv-v.cc: Ditto.
7652 * config/riscv/vector-iterators.md (ashiftrt): Remove.
7654 * config/riscv/vector.md: Add VLS modes.
7656 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7659 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
7660 (vczlsbb_char): New int attribute.
7661 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
7662 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
7663 (*vctzlsbb_zext_<mode>): Rename to ...
7664 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
7667 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7670 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
7671 of the last argument from altivec_register_operand to any_operand. If
7672 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
7673 otherwise if it doesn't satisfy altivec_register_operand, force it to
7674 REG using copy_to_mode_reg.
7676 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
7678 PR middle-end/113100
7679 * builtins.cc (expand_builtin_stack_address): Guard stack point
7680 adjustment with SPARC_STACK_BOUNDARY_HACK.
7682 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7684 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
7685 argument string definitions.
7686 * config/loongarch/loongarch-str.h: Same.
7687 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
7688 as aliases to -mexplicit-relocs={always,none}
7689 * config/loongarch/loongarch.opt: Regenerate.
7690 * config/loongarch/loongarch.cc: Same.
7692 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7694 * config/loongarch/loongarch-def.h: Define constants with
7695 enums instead of Macros.
7697 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7699 * config/loongarch/genopts/loongarch-strings: Rename.
7700 * config/loongarch/genopts/loongarch.opt.in: Same.
7701 * config/loongarch/loongarch-cpu.cc: Same.
7702 * config/loongarch/loongarch-def.cc: Same.
7703 * config/loongarch/loongarch-def.h: Same.
7704 * config/loongarch/loongarch-opts.cc: Same.
7705 * config/loongarch/loongarch-opts.h: Same.
7706 * config/loongarch/loongarch-str.h: Same.
7707 * config/loongarch/loongarch.opt: Same.
7709 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
7711 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
7712 variable with the common la_ prefix.
7713 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
7714 flags as saved using TargetVariable.
7715 * config/loongarch/loongarch.opt: Same.
7716 * config/loongarch/loongarch-def.h: Define evolution_set to
7717 mark changes to the -march default.
7718 * config/loongarch/loongarch-driver.cc: Same.
7719 * config/loongarch/loongarch-opts.cc: Same.
7720 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
7721 conditions around the la_target structure.
7722 * config/loongarch/loongarch.cc: Same.
7723 * config/loongarch/loongarch.md: Same.
7724 * config/loongarch/loongarch-builtins.cc: Same.
7725 * config/loongarch/loongarch-c.cc: Same.
7726 * config/loongarch/lasx.md: Same.
7727 * config/loongarch/lsx.md: Same.
7728 * config/loongarch/sync.md: Same.
7730 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
7732 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
7735 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
7737 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
7739 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7741 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
7743 (vectorizable_live_operation): Likewise.
7745 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7747 PR tree-optimization/113199
7748 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
7751 2024-01-09 Jakub Jelinek <jakub@redhat.com>
7754 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
7755 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
7756 GTY(()) declaration before the definition, drop GTY(()) drom the
7759 2024-01-09 Richard Biener <rguenther@suse.de>
7761 PR tree-optimization/113026
7762 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
7763 redundant and wrong niter bound setting. Move niter
7764 bound adjustment down.
7766 2024-01-09 Tamar Christina <tamar.christina@arm.com>
7768 PR middle-end/113163
7769 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
7770 Reject non-linear inductions that aren't supported.
7772 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
7774 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
7775 left shift implementation strategies.
7776 (arc_shift_info): Type for each entry of the shift strategy table.
7777 (arc_shift_context_idx): Return a integer value for each code
7778 generation context, used as an index
7779 (arc_ashl_alg): Table indexed by context and shifted bit count.
7780 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
7781 left shift implementation.
7782 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
7783 provide accurate costs, when optimizing for speed or size.
7785 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7787 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
7789 2024-01-09 Julian Brown <julian@codesourcery.com>
7791 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
7792 processed out before gimplification.
7793 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
7794 * tree.def (OMP_ARRAY_SECTION): New tree code.
7796 2024-01-09 Jakub Jelinek <jakub@redhat.com>
7798 PR tree-optimization/113210
7799 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
7800 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
7801 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
7804 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
7806 PR rtl-optimization/113140
7807 * reorg.cc (fill_slots_from_thread): If we are to branch after the
7808 last instruction of the function, create an end label.
7810 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
7811 Hongtao Liu <hongtao.liu@intel.com>
7814 * config/i386/i386-expand.cc
7815 (ix86_convert_const_wide_int_to_broadcast): Allow call to
7816 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
7817 (ix86_broadcast_from_constant): Revert recent change; Return a
7818 suitable MEMREF independently of mode/target combinations.
7819 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
7820 to decide whether expansion is possible/preferrable. Only try
7821 forcing DImode constants to memory (and trying again) if calling
7822 ix86_expand_vector_init_duplicate fails with an DImode immediate
7824 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
7825 V4SImode for suitable immediate constants.
7826 <case E_V4DImode>: Try using V8SImode for suitable constants.
7827 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
7828 <case E_V2HImode>: Likewise.
7829 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
7830 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
7831 <label widen>: Handle CONT_INTs via simplify_binary_operation.
7832 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
7833 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
7834 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
7835 (ix86_expand_vector_init): Move try using a broadcast for all_same
7836 with ix86_expand_vector_init_duplicate before using constant pool.
7838 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
7840 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
7842 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
7844 * config/arm/arm-cpus.in (cortex-m52): New cpu.
7845 * config/arm/arm-tables.opt: Regenerate.
7846 * config/arm/arm-tune.md: Regenerate.
7848 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
7850 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
7851 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
7852 (@vec_concatz<mode>): New insn pattern.
7853 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
7854 Handle VALS containing two vectors.
7856 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
7858 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
7859 (vundefined): Ditto.
7861 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
7863 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
7864 Add new function_base for crypto vector.
7865 (class bitmanip): Ditto.
7866 (class b_reverse):Ditto.
7867 (class vwsll): Ditto.
7868 (class clmul): Ditto.
7869 (class vg_nhab): Ditto.
7870 (class crypto_vv):Ditto.
7871 (class crypto_vi):Ditto.
7872 (class vaeskf2_vsm3c):Ditto.
7873 (class vsm3me): Ditto.
7874 (BASE): Add BASE declaration for crypto vector.
7875 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7876 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
7877 Add crypto vector intrinsic definition.
7905 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
7906 Add new function_shape for crypto vector.
7907 (struct crypto_vi_def): Ditto.
7908 (struct crypto_vv_no_op_type_def): Ditto.
7909 (SHAPE): Add SHAPE declaration of crypto vector.
7910 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
7911 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
7912 Add new data type for crypto vector.
7913 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
7914 (vuint32mf2_t): Ditto.
7915 (vuint32m1_t): Ditto.
7916 (vuint32m2_t): Ditto.
7917 (vuint32m4_t): Ditto.
7918 (vuint32m8_t): Ditto.
7919 (vuint64m1_t): Ditto.
7920 (vuint64m2_t): Ditto.
7921 (vuint64m4_t): Ditto.
7922 (vuint64m8_t): Ditto.
7923 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
7924 Add new data struct for crypto vector.
7925 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
7926 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
7927 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
7929 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
7932 * varasm.cc (assemble_function_label_raw): Do not call
7933 asan_function_start () without the current function.
7935 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
7938 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
7939 extern and kernel_helper attributed function decls.
7941 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
7943 * btfout.cc (output_btf_strs): Changed.
7945 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
7947 * config/gcn/mkoffload.cc (main): Handle gfx1100
7948 when setting the default XNACK.
7950 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
7952 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
7953 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
7954 (ASM_SPEC): Handle gfx1100.
7955 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
7956 (enum gcn_isa): Add ISA_RDNA3.
7957 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
7958 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
7959 * config/gcn/gcn.cc (gcn_option_override,
7960 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
7961 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
7962 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
7963 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
7965 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
7966 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
7968 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
7969 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
7970 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
7971 (isa_has_combined_avgprs, main): Handle gfx1100.
7972 * config/gcn/t-omp-device (isa): Add gfx1100.
7974 2024-01-08 Richard Biener <rguenther@suse.de>
7976 * doc/invoke.texi (-mmovbe): Clarify.
7978 2024-01-08 Richard Biener <rguenther@suse.de>
7980 PR tree-optimization/113026
7981 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
7982 Avoid an epilog in more cases.
7983 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
7984 epilogues niter upper bounds and estimates.
7986 2024-01-08 Jakub Jelinek <jakub@redhat.com>
7988 PR tree-optimization/113228
7989 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
7991 2024-01-08 Jakub Jelinek <jakub@redhat.com>
7993 PR tree-optimization/113120
7994 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
7995 large _BitInt zero INTEGER_CST PHI argument.
7997 2024-01-08 Jakub Jelinek <jakub@redhat.com>
7999 PR tree-optimization/113119
8000 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
8001 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
8002 is before REALPART_EXPR.
8004 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
8007 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
8008 range when diagnosing attribute "io" and "io_low" are out of range.
8009 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
8010 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
8011 in contexts other than static storage.
8012 (avr_asm_output_aligned_decl_common): Move output of decls with
8013 attribute "address", "io", and "io_low" to...
8014 (avr_output_addr_attrib): ...this new function.
8015 (avr_asm_asm_output_aligned_bss): Remove output for decls with
8016 attribute "address", "io", and "io_low".
8017 (avr_encode_section_info): Rectify handling of decls with attribute
8018 "address", "io", and "io_low".
8020 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
8022 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
8023 (elf_flags): Remove XNACK from the default value.
8024 (main): Set a default XNACK according to the arch.
8026 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
8028 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
8029 (process_asm): Don't count avgprs.
8031 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
8033 * config/i386/i386.opt: Add supported sub-features.
8034 * doc/extend.texi: Add description for target attribute.
8036 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
8038 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
8040 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
8041 Uros Bizjak <ubizjak@gmail.com>
8044 * config/i386/i386-features.cc (compute_convert_gain): Include
8045 the overhead of explicit load and store (movd) instructions when
8046 converting non-store scalar operations with memory destinations.
8047 Various indentation whitespace fixes.
8049 2024-01-07 Tamar Christina <tamar.christina@arm.com>
8051 * config/arm/neon.md (cbranch<mode>4): New.
8053 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8055 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
8057 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
8059 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
8061 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8064 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
8067 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8069 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
8070 (variable_vectorized_p): Teach loop invariant.
8071 (has_unexpected_spills_p): Ditto.
8073 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8075 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
8076 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
8077 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
8079 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
8082 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
8083 (aarch64-vect-compare-costs): ...this.
8084 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
8086 (-param=aarch64-vect-compare-costs=): ...this new param.
8087 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
8088 Don't disable it when vectorizing for Advanced SIMD only.
8089 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
8090 whenever aarch64_vect_compare_costs is true.
8092 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
8094 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
8095 Modify the method of determining the memory offset of [x]vld/[x]vst.
8096 (lasx_mxst_<lasxfmt_f>): Likewise.
8097 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
8098 (loongarch_address_insns): Likewise.
8099 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
8100 (lsx_st_<lsxfmt_f>): Likewise.
8101 * config/loongarch/predicates.md (aq10b_operand): Likewise.
8102 (aq10h_operand): Likewise.
8103 (aq10w_operand): Likewise.
8104 (aq10d_operand): Likewise.
8106 2024-01-05 Alex Coplan <alex.coplan@arm.com>
8109 * config/aarch64/aarch64-ldp-fusion.cc
8110 (ldp_bb_info::try_fuse_pair): If the second access can throw,
8111 narrow the move range to exactly that insn.
8113 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
8115 * asan.cc (asan_function_start): Drop switch_to_section ().
8116 (asan_emit_stack_protection): Set .LASANPC alignment.
8117 * config/i386/i386.cc: Use assemble_function_label_raw ()
8118 instead of ASM_OUTPUT_LABEL ().
8119 * config/s390/s390.cc (s390_asm_output_function_label):
8121 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
8122 * final.cc (final_start_function_1): Drop
8123 asan_function_start ().
8124 * output.h (assemble_function_label_raw): New function.
8125 * varasm.cc (assemble_function_label_raw): Likewise.
8127 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
8129 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
8130 Use ASM_OUTPUT_FUNCTION_LABEL ().
8131 * config/alpha/alpha.cc (alpha_start_function): Likewise.
8132 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8133 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
8134 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8135 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8136 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
8137 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8138 * config/ia64/ia64.cc (ia64_start_function): Likewise.
8139 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
8141 * config/microblaze/microblaze.cc (microblaze_function_prologue):
8143 * config/mips/mips.cc (mips_start_unique_function): Return the
8145 (mips_start_function_definition): Use
8146 ASM_OUTPUT_FUNCTION_LABEL ().
8147 (mips_finish_stub): Pass the tree to
8148 mips_start_function_definition ().
8149 (mips16_build_function_stub): Likewise.
8150 (mips16_build_call_stub): Likewise.
8151 (mips_output_function_prologue): Likewise.
8152 * config/pa/pa.cc (pa_output_function_label): Use
8153 ASM_OUTPUT_FUNCTION_LABEL ().
8154 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
8155 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
8157 (rs6000_xcoff_declare_function_name): Likewise.
8159 2024-01-05 Jakub Jelinek <jakub@redhat.com>
8161 PR tree-optimization/113201
8162 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
8163 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
8165 2024-01-05 Jakub Jelinek <jakub@redhat.com>
8167 PR tree-optimization/90693
8168 * tree-ssa-math-opts.cc (match_single_bit_test): If
8169 tree_expr_nonzero_p (arg), remember it in the second argument to
8170 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
8171 arg ^ (arg - 1) > arg - 1.
8172 * internal-fn.cc (expand_POPCOUNT): If second argument to
8173 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
8174 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
8176 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
8178 * config/riscv/riscv-v.cc (expand_load_store):
8180 (expand_cond_len_op): Ditto.
8181 (expand_gather_scatter): Ditto.
8182 (expand_lanes_load_store): Ditto.
8183 (expand_fold_extract_last): Ditto.
8185 2024-01-05 Pan Li <pan2.li@intel.com>
8188 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
8190 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
8191 Add new function_base for crypto vector.
8192 (class bitmanip): Ditto.
8193 (class b_reverse):Ditto.
8194 (class vwsll): Ditto.
8195 (class clmul): Ditto.
8196 (class vg_nhab): Ditto.
8197 (class crypto_vv):Ditto.
8198 (class crypto_vi):Ditto.
8199 (class vaeskf2_vsm3c):Ditto.
8200 (class vsm3me): Ditto.
8201 (BASE): Add BASE declaration for crypto vector.
8202 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
8203 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
8204 Add crypto vector intrinsic definition.
8232 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
8233 Add new function_shape for crypto vector.
8234 (struct crypto_vi_def): Ditto.
8235 (struct crypto_vv_no_op_type_def): Ditto.
8236 (SHAPE): Add SHAPE declaration of crypto vector.
8237 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
8238 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
8239 Add new data type for crypto vector.
8240 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8241 (vuint32mf2_t): Ditto.
8242 (vuint32m1_t): Ditto.
8243 (vuint32m2_t): Ditto.
8244 (vuint32m4_t): Ditto.
8245 (vuint32m8_t): Ditto.
8246 (vuint64m1_t): Ditto.
8247 (vuint64m2_t): Ditto.
8248 (vuint64m4_t): Ditto.
8249 (vuint64m8_t): Ditto.
8250 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
8251 Add new data struct for crypto vector.
8252 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8253 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
8254 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
8256 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
8258 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
8259 Add new function_base for crypto vector.
8260 (class bitmanip): Ditto.
8261 (class b_reverse):Ditto.
8262 (class vwsll): Ditto.
8263 (class clmul): Ditto.
8264 (class vg_nhab): Ditto.
8265 (class crypto_vv):Ditto.
8266 (class crypto_vi):Ditto.
8267 (class vaeskf2_vsm3c):Ditto.
8268 (class vsm3me): Ditto.
8269 (BASE): Add BASE declaration for crypto vector.
8270 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
8271 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
8272 Add crypto vector intrinsic definition.
8300 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
8301 Add new function_shape for crypto vector.
8302 (struct crypto_vi_def): Ditto.
8303 (struct crypto_vv_no_op_type_def): Ditto.
8304 (SHAPE): Add SHAPE declaration of crypto vector.
8305 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
8306 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
8307 Add new data type for crypto vector.
8308 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8309 (vuint32mf2_t): Ditto.
8310 (vuint32m1_t): Ditto.
8311 (vuint32m2_t): Ditto.
8312 (vuint32m4_t): Ditto.
8313 (vuint32m8_t): Ditto.
8314 (vuint64m1_t): Ditto.
8315 (vuint64m2_t): Ditto.
8316 (vuint64m4_t): Ditto.
8317 (vuint64m8_t): Ditto.
8318 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
8319 Add new data struct for crypto vector.
8320 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
8321 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
8322 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
8324 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8326 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8328 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
8330 PR tree-optimization/113186
8331 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
8332 Match `^` with the `==` for 1bit integral types.
8333 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
8336 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8338 * toplev.cc (general_init): Pass lang_mask to urlifier.
8340 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8342 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
8344 (diagnostic_context::make_option_url): Update for lang_mask param.
8345 * gcc-urlifier.cc: Include "opts.h" and "options.h".
8346 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
8347 (gcc_urlifier::m_lang_mask): New field.
8348 (doc_urls): Make static.
8349 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
8350 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
8351 Look for an option by name before trying a binary search in
8353 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
8354 (gcc_urlifier::get_url_suffix_for_option): New.
8355 (make_gcc_urlifier): Add lang_mask param.
8356 (selftest::gcc_urlifier_cc_tests): Update for above changes.
8357 Verify that a URL is found for "-fpack-struct".
8358 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
8359 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
8360 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
8361 to make_gcc_urlifier.
8362 * opts-diagnostic.h (get_option_url): Add lang_mask param.
8363 * opts.cc (get_option_html_page): Remove special-casing for
8365 (get_option_url_suffix): New.
8366 (get_option_url): Reimplement.
8367 (selftest::test_get_option_html_page): Rename to...
8368 (selftest::test_get_option_url_suffix): ...this and update for
8370 (selftest::opts_cc_tests): Update for renaming.
8371 * opts.h: Include "rich-location.h".
8372 (get_option_url_suffix): New decl.
8374 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8376 * Makefile.in (ALL_OPT_URL_FILES): New.
8377 (GCC_OBJS): Add options-urls.o.
8379 (OBJS-libcommon): Likewise.
8380 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
8381 inputs to opt-gather.awk.
8382 (options-urls.cc): New Makefile target.
8383 * opt-functions.awk (url_suffix): New function.
8384 (lang_url_suffix): New function.
8385 * options-urls-cc-gen.awk: New file.
8386 * opts.h (get_opt_url_suffix): New decl.
8388 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8390 * params.opt.urls: New file, autogenerated by
8391 regenerate-opt-urls.py.
8393 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8395 * common.opt.urls: New file, autogenerated by
8396 regenerate-opt-urls.py.
8397 * config/aarch64/aarch64.opt.urls: Likewise.
8398 * config/alpha/alpha.opt.urls: Likewise.
8399 * config/alpha/elf.opt.urls: Likewise.
8400 * config/arc/arc-tables.opt.urls: Likewise.
8401 * config/arc/arc.opt.urls: Likewise.
8402 * config/arm/arm-tables.opt.urls: Likewise.
8403 * config/arm/arm.opt.urls: Likewise.
8404 * config/arm/vxworks.opt.urls: Likewise.
8405 * config/avr/avr.opt.urls: Likewise.
8406 * config/bpf/bpf.opt.urls: Likewise.
8407 * config/c6x/c6x-tables.opt.urls: Likewise.
8408 * config/c6x/c6x.opt.urls: Likewise.
8409 * config/cris/cris.opt.urls: Likewise.
8410 * config/cris/elf.opt.urls: Likewise.
8411 * config/csky/csky.opt.urls: Likewise.
8412 * config/csky/csky_tables.opt.urls: Likewise.
8413 * config/darwin.opt.urls: Likewise.
8414 * config/dragonfly.opt.urls: Likewise.
8415 * config/epiphany/epiphany.opt.urls: Likewise.
8416 * config/fr30/fr30.opt.urls: Likewise.
8417 * config/freebsd.opt.urls: Likewise.
8418 * config/frv/frv.opt.urls: Likewise.
8419 * config/ft32/ft32.opt.urls: Likewise.
8420 * config/fused-madd.opt.urls: Likewise.
8421 * config/g.opt.urls: Likewise.
8422 * config/gcn/gcn.opt.urls: Likewise.
8423 * config/gnu-user.opt.urls: Likewise.
8424 * config/h8300/h8300.opt.urls: Likewise.
8425 * config/hpux11.opt.urls: Likewise.
8426 * config/i386/cygming.opt.urls: Likewise.
8427 * config/i386/cygwin.opt.urls: Likewise.
8428 * config/i386/djgpp.opt.urls: Likewise.
8429 * config/i386/i386.opt.urls: Likewise.
8430 * config/i386/mingw-w64.opt.urls: Likewise.
8431 * config/i386/mingw.opt.urls: Likewise.
8432 * config/i386/nto.opt.urls: Likewise.
8433 * config/ia64/ia64.opt.urls: Likewise.
8434 * config/ia64/ilp32.opt.urls: Likewise.
8435 * config/ia64/vms.opt.urls: Likewise.
8436 * config/iq2000/iq2000.opt.urls: Likewise.
8437 * config/linux-android.opt.urls: Likewise.
8438 * config/linux.opt.urls: Likewise.
8439 * config/lm32/lm32.opt.urls: Likewise.
8440 * config/loongarch/loongarch.opt.urls: Likewise.
8441 * config/lynx.opt.urls: Likewise.
8442 * config/m32c/m32c.opt.urls: Likewise.
8443 * config/m32r/m32r.opt.urls: Likewise.
8444 * config/m68k/ieee.opt.urls: Likewise.
8445 * config/m68k/m68k-tables.opt.urls: Likewise.
8446 * config/m68k/m68k.opt.urls: Likewise.
8447 * config/m68k/uclinux.opt.urls: Likewise.
8448 * config/mcore/mcore.opt.urls: Likewise.
8449 * config/microblaze/microblaze.opt.urls: Likewise.
8450 * config/mips/mips-tables.opt.urls: Likewise.
8451 * config/mips/mips.opt.urls: Likewise.
8452 * config/mips/sde.opt.urls: Likewise.
8453 * config/mmix/mmix.opt.urls: Likewise.
8454 * config/mn10300/mn10300.opt.urls: Likewise.
8455 * config/moxie/moxie.opt.urls: Likewise.
8456 * config/msp430/msp430.opt.urls: Likewise.
8457 * config/nds32/nds32-elf.opt.urls: Likewise.
8458 * config/nds32/nds32-linux.opt.urls: Likewise.
8459 * config/nds32/nds32.opt.urls: Likewise.
8460 * config/netbsd-elf.opt.urls: Likewise.
8461 * config/netbsd.opt.urls: Likewise.
8462 * config/nios2/elf.opt.urls: Likewise.
8463 * config/nios2/nios2.opt.urls: Likewise.
8464 * config/nvptx/nvptx-gen.opt.urls: Likewise.
8465 * config/nvptx/nvptx.opt.urls: Likewise.
8466 * config/openbsd.opt.urls: Likewise.
8467 * config/or1k/elf.opt.urls: Likewise.
8468 * config/or1k/or1k.opt.urls: Likewise.
8469 * config/pa/pa-hpux.opt.urls: Likewise.
8470 * config/pa/pa-hpux1010.opt.urls: Likewise.
8471 * config/pa/pa-hpux1111.opt.urls: Likewise.
8472 * config/pa/pa-hpux1131.opt.urls: Likewise.
8473 * config/pa/pa.opt.urls: Likewise.
8474 * config/pa/pa64-hpux.opt.urls: Likewise.
8475 * config/pdp11/pdp11.opt.urls: Likewise.
8476 * config/pru/pru.opt.urls: Likewise.
8477 * config/riscv/riscv.opt.urls: Likewise.
8478 * config/rl78/rl78.opt.urls: Likewise.
8479 * config/rpath.opt.urls: Likewise.
8480 * config/rs6000/476.opt.urls: Likewise.
8481 * config/rs6000/aix64.opt.urls: Likewise.
8482 * config/rs6000/darwin.opt.urls: Likewise.
8483 * config/rs6000/linux64.opt.urls: Likewise.
8484 * config/rs6000/rs6000-tables.opt.urls: Likewise.
8485 * config/rs6000/rs6000.opt.urls: Likewise.
8486 * config/rs6000/sysv4.opt.urls: Likewise.
8487 * config/rtems.opt.urls: Likewise.
8488 * config/rx/elf.opt.urls: Likewise.
8489 * config/rx/rx.opt.urls: Likewise.
8490 * config/s390/s390.opt.urls: Likewise.
8491 * config/s390/tpf.opt.urls: Likewise.
8492 * config/sh/sh.opt.urls: Likewise.
8493 * config/sh/superh.opt.urls: Likewise.
8494 * config/sol2.opt.urls: Likewise.
8495 * config/sparc/long-double-switch.opt.urls: Likewise.
8496 * config/sparc/sparc.opt.urls: Likewise.
8497 * config/stormy16/stormy16.opt.urls: Likewise.
8498 * config/v850/v850.opt.urls: Likewise.
8499 * config/vax/elf.opt.urls: Likewise.
8500 * config/vax/vax.opt.urls: Likewise.
8501 * config/visium/visium.opt.urls: Likewise.
8502 * config/vms/vms.opt.urls: Likewise.
8503 * config/vxworks-smp.opt.urls: Likewise.
8504 * config/vxworks.opt.urls: Likewise.
8505 * config/xtensa/elf.opt.urls: Likewise.
8506 * config/xtensa/uclinux.opt.urls: Likewise.
8507 * config/xtensa/xtensa.opt.urls: Likewise.
8508 * config/bfin/bfin.opt.urls: New file.
8510 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8512 * Makefile.in (OPT_URLS_HTML_DEPS): New.
8513 (regenerate-opt-urls): New target.
8514 (regenerate-opt-urls-unit-test): New target.
8515 * doc/options.texi (Option properties): Add UrlSuffix and
8516 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
8517 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
8518 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
8519 and Makefile.in's OPT_URLS_HTML_DEPS.
8520 (Anatomy of a Target Back End): Add
8521 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
8522 * regenerate-opt-urls.py: New file.
8524 2024-01-04 David Malcolm <dmalcolm@redhat.com>
8526 * diagnostic-format-sarif.cc
8527 (sarif_builder::make_logical_location_object): Convert to...
8528 (make_sarif_logical_location_object): ...this.
8529 (sarif_builder::set_any_logical_locs_arr): Update for above
8531 (sarif_builder::make_thread_flow_location_object): Call
8532 maybe_add_sarif_properties on each diagnostic_event.
8533 * diagnostic-format-sarif.h (class logical_location): New forward
8535 (make_sarif_logical_location_object): New decl.
8536 * diagnostic-path.h (class sarif_object): New forward decl.
8537 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
8539 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
8540 Patrick Lin <patrick@andestech.com>
8541 Rufus Chen <rufus@andestech.com>
8542 Monk Chiang <monk.chiang@sifive.com>
8544 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
8545 with Nan-boxing value.
8546 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
8548 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
8549 Jeff Law <jlaw@ventanamicro.com>
8551 PR rtl-optimization/104914
8552 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
8553 a sign or zero extension is only required if the modified field
8554 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
8555 targets, don't refer to the temporarily incorrectly extended value
8556 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
8558 2024-01-04 Pan Li <pan2.li@intel.com>
8561 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8563 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8565 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8567 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
8569 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
8571 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
8574 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8576 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
8577 (compute_nregs_for_mode): Refine LMUL.
8578 (max_number_of_live_regs): Ditto.
8579 (compute_estimated_lmul): Ditto.
8580 (has_unexpected_spills_p): Ditto.
8582 2024-01-04 Li Wei <liwei@loongson.cn>
8584 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
8585 Remove useless forward declaration.
8586 (loongarch_is_even_extraction): Remove useless forward declaration.
8587 (loongarch_try_expand_lsx_vshuf_const): Removed.
8588 (loongarch_expand_vec_perm_const_1): Merged.
8589 (loongarch_is_double_duplicate): Removed.
8590 (loongarch_is_center_extraction): Ditto.
8591 (loongarch_is_reversing_permutation): Ditto.
8592 (loongarch_is_di_misalign_extract): Ditto.
8593 (loongarch_is_si_misalign_extract): Ditto.
8594 (loongarch_is_lasx_lowpart_extract): Ditto.
8595 (loongarch_is_op_reverse_perm): Ditto.
8596 (loongarch_is_single_op_perm): Ditto.
8597 (loongarch_is_divisible_perm): Ditto.
8598 (loongarch_is_triple_stride_extract): Ditto.
8599 (loongarch_expand_vec_perm_const_2): Merged.
8600 (loongarch_expand_vec_perm_const): New.
8601 (loongarch_vectorize_vec_perm_const): Adjust.
8603 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
8605 * omp-general.cc: Fix comment typos and misplaced/confusing
8606 comments. Delete redundant include of omp-general.h.
8608 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8610 PR rtl-optimization/104914
8611 * config/mips/mips.md (insqisi_extended): New patterns.
8612 (inshisi_extended): Ditto.
8614 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8616 * config/mips/mips.cc (mips_insn_cost): New function.
8618 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
8620 * config/mips/mips.md (perf_ratio): New attribute.
8622 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8626 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
8627 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
8628 blocks belong to infinite loop.
8629 (pre_vsetvl::emit_vsetvl): Remove fake edges.
8630 * config/riscv/t-riscv: Add a new include file.
8632 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8634 * config/riscv/vector.md: Fix indent.
8636 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
8638 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
8639 OMP_CLAUSE__SIMDUID_.
8640 * tree.cc (omp_clause_num_ops): Update position of entry for
8641 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
8642 (omp_clause_code_name): Likewise.
8644 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
8646 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
8647 printing of FUNC_MAP/IND_FUNC_MAP labels.
8649 2024-01-03 Jakub Jelinek <jakub@redhat.com>
8651 * gcc.cc (process_command): Update copyright notice dates.
8652 * gcov-dump.cc (print_version): Ditto.
8653 * gcov.cc (print_version): Ditto.
8654 * gcov-tool.cc (print_version): Ditto.
8655 * gengtype.cc (create_file): Ditto.
8656 * doc/cpp.texi: Bump @copying's copyright year.
8657 * doc/cppinternals.texi: Ditto.
8658 * doc/gcc.texi: Ditto.
8659 * doc/gccint.texi: Ditto.
8660 * doc/gcov.texi: Ditto.
8661 * doc/install.texi: Ditto.
8662 * doc/invoke.texi: Ditto.
8664 2024-01-03 Xi Ruoyao <xry111@xry111.site>
8666 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
8667 (fmin<mode>3): Likewise.
8668 (reduc_fmax_scal_<mode>3): New define_expand.
8669 (reduc_fmin_scal_<mode>3): Likewise.
8671 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8674 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
8675 (max_number_of_live_regs): Ditto.
8676 (has_unexpected_spills_p): Ditto.
8678 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
8679 Jin Ma <jinma@linux.alibaba.com>
8680 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8681 Christoph Müllner <christoph.muellner@vrull.eu>
8683 * config/riscv/vector.md:
8684 Use vector_length_operand for vsetvl patterns.
8686 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8688 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
8689 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
8691 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
8693 * config/aarch64/aarch64-tuning-flags.def
8694 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
8695 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
8696 * config/aarch64/aarch64.cc
8697 (aarch64_override_options_internal): Set
8698 param_fully_pipelined_fma according to tuning option.
8699 * config/aarch64/tuning_models/ampere1.h: Add
8700 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
8701 * config/aarch64/tuning_models/ampere1a.h: Likewise.
8702 * config/aarch64/tuning_models/ampere1b.h: Likewise.
8704 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
8706 * config/riscv/vector-crypto.md: Modify copyright year.
8708 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8710 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
8712 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
8714 * config.in: Regenerate.
8715 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
8716 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
8717 Added TLS Le Relax support.
8718 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
8719 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
8720 * configure: Regenerate.
8721 * configure.ac: Check if binutils supports TLS le relax.
8723 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
8725 * config/riscv/iterators.md: Add rotate insn name.
8726 * config/riscv/riscv.md: Add new insns name for crypto vector.
8727 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
8728 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
8729 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
8731 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
8734 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
8735 pointer type liveness count.
8737 Copyright (C) 2024 Free Software Foundation, Inc.
8739 Copying and distribution of this file, with or without modification,
8740 are permitted in any medium without royalty provided the copyright
8741 notice and this notice are preserved.