1 2024-02-16 Edwin Lu <ewlu@rivosinc.com>
3 * doc/sourcebuild.texi: add scan-assembler-bound
5 2024-02-16 Jason Merrill <jason@redhat.com>
7 * gdbhooks.py: Fix regex syntax.
9 2024-02-16 Richard Biener <rguenther@suse.de>
11 PR tree-optimization/113895
12 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
13 consistency checking when there are out-of-bound array
14 accesses. Allow -1 off when from an array reference with
17 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
20 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
23 2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25 * doc/sourcebuild.texi (Effective-Target Keywords, Other
26 attribugs): Document linker_plugin.
27 (Require Support): Document dg-require-linker-plugin.
29 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
32 * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
33 * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
34 (RISCV_MINOR_VERSION_BASE): Ditto.
35 (RISCV_REVISION_VERSION_BASE): Ditto.
36 * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
37 rather than magic number.
38 * config/riscv/riscv.h (riscv_arch_help): New.
39 (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
40 (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
41 --print-supported-extensions.
42 * config/riscv/riscv.opt (march=help): New.
43 (print-supported-extensions): New.
44 (-print-supported-extensions): New.
45 * doc/invoke.texi (RISC-V Options): Document -march=help.
47 2024-02-16 Tejas Belagod <tejas.belagod@arm.com>
50 * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
51 for indirect calls with 4 or more arguments in pac-enabled functions.
53 2024-02-15 David Faust <david.faust@oracle.com>
55 * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
56 use ldxb instead of ldxh.
58 2024-02-15 Jakub Jelinek <jakub@redhat.com>
61 * cfgrtl.h (prepend_insn_to_edge): New declaration.
62 * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
64 (prepend_insn_to_edge): New function.
65 * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
68 2024-02-15 Richard Biener <rguenther@suse.de>
70 PR tree-optimization/111156
71 * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
72 at the pattern stmt if any.
74 2024-02-15 Georg-Johann Lay <avr@gjlay.de>
77 * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
78 * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
79 * config/avr/avr.cc (avr_adiw_reg_p): New function.
80 (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
81 Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
82 * config/avr/avr.md: Same.
83 (attr "isa") <tiny, no_tiny>: Remove.
85 (define_insn, define_insn_and_split): When an alternative has
86 constraint "w", then set attribute "isa" to "adiw".
87 * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
88 Built-in define __AVR_HAVE_ADIW__.
89 * doc/invoke.texi (AVR Options): Document it.
91 2024-02-15 Andrew Stubbs <ams@baylibre.com>
93 * config/gcn/gcn-valu.md
94 (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
95 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
96 details are supported on RDNA devices.
98 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
101 * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
102 usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
103 smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
104 Add sentence about what the mode m is.
106 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
108 * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
109 smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
112 2024-02-15 Richard Biener <rguenther@suse.de>
114 * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
117 2024-02-15 Jakub Jelinek <jakub@redhat.com>
119 PR tree-optimization/113567
120 * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
121 _BitInt multiplication, division or modulo with
122 SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
123 force the affected inputs into a new SSA_NAME.
125 2024-02-14 Uros Bizjak <ubizjak@gmail.com>
128 * config/i386/mmx.md (V248FI): New mode iterator.
130 (vec_shl_<V248FI:mode>): New expander.
131 (vec_shl_<V24FI_32:mode>): Ditto.
132 (vec_shr_<V248FI:mode>): Ditto.
133 (vec_shr_<V24FI_32:mode>): Ditto.
134 * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
135 (vec_shr_<V248FI:mode>): Ditto.
137 2024-02-14 Jan Hubicka <jh@suse.cz>
139 PR tree-optimization/111054
140 * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
142 2024-02-14 Tamar Christina <tamar.christina@arm.com>
144 * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
146 2024-02-14 Richard Biener <rguenther@suse.de>
148 PR tree-optimization/113910
149 * bitmap.cc (bitmap_hash): Mix the full element "hash" to
152 2024-02-14 Jakub Jelinek <jakub@redhat.com>
154 * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
155 (pp_integer_with_precision): For unsigned ptrdiff_t printing
156 with u, o or x print ptrdiff_t argument converted to
157 unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
159 2024-02-14 Richard Biener <rguenther@suse.de>
162 * expr.cc (do_store_flag): For vector bool compares of vectors
163 with padding zero that.
164 * dojump.cc (do_compare_and_jump): Likewise.
166 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
168 * doc/install.texi (Prerequisites): Update gettext link.
170 2024-02-13 H.J. Lu <hjl.tools@gmail.com>
173 * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
174 Return false if the incoming stack isn't 16-byte aligned.
176 2024-02-13 Tobias Burnus <tburnus@baylibre.com>
179 * omp-general.cc (struct omp_ts_info): Update for splitting of
180 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
181 * omp-selectors.h (enum omp_tp_type): Replace
182 OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
184 2024-02-13 Monk Chiang <monk.chiang@sifive.com>
187 * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
188 recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
190 2024-02-13 Richard Biener <rguenther@suse.de>
192 PR tree-optimization/113895
193 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
194 offset to discover constant array indices in bits, handle
195 COMPONENT_REF to bitfields.
197 2024-02-13 Richard Biener <rguenther@suse.de>
199 PR tree-optimization/113831
200 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
203 2024-02-13 Richard Biener <rguenther@suse.de>
205 PR tree-optimization/113902
206 * tree-vect-loop.cc (move_early_exit_stmts): Track
207 last_seen_vuse for VUSE updating.
209 2024-02-13 Tamar Christina <tamar.christina@arm.com>
211 PR tree-optimization/113734
212 * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
213 an early break loop as partial.
215 2024-02-13 Richard Biener <rguenther@suse.de>
217 PR tree-optimization/113898
218 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
219 missing accumulated off adjustment.
221 2024-02-13 Jakub Jelinek <jakub@redhat.com>
223 * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
224 instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
225 it against UINT_MAX and ULONG_MAX.
227 2024-02-13 David Malcolm <dmalcolm@redhat.com>
229 * diagnostic-core.h (emit_diagnostic_valist): Rename overload
231 (emit_diagnostic_valist_meta): ...this.
232 * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
233 (emit_diagnostic_valist_meta): ...this.
235 2024-02-12 Jakub Jelinek <jakub@redhat.com>
237 PR tree-optimization/113849
238 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
239 fast path for widening casts where !m_upwards_2limb and lhs_type
240 has precision which is a multiple of limb_prec.
242 2024-02-12 Jakub Jelinek <jakub@redhat.com>
245 * attribs.cc (extract_attribute_substring): Remove.
246 (lookup_scoped_attribute_spec): Don't call it.
248 2024-02-12 Jakub Jelinek <jakub@redhat.com>
250 * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
251 and cast to fmt_size_t instead of %lu and cast to unsigned long.
253 2024-02-12 Christophe Lyon <christophe.lyon@linaro.org>
255 * Makefile.in: Add no-info dependency.
256 * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
258 * configure: Regenerate.
260 2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
263 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
264 available to all sub-targets.
265 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
266 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
268 2024-02-12 Richard Biener <rguenther@suse.de>
270 PR tree-optimization/113831
271 PR tree-optimization/108355
272 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
273 we see variable array indices and get_ref_base_and_extent
274 can resolve those to constants fix up the ops to constants
276 (ao_ref_init_from_vn_reference): Use 'off' member for
277 ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
278 (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
280 2024-02-12 Pan Li <pan2.li@intel.com>
282 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
283 Replace args to arguments for misspelled term.
285 2024-02-12 Georg-Johann Lay <avr@gjlay.de>
288 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
289 <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
290 when not linked with -mrodata-in-ram.
292 2024-02-12 Richard Biener <rguenther@suse.de>
294 PR tree-optimization/113863
295 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
296 Record crossed virtual PHIs.
297 * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
300 2024-02-10 Marek Polacek <polacek@redhat.com>
305 * doc/invoke.texi: Document -Wtemplate-id-cdtor.
307 2024-02-10 Jakub Jelinek <jakub@redhat.com>
309 * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
310 computation of idx for i == 4 of bitint_prec_huge.
312 2024-02-10 Jakub Jelinek <jakub@redhat.com>
315 * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
316 decls create PARM_DECL with pointer to original type, set
317 TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
318 DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
319 (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
320 wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
321 (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
322 of the var as argument.
324 2024-02-10 Jakub Jelinek <jakub@redhat.com>
326 * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
327 size_t and precision 4 for ptrdiff_t. Formatting fix.
328 (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers.
330 (test_pp_format): Test t and z modifiers.
331 * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
333 2024-02-10 Jakub Jelinek <jakub@redhat.com>
335 * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
336 sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
337 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
338 * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
339 and casts to fmt_size_t instead of "%ld" and casts to long.
340 (print_value_expr_statistics, print_type_hash_statistics): Likewise.
341 * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
342 instead of "%lu" and casts to unsigned long.
343 * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
345 * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
346 and casts to fmt_size_t instead of "%ld" and casts to long.
347 * cfgexpand.cc (dump_stack_var_partition): Use
348 HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
349 and casts to unsigned long.
350 * gengtype.cc (adjust_field_rtx_def): Likewise.
351 * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
352 and casts to fmt_size_t instead of "%ld" and casts to long.
353 * postreload-gcse.cc (dump_hash_table): Likewise.
354 * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
355 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
356 (ggc_internal_alloc, ggc_free): Likewise.
357 * genpreds.cc (write_lookup_constraint_1): Likewise.
358 (write_insn_constraint_len): Likewise.
359 * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
360 and casts to fmt_size_t instead of "%ld" and casts to long.
361 * varasm.cc (output_constant_pool_contents): Use
362 HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
363 * var-tracking.cc (dump_var): Likewise.
365 2024-02-09 Jakub Jelinek <jakub@redhat.com>
367 PR tree-optimization/113783
368 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
369 through VIEW_CONVERT_EXPR for final cast checks. Handle
370 VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
372 (gimple_lower_bitint): Don't merge mergeable operations or other
373 casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
374 * expr.cc (expand_expr_real_1): Don't use convert_modes if either
377 2024-02-09 Jakub Jelinek <jakub@redhat.com>
379 * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
380 HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
381 HOST_SIZE_T_PRINT_HEX_PURE): Define.
382 * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting
385 2024-02-09 Jakub Jelinek <jakub@redhat.com>
388 * cfgexpand.cc (expand_asm_stmt): For asm goto, use
389 duplicate_insn_chain to duplicate after_rtl_seq sequence instead
390 of hand written loop with emit_insn of copy_insn and emit original
391 after_rtl_seq on the last edge.
393 2024-02-09 Jakub Jelinek <jakub@redhat.com>
395 PR tree-optimization/113818
396 * gimple-lower-bitint.cc (add_eh_edge): New function.
397 (bitint_large_huge::handle_load,
398 bitint_large_huge::lower_mergeable_stmt,
399 bitint_large_huge::lower_muldiv_stmt): Use it.
401 2024-02-09 Jakub Jelinek <jakub@redhat.com>
403 PR tree-optimization/113774
404 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
405 emit any comparison if m_first and low + 1 is equal to
406 m_upwards_2limb, simplify condition for that. If not
407 single_comparison, not m_first and we can prove that the idx <= low
408 comparison will be always true, emit instead of idx <= low
409 comparison low <= low such that cfg cleanup will optimize it at
412 2024-02-08 Aldy Hernandez <aldyh@redhat.com>
414 PR tree-optimization/113735
415 * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
418 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
420 * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
421 (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
423 2024-02-08 H.J. Lu <hjl.tools@gmail.com>
427 * config/i386/constraints.md: List all constraints with j prefix.
428 (j>): Change auto-dec to auto-inc in documentation.
429 (je): Changed to a memory constraint with APX NDD TLS operand
431 (jM): New memory constraint for APX NDD instructions.
433 * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
434 * config/i386/i386.cc (x86_poff_operand_p): Likewise.
435 * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
436 (*add<mode>_1[SWI48]): Use je and jM.
437 (addsi_1_zext): Use jM.
438 (*addv<dwi>4_doubleword_1[DWI]): Likewise.
439 (*sub<mode>_1[SWI]): Use jM.
440 (@add<mode>3_cc_overflow_1[SWI]): Likewise.
441 (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
442 (*and<dwi>3_doubleword): Likewise.
444 (*andsi_1_zext): Likewise.
445 (*and<mode>_1[SWI24]): Likewise.
446 (*<code><dwi>3_doubleword[any_or]): Use rjO
447 (*code<mode>_1[any_or SWI248]): Use jM.
448 (*<code>si_1_zext[zero_extend + any_or]): Likewise.
449 * config/i386/predicates.md (apx_ndd_memory_operand): New.
450 (apx_ndd_add_memory_operand): Likewise.
452 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
455 * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
456 * doc/avr-mmcu.texi: Rebuild.
458 2024-02-08 Tamar Christina <tamar.christina@arm.com>
460 PR tree-optimization/113808
461 * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
462 value cross iterations.
464 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
466 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
467 defines __AVR_PM_BASE_ADDRESS__ if the core has it.
469 2024-02-08 Richard Biener <rguenther@suse.de>
471 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
472 Revert last change to dr_may_alias_p.
474 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
476 * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
477 cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
478 Remove spec asm_misc.
479 * config/avr/specs.h: Same.
481 2024-02-08 Pan Li <pan2.li@intel.com>
484 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
485 sure the c.arg_num is >= 2 before checking.
486 (struct build_frm_base): Ditto.
487 (struct narrow_alu_def): Ditto.
489 2024-02-07 Richard Biener <rguenther@suse.de>
491 PR tree-optimization/113796
492 * tree-if-conv.cc (combine_blocks): Wipe range-info before
493 replacing PHIs and inserting predicates.
495 2024-02-07 Roger Sayle <roger@nextmovesoftware.com>
496 Uros Bizjak <ubizjak@gmail.com>
499 * config/i386/i386-features.cc (timode_convert_cst): New helper
500 function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
502 (timode_scalar_chain::convert_op): Use timode_convert_cst.
503 (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
504 Use timode_convert_cst.
506 2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com>
508 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
509 * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
510 (AARCH64_FL_DEBUGv8p9): Likewise.
511 (AARCH64_FL_FGT2): Likewise.Likewise.
512 (AARCH64_FL_ITE): Likewise.
513 (AARCH64_FL_PFAR): Likewise.
514 (AARCH64_FL_PMUv3_ICNTR): Likewise.
515 (AARCH64_FL_PMUv3_SS): Likewise.
516 (AARCH64_FL_PMUv3p9): Likewise.
517 (AARCH64_FL_RASv2): Likewise.
518 (AARCH64_FL_S1PIE): Likewise.
519 (AARCH64_FL_S1POE): Likewise.
520 (AARCH64_FL_S2PIE): Likewise.
521 (AARCH64_FL_S2POE): Likewise.
522 (AARCH64_FL_SCTLR2): Likewise.
523 (AARCH64_FL_SEBEP): Likewise.
524 (AARCH64_FL_SPE_FDS): Likewise.
525 (AARCH64_FL_TCR2): Likewise.
527 2024-02-07 Richard Biener <rguenther@suse.de>
529 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
530 Only check whether reads are in-bound in places that are not safe.
531 Fix dependence check. Add missing newline. Clarify comments.
533 2024-02-07 Tamar Christina <tamar.christina@arm.com>
535 PR tree-optimization/113750
536 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
537 for single predecessor when doing early break vect.
538 * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
541 2024-02-07 Tamar Christina <tamar.christina@arm.com>
543 PR tree-optimization/113731
544 * gimple-iterator.cc (gsi_move_before): Take new parameter for update
546 * gimple-iterator.h (gsi_move_before): Default new param to
548 * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
551 2024-02-07 Jakub Jelinek <jakub@redhat.com>
553 PR tree-optimization/113756
554 * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
555 use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
556 of lh_bits value and mask.
558 2024-02-07 Jakub Jelinek <jakub@redhat.com>
560 PR tree-optimization/113753
561 * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
562 UNSIGNED rather than SIGNED. If high or needs_overflow and prec is
563 not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
564 so that they start with r[half_blocks_needed] lowest bit. Fix up
565 computation of top mask for SIGNED.
567 2024-02-07 Pan Li <pan2.li@intel.com>
570 * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
571 the signature of func.
572 * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
573 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
574 overloaded func with empty args error.
576 2024-02-06 H.J. Lu <hjl.tools@gmail.com>
579 * config/i386/i386.cc (x86_64_select_profile_regnum): Return
582 2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com>
584 * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
585 Move before new caller, and add ".default" suffix.
586 (get_suffixed_assembler_name): New.
587 (make_resolver_func): Use get_suffixed_assembler_name.
588 (aarch64_generate_version_dispatcher_body): Redo name mangling.
590 2024-02-06 Jakub Jelinek <jakub@redhat.com>
593 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
594 element from std::pair<unsigned int, char> to an unnamed struct.
595 Adjust uses of tile range variable.
597 2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
599 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
600 (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
602 2024-02-06 Jakub Jelinek <jakub@redhat.com>
605 * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
606 reset maxlen to sizetype maximum.
608 2024-02-06 Jakub Jelinek <jakub@redhat.com>
610 PR tree-optimization/113736
611 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
612 var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
614 2024-02-06 Jakub Jelinek <jakub@redhat.com>
616 PR tree-optimization/113759
617 * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
618 or from_unsignedN differs from properties of typeN, update typeN
619 to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not
620 uselessly convertible to typeN, convert it using fold_convert or
621 build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
622 (convert_plusminus_to_widen): Likewise.
624 2024-02-06 Tejas Belagod <tejas.belagod@arm.com>
627 * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
628 vector structure modes correctly.
630 2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu>
632 * config/riscv/thead.cc (th_print_operand_address): Fix compiler
635 2024-02-05 H.J. Lu <hjl.tools@gmail.com>
638 * config/i386/i386.cc (x86_64_select_profile_regnum): New.
639 (x86_function_profiler): Call x86_64_select_profile_regnum to
640 get a scratch register for large model profiling.
642 2024-02-05 Richard Ball <richard.ball@arm.com>
644 * config/arm/arm.cc (arm_output_mi_thunk): Emit
645 insn for bti_c when bti is enabled.
647 2024-02-05 Xi Ruoyao <xry111@xry111.site>
649 * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
652 2024-02-05 Xi Ruoyao <xry111@xry111.site>
654 * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
655 (neg<mode>2): Change the mode iterator from MSA to IMSA because
656 in FP arithmetic we cannot use (0 - x) for -x.
657 (neg<mode>2): New define_insn to implement FP vector negation,
658 using a bnegi instruction to negate the sign bit.
660 2024-02-05 Richard Biener <rguenther@suse.de>
662 PR tree-optimization/113707
663 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
664 checking the avail set treat out-of-region defines as
667 2024-02-05 Richard Biener <rguenther@suse.de>
669 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
670 the default mode when building a pointer.
672 2024-02-05 Jakub Jelinek <jakub@redhat.com>
674 PR tree-optimization/113737
675 * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
676 has just a single label, remove it and make single successor edge
679 2024-02-05 Jakub Jelinek <jakub@redhat.com>
682 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
683 Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
686 2024-02-05 Richard Biener <rguenther@suse.de>
689 * config/i386/i386-expand.cc
690 (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
691 Use a new pseudo for the skipped number of bytes.
693 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
695 * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
696 * doc/invoke.texi (RISC-V Options): Add sifive-p450,
699 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
701 * config/riscv/riscv.md: Include sifive-p400.md.
702 * config/riscv/sifive-p400.md: New file.
703 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
704 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
706 * config/riscv/riscv.cc (sifive_p400_tune_info): New.
707 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
708 * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
710 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
712 * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
713 Add missing ":SI" to the match_operator.
715 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
717 * config/xtensa/xtensa.md (SHI): New mode iterator.
718 (2 split patterns related to constsynth):
719 Change to also accept HImode operands.
721 2024-02-04 Jeff Law <jlaw@ventanamicro.com>
723 * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
726 2024-02-04 Xi Ruoyao <xry111@xry111.site>
728 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
730 * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
731 (elmsgnbit): Likewise.
732 (neg<mode:FVEC>2): New define_insn.
733 * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
734 are now instantiated in simd.md.
736 2024-02-04 Xi Ruoyao <xry111@xry111.site>
738 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
739 use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
742 2024-02-04 Li Wei <liwei@loongson.cn>
744 * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
745 (loongarch_expand_vselect_vconcat): Ditto.
746 (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
747 all 128-bit constant permutation situations.
748 (loongarch_expand_lsx_shuffle): Adjust and rename function name.
749 (loongarch_is_imm_set_shuffle): Renamed function name.
750 (loongarch_expand_vec_perm_even_odd): Function forward declaration.
751 (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
752 extract-even and extract-odd permutations.
753 (loongarch_is_odd_extraction): Delete.
754 (loongarch_is_even_extraction): Ditto.
755 (loongarch_expand_vec_perm_const): Adjust.
757 2024-02-03 Jakub Jelinek <jakub@redhat.com>
760 * wide-int.cc (wi::bswap_large): Rename third argument from
761 len to xlen and adjust use in safe_uhwi. Add len variable, set
762 it to BLOCKS_NEEDED (precision) and use it for clearing of val
763 and as canonize argument. Clear val using memset instead of
766 2024-02-03 Jakub Jelinek <jakub@redhat.com>
768 * ggc-common.cc (gt_pch_save): Allow addr to be equal to
769 mmi.preferred_base + mmi.size - sizeof (void *).
771 2024-02-03 Xi Ruoyao <xry111@xry111.site>
773 * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
774 * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
775 the ODR-violating locale declaration.
777 2024-02-02 Tamar Christina <tamar.christina@arm.com>
779 PR tree-optimization/113588
780 PR tree-optimization/113467
781 * tree-vect-data-refs.cc
782 (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
783 (vect_analyze_early_break_dependences): Update comments.
785 2024-02-02 John David Anglin <danglin@gcc.gnu.org>
788 * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
789 and PA_BUILTIN_SET_FPSR builtins.
790 * (pa_builtins_icode): Declare.
791 * (def_builtin, pa_fpu_init_builtins): New.
792 * (pa_init_builtins): Initialize FPU builtins.
793 * (pa_builtin_decl, pa_expand_builtin_1): New.
794 * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
795 PA_BUILTIN_SET_FPSR builtins.
796 * (pa_atomic_assign_expand_fenv): New.
797 * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
799 (get_fpsr, put_fpsr): New expanders.
800 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
803 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
806 * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
808 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
810 * doc/extend.texi (Common Type Attributes): Fix typo in
811 description of hardbool.
813 2024-02-02 Jakub Jelinek <jakub@redhat.com>
815 PR tree-optimization/113692
816 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
817 from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
820 2024-02-02 Jakub Jelinek <jakub@redhat.com>
823 * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
824 uninitialized large/huge _BitInt SSA_NAME inputs.
826 2024-02-02 Jakub Jelinek <jakub@redhat.com>
829 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
830 around wi::to_wide in order to compare value in prec precision.
832 2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
835 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
837 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
839 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
841 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
843 2024-02-02 Pan Li <pan2.li@intel.com>
845 * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
846 (riscv_pass_by_reference): Ditto.
847 (riscv_fntype_abi): Ditto.
849 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
851 * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
852 (pre_vsetvl::cleaup): Remove vsetvl_pre.
853 (pre_vsetvl::remove_vsetvl_pre_insns): New function.
855 2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
857 * config/loongarch/larchintrin.h
858 (__frecipe_s): Update function return type.
859 (__frecipe_d): Ditto.
860 (__frsqrte_s): Ditto.
861 (__frsqrte_d): Ditto.
863 2024-02-02 Li Wei <liwei@loongson.cn>
865 * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
866 (loongarch_vector_costs::add_stmt_cost): Adjust.
868 2024-02-02 Xi Ruoyao <xry111@xry111.site>
870 * config/loongarch/loongarch.md (unspec): Add
871 UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
872 (la_pcrel64_two_parts): New define_insn.
873 * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
875 (loongarch_call_tls_get_addr): If -mcmodel=extreme
876 -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
877 addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
878 note to allow CSE addressing __tls_get_addr.
879 (loongarch_legitimize_tls_address): If -mcmodel=extreme
880 -mexplicit-relocs={always,auto}, address TLS IE symbols with
881 la_pcrel64_two_parts.
882 (loongarch_split_symbol): If -mcmodel=extreme
883 -mexplicit-relocs={always,auto}, address symbols with
884 la_pcrel64_two_parts.
885 (loongarch_output_mi_thunk): Clean up unreachable code. If
886 -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
887 thunks with la_pcrel64_two_parts.
889 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
891 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
892 Add support for call36.
894 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
896 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
897 When the code model of the symbol is extreme and -mexplicit-relocs=auto,
898 the macro instruction loading symbol address is not applicable.
899 (loongarch_call_tls_get_addr): Adjust code.
900 (loongarch_legitimize_tls_address): Likewise.
902 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
904 * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
905 Add function declaration.
906 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
907 For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
909 (loongarch_load_tls): Added macro support in extreme mode.
910 (loongarch_call_tls_get_addr): Likewise.
911 (loongarch_legitimize_tls_address): Likewise.
912 (loongarch_force_address): Likewise.
913 (loongarch_legitimize_move): Likewise.
914 (loongarch_output_mi_thunk): Likewise.
915 (loongarch_option_override_internal): Remove the code that detects
916 explicit relocs status.
917 (loongarch_handle_model_attribute): Likewise.
918 * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
919 * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
920 (symbolic_off64_or_reg_operand): Likewise.
922 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
924 * config/loongarch/loongarch.cc (loongarch_load_tls):
925 Load all types of tls symbols through one function.
926 (loongarch_got_load_tls_gd): Delete.
927 (loongarch_got_load_tls_ld): Delete.
928 (loongarch_got_load_tls_ie): Delete.
929 (loongarch_got_load_tls_le): Delete.
930 (loongarch_call_tls_get_addr): Modify the called function name.
931 (loongarch_legitimize_tls_address): Likewise.
932 * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
933 (@load_tls<mode>): New template.
934 (@got_load_tls_ld<mode>): Delete.
935 (@got_load_tls_le<mode>): Delete.
936 (@got_load_tls_ie<mode>): Delete.
938 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
940 * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
941 (loongarch_legitimize_address): Add logical transformation code.
943 2024-02-01 Marek Polacek <polacek@redhat.com>
945 * doc/invoke.texi: Update -Wdangling-reference documentation.
947 2024-02-01 Uros Bizjak <ubizjak@gmail.com>
950 * config/i386/i386.md (*cmp<dwi>_doubleword):
951 Do not force SUBREG pieces to pseudos.
953 2024-02-01 John David Anglin <danglin@gcc.gnu.org>
955 * config/pa/pa.md (atomic_storedi_1): Fix bug in
958 2024-02-01 Georg-Johann Lay <avr@gjlay.de>
960 * config/avr/avr.cc: Tabify.
962 2024-02-01 Richard Ball <richard.ball@arm.com>
964 PR tree-optimization/111268
965 * tree-vect-slp.cc (vectorizable_slp_permutation_1):
966 Add variable-length check for vector input arguments
969 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
971 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
972 hard-code number of SGPR/VGPR/AVGPR registers.
973 * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
974 SGPR/VGPR/AVGPR registers.
976 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
978 * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
979 attribute, and include sifive-p600.md.
980 * config/riscv/generic-ooo.md: Update type attribute.
981 * config/riscv/generic.md: Update type attribute.
982 * config/riscv/sifive-7.md: Update type attribute.
983 * config/riscv/sifive-p600.md: New file.
984 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
985 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
987 * config/riscv/riscv.cc (sifive_p600_tune_info): New.
988 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
989 * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
991 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
993 * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
994 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
995 * config/riscv/riscv.opt: New macro for 7 new unprivileged
997 * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
998 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
1000 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1002 * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
1003 -static-libasan. Add missing whitespace.
1005 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
1007 * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
1008 (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
1009 Don't 'define_constants'.
1011 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
1013 * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
1015 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
1017 * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
1018 [TARGET_RDNA3]: Adjust.
1020 2024-02-01 Richard Biener <rguenther@suse.de>
1022 PR tree-optimization/113693
1023 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
1024 data when available.
1026 2024-02-01 Jakub Jelinek <jakub@redhat.com>
1027 Jason Merrill <jason@redhat.com>
1030 * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
1031 on variables which were promoted to TREE_STATIC.
1033 2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
1034 Richard Biener <rguenther@suse.de>
1037 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
1038 information via tree_non_zero_bits to check if this operand
1039 is suitably extended for a widening (or highpart) multiplication.
1040 (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
1041 isn't already of the claimed type.
1043 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1046 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1048 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
1049 (generic_ooo_branch): ditto
1050 * config/riscv/generic.md (generic_sfb_alu): ditto
1051 (generic_fmul_half): ditto
1052 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
1053 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
1054 (sifive_7_popcount): ditto
1055 * config/riscv/vector.md: change rdfrm to fmove
1056 * config/riscv/zc.md: change pushpop to load/store
1058 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1061 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1062 Robin Dapp <rdapp.gcc@gmail.com>
1064 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
1065 (generic_ooo_vec_load): ditto
1066 (generic_ooo_vec_store): ditto
1067 (generic_ooo_vec_loadstore_seg): ditto
1068 (generic_ooo_vec_alu): ditto
1069 (generic_ooo_vec_fcmp): ditto
1070 (generic_ooo_vec_imul): ditto
1071 (generic_ooo_vec_fadd): ditto
1072 (generic_ooo_vec_fmul): ditto
1073 (generic_ooo_crypto): ditto
1074 (generic_ooo_perm): ditto
1075 (generic_ooo_vec_reduction): ditto
1076 (generic_ooo_vec_ordered_reduction): ditto
1077 (generic_ooo_vec_idiv): ditto
1078 (generic_ooo_vec_float_divsqrt): ditto
1079 (generic_ooo_vec_mask): ditto
1080 (generic_ooo_vec_vesetvl): ditto
1081 (generic_ooo_vec_setrm): ditto
1082 (generic_ooo_vec_readlen): ditto
1083 * config/riscv/riscv.md: include generic-vector-ooo
1084 * config/riscv/generic-vector-ooo.md: New file. to here
1086 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1089 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1091 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
1093 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1095 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
1097 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1098 Robin Dapp <rdapp.gcc@gmail.com>
1100 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
1101 (generic_ooo_vec_load): ditto
1102 (generic_ooo_vec_store): ditto
1103 (generic_ooo_vec_loadstore_seg): ditto
1104 (generic_ooo_vec_alu): ditto
1105 (generic_ooo_vec_fcmp): ditto
1106 (generic_ooo_vec_imul): ditto
1107 (generic_ooo_vec_fadd): ditto
1108 (generic_ooo_vec_fmul): ditto
1109 (generic_ooo_crypto): ditto
1110 (generic_ooo_perm): ditto
1111 (generic_ooo_vec_reduction): ditto
1112 (generic_ooo_vec_ordered_reduction): ditto
1113 (generic_ooo_vec_idiv): ditto
1114 (generic_ooo_vec_float_divsqrt): ditto
1115 (generic_ooo_vec_mask): ditto
1116 (generic_ooo_vec_vesetvl): ditto
1117 (generic_ooo_vec_setrm): ditto
1118 (generic_ooo_vec_readlen): ditto
1119 * config/riscv/riscv.md: include generic-vector-ooo
1120 * config/riscv/generic-vector-ooo.md: New file. to here
1122 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
1124 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
1125 (generic_ooo_branch): ditto
1126 * config/riscv/generic.md (generic_sfb_alu): ditto
1127 (generic_fmul_half): ditto
1128 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
1129 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
1130 (sifive_7_popcount): ditto
1131 * config/riscv/vector.md: change rdfrm to fmove
1132 * config/riscv/zc.md: change pushpop to load/store
1134 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
1137 * config/aarch64/aarch64-simd.md (split for movv8di):
1138 For strict aligned mode, use DImode instead of TImode.
1140 2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
1142 PR middle-end/113607
1143 * match.pd: Make sure else values match when folding a
1144 vec_cond into a conditional operation.
1146 2024-01-31 Marek Polacek <polacek@redhat.com>
1148 * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
1150 2024-01-31 Tamar Christina <tamar.christina@arm.com>
1151 Matthew Malcomson <matthew.malcomson@arm.com>
1154 * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
1156 * builtins.cc (expand_builtin): Include HWASAN when checking for
1159 2024-01-31 Richard Biener <rguenther@suse.de>
1161 PR middle-end/110176
1162 * match.pd (zext (bool) <= (int) 4294967295u): Make sure
1163 to match INTEGER_CST only without outstanding conversion.
1165 2024-01-31 Alex Coplan <alex.coplan@arm.com>
1168 * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
1169 V16QImode for the full 16-byte FPR saves in the vector PCS case.
1171 2024-01-31 Richard Biener <rguenther@suse.de>
1173 PR tree-optimization/111444
1174 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
1175 vn_reference_lookup_2 when optimistically skipping may-defs.
1177 2024-01-31 Richard Biener <rguenther@suse.de>
1179 PR tree-optimization/113630
1180 * tree-ssa-pre.cc (compute_avail): Avoid registering a
1181 reference with a representation with not matching base
1184 2024-01-31 Jakub Jelinek <jakub@redhat.com>
1186 PR rtl-optimization/113656
1187 * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
1188 <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
1190 2024-01-31 Jakub Jelinek <jakub@redhat.com>
1193 * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
1194 with BLKmode are larger than DWARF2_ADDR_SIZE.
1196 2024-01-31 Jakub Jelinek <jakub@redhat.com>
1198 PR tree-optimization/113639
1199 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
1200 For VIEW_CONVERT_EXPR set rhs1 to its operand.
1202 2024-01-31 Richard Biener <rguenther@suse.de>
1204 PR tree-optimization/113670
1205 * tree-vect-data-refs.cc (vect_check_gather_scatter):
1206 Make sure we can take the address of the reference base.
1208 2024-01-31 Georg-Johann Lay <avr@gjlay.de>
1210 * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
1211 ATA5835, ATtiny64AUTO, ATA5700M322.
1212 * doc/avr-mmcu.texi: Rebuild.
1214 2024-01-31 Alexandre Oliva <oliva@adacore.com>
1217 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
1220 2024-01-31 Alexandre Oliva <oliva@adacore.com>
1222 PR middle-end/112917
1223 PR middle-end/113100
1224 * builtins.cc (expand_builtin_stack_address): Use
1225 STACK_ADDRESS_OFFSET.
1226 * doc/extend.texi (__builtin_stack_address): Adjust.
1227 * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
1228 * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
1229 * doc/tm.texi: Rebuilt.
1231 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1234 * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
1235 (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
1236 (pre_vsetvl::compute_transparent): New function.
1237 (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
1239 2024-01-30 Fangrui Song <maskray@google.com>
1242 * config/i386/constraints.md: Define constraint "Ws".
1243 * doc/md.texi: Document it.
1245 2024-01-30 Marek Polacek <polacek@redhat.com>
1249 * doc/invoke.texi: Update -Wdangling-reference description.
1251 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1253 * config/xtensa/constraints.md (R, T, U):
1254 Change define_constraint to define_memory_constraint.
1255 * config/xtensa/predicates.md (move_operand): Don't check that a
1256 constant pool operand size is a multiple of UNITS_PER_WORD.
1257 * config/xtensa/xtensa.cc
1258 (xtensa_lra_p, TARGET_LRA_P): Remove.
1259 (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
1260 clause as it can no longer be true.
1261 (fixup_subreg_mem): Drop function.
1262 (xtensa_output_integer_literal_parts): Consider 16-bit wide
1264 (xtensa_legitimate_constant_p): Add short-circuit path for
1265 integer load instructions. Don't check that mode size is
1266 at least UNITS_PER_WORD.
1267 * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
1268 rather reload_in_progress and reload_completed.
1269 (doloop_end): Drop operand 2.
1270 (movhi_internal): Add alternative loading constant from a
1272 (define_split for DI register_operand): Don't limit to
1273 !TARGET_AUTO_LITPOOLS.
1274 * config/xtensa/xtensa.opt (mlra): Change to no effect.
1276 2024-01-30 Pan Li <pan2.li@intel.com>
1278 * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
1279 calculate the gpr count required by vls mode.
1280 (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
1281 (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
1283 (riscv_get_arg_info): Add vls mode handling.
1284 (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
1286 2024-01-30 Richard Biener <rguenther@suse.de>
1288 PR tree-optimization/113659
1289 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1290 Handle main exit without virtual use.
1292 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
1294 * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
1296 2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
1299 * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
1300 (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
1301 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
1302 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
1303 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
1304 * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
1306 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
1309 * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
1310 Mark all registers that occur in addresses as needing a GPR.
1312 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
1315 * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
1316 the containing insn as an extra parameter. Reset debug instructions
1317 if they reference a register that is no longer used by real insns.
1318 (early_ra::apply_allocation): Update calls accordingly.
1320 2024-01-30 Jakub Jelinek <jakub@redhat.com>
1322 PR tree-optimization/113603
1323 * tree-ssa-strlen.cc (strlen_pass::handle_store): After
1324 count_nonzero_bytes call refetch si using get_strinfo in case it
1325 has been unshared in the meantime.
1327 2024-01-30 Jakub Jelinek <jakub@redhat.com>
1329 PR middle-end/101195
1330 * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
1331 fit into unsigned HOST_WIDE_INT, return constm1_rtx.
1333 2024-01-30 Jin Ma <jinma@linux.alibaba.com>
1335 * config/riscv/thead.cc (th_print_operand_address): Change %ld
1338 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
1339 Manolis Tsamis <manolis.tsamis@vrull.eu>
1340 Philipp Tomsich <philipp.tomsich@vrull.eu>
1342 * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
1343 * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
1345 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
1346 Call on framework moved later.
1348 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
1350 * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
1351 instruction in naked function epilogues.
1353 2024-01-29 YunQiang Su <syq@gcc.gnu.org>
1356 * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
1357 gcc_cv_as_mips_explicit_relocs.
1358 * configure: Regnerated.
1360 2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
1363 * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
1364 Correct generated RTL.
1365 (arm_rev16si2_alt1): Correctly handle conditional execution.
1366 (arm_rev16si2_alt2): Likewise.
1368 2024-01-29 Richard Biener <rguenther@suse.de>
1370 PR middle-end/113622
1371 * expr.cc (expand_assignment): Spill hard registers if
1372 we index them with a variable offset.
1374 2024-01-29 Richard Biener <rguenther@suse.de>
1376 PR middle-end/113622
1377 * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
1378 Also allow DECL_HARD_REGISTER variables.
1380 2024-01-29 Alex Coplan <alex.coplan@arm.com>
1383 * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
1384 Use iterate_safely when iterating over debug uses.
1385 (fixup_debug_uses): Likewise.
1386 (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
1387 over nondebug insns instead of manually maintaining the next insn.
1388 * iterator-utils.h (class safe_iterator): New.
1389 (iterate_safely): New.
1391 2024-01-29 H.J. Lu <hjl.tools@gmail.com>
1394 * config/i386/i386-options.cc (ix86_set_func_type): Save
1395 callee-saved registers in noreturn functions for -O0/-Og.
1397 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
1400 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
1401 define for !TARGET_RDNA2_PLUS.
1403 2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
1406 * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
1407 workaround for right shifts.
1408 (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
1409 (vect_determine_precisions_from_range): Be more selective about
1410 which codes can be narrowed based on their input and output ranges.
1411 For shifts, require at least one more bit of precision than the
1412 maximum shift amount.
1414 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
1416 * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
1418 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
1420 * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
1421 but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
1424 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
1427 * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
1428 (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
1429 (SET_SRAM_ECC_UNSET): ... this.
1430 (copy_early_debug_info): Remove gfx900 special case, now handled as
1431 part of the generic handling.
1432 (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
1434 2024-01-29 Jakub Jelinek <jakub@redhat.com>
1436 PR tree-optimization/110603
1437 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
1438 setting of pdata->maxlen to vr.upper_bound (which is unconditionally
1439 overwritten anyway). Avoid creating invalid range with minlen
1440 larger than maxlen. Formatting fix.
1442 2024-01-29 Richard Biener <rguenther@suse.de>
1445 * tree-inline.cc (initialize_inlined_parameters): Reverse
1446 the decl chain of inlined parameters.
1448 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
1450 * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
1451 alignment of CFString constants by setting DECL_USER_ALIGN.
1453 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
1454 Jakub Jelinek <jakub@redhat.com>
1457 * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
1458 and BUILT_IN_GCC_NESTED_PTR_DELETED.
1459 * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
1460 BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
1461 rename the library fallbacks to __gcc_nested_func_ptr_created and
1462 __gcc_nested_func_ptr_deleted.
1463 * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
1464 and __gcc_nested_func_ptr_deleted.
1465 * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
1466 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
1467 * tree.cc (build_common_builtin_nodes): Build the
1468 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
1469 builtins only for non-explicit.
1471 2024-01-28 YunQiang Su <syq@gcc.gnu.org>
1473 * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
1475 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
1478 * config/i386/i386-options.cc (ix86_set_func_type): Don't
1479 save and restore callee saved registers for a noreturn function
1480 with nothrow or compiled with -fno-exceptions.
1482 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
1486 * config/i386/i386-expand.cc (ix86_expand_call): Replace
1487 no_caller_saved_registers check with call_saved_registers check.
1488 Clobber all registers that are not used by the callee with
1489 no_callee_saved_registers attribute.
1490 * config/i386/i386-options.cc (ix86_set_func_type): Set
1491 call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
1492 noreturn function. Disallow no_callee_saved_registers with
1493 interrupt or no_caller_saved_registers attributes together.
1494 (ix86_set_current_function): Replace no_caller_saved_registers
1495 check with call_saved_registers check.
1496 (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
1497 (ix86_handle_call_saved_registers_attribute): This.
1498 (ix86_gnu_attributes): Add
1499 ix86_handle_call_saved_registers_attribute.
1500 * config/i386/i386.cc (ix86_conditional_register_usage): Replace
1501 no_caller_saved_registers check with call_saved_registers check.
1502 (ix86_function_ok_for_sibcall): Don't allow callee with
1503 no_callee_saved_registers attribute when the calling function
1504 has callee-saved registers.
1505 (ix86_comp_type_attributes): Also check
1506 no_callee_saved_registers.
1507 (ix86_epilogue_uses): Replace no_caller_saved_registers check
1508 with call_saved_registers check.
1509 (ix86_hard_regno_scratch_ok): Likewise.
1510 (ix86_save_reg): Replace no_caller_saved_registers check with
1511 call_saved_registers check. Don't save any registers for
1512 TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
1513 TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
1514 no_callee_saved_registers attribute is called.
1515 (find_drap_reg): Replace no_caller_saved_registers check with
1516 call_saved_registers check.
1517 * config/i386/i386.h (call_saved_registers_type): New enum.
1518 (machine_function): Replace no_caller_saved_registers with
1519 call_saved_registers.
1520 * doc/extend.texi: Document no_callee_saved_registers attribute.
1522 2024-01-27 Jakub Jelinek <jakub@redhat.com>
1524 PR tree-optimization/113614
1525 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
1526 widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
1527 TRUNC_MOD_EXPR or FLOAT_EXPR uses.
1529 2024-01-27 Jakub Jelinek <jakub@redhat.com>
1531 PR tree-optimization/113568
1532 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
1533 For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
1534 in the widening extension checks.
1536 2024-01-27 Jakub Jelinek <jakub@redhat.com>
1538 * gimple-lower-bitint.cc (gimple_lower_bitint): For
1539 TDF_DETAILS dump mapping of SSA_NAMEs to decls.
1541 2024-01-26 Hans-Peter Nilsson <hp@axis.com>
1543 * cgraphunit.cc (process_function_and_variable_attributes): Tweak
1544 the warning for an attribute-always_inline without inline declaration.
1546 2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
1549 * genopinit.cc (main): Split init_all_optabs into functions
1550 of 1000 patterns each.
1552 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
1554 * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
1556 * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
1557 * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
1560 2024-01-26 Andrew Stubbs <ams@baylibre.com>
1562 * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
1563 * config/gcn/gcn-valu.md (all_convert): New iterator.
1564 (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
1565 define_expand, and rename the old one to ...
1566 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
1567 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
1568 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
1569 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
1570 * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
1571 (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
1572 * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
1573 (<u>mulqihi3_scalar): Likewise.
1575 2024-01-26 Richard Biener <rguenther@suse.de>
1577 PR tree-optimization/113602
1578 * tree-data-ref.cc (dr_analyze_innermost): Fail when
1579 the base object isn't addressable.
1581 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
1583 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
1584 "--amdhsa-code-object-version=" argument.
1585 (ASM_SPEC): Use it; replace previous version of it.
1587 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1589 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
1590 (pre_vsetvl::emit_vsetvl): Ditto.
1592 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
1594 * config/loongarch/lasx.md (vec_extract<mode>_0):
1595 New define_insn_and_split patten.
1597 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
1599 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
1601 2024-01-26 Li Wei <liwei@loongson.cn>
1603 * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
1605 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1608 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
1610 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
1613 * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
1614 undefined shift after the call to exact_log2.
1616 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
1619 * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
1620 before taking the negative of it.
1622 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
1625 * lra-constraints.cc (curr_insn_transform): Change class even for
1626 spilled pseudo successfully matched with with NO_REGS.
1628 2024-01-25 Georg-Johann Lay <avr@gjlay.de>
1631 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
1633 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
1636 * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
1637 (aarch64_expand_epilogue): Use the new function.
1638 (aarch64_split_compare_and_swap): Likewise.
1639 (aarch64_split_atomic_op): Likewise.
1641 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
1643 PR middle-end/112971
1644 * fold-const.cc (simplify_const_binop): New function for binop
1645 simplification of two constant vectors when element-wise
1646 handling is not necessary.
1647 (const_binop): Call new function.
1649 2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
1651 * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
1652 * config/riscv/constraints.md: Likewise.
1653 * config/riscv/corev.def: Likewise.
1654 * config/riscv/corev.md: Likewise.
1655 * config/riscv/predicates.md: Likewise.
1656 * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
1657 * config/riscv/riscv-ftypes.def: Likewise.
1658 * config/riscv/riscv.opt: Likewise.
1659 * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
1660 * doc/extend.texi: Add XCVbitmanip builtin documentation.
1661 * doc/sourcebuild.texi: Likewise.
1663 2024-01-25 Tobias Burnus <tburnus@baylibre.com>
1665 * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
1667 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
1670 * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
1671 (riscv_fntype_abi): Ditto.
1672 * config/riscv/riscv.opt: Ditto.
1674 2024-01-25 Jakub Jelinek <jakub@redhat.com>
1676 PR middle-end/113574
1677 * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
1678 count against TYPE_PRECISION rather than TYPE_SIZE.
1680 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
1683 * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
1684 Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
1686 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
1689 * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
1690 whether each split instruction is a load that clobbers the source
1691 address. Emit that instruction last if so.
1693 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
1696 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
1698 (<optab><Vnarrowq><mode>2): Use it instead of generating a
1699 paradoxical subreg for the input.
1701 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1703 * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
1704 (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
1705 predecessors dump information.
1707 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1709 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
1710 redundant full available computation.
1711 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
1713 2024-01-25 Jakub Jelinek <jakub@redhat.com>
1715 * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
1716 * doc/rtl.texi (CONST_VECTOR): Likewise.
1718 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1720 * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
1721 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
1722 (pass_vsetvl::execute): Ditto.
1723 * config/riscv/riscv.opt: Ditto.
1725 2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
1727 * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
1728 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
1730 2024-01-25 Richard Biener <rguenther@suse.de>
1732 PR tree-optimization/113576
1733 * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
1734 exits with may_be_zero niters when its the last one.
1736 2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
1738 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
1739 For symbols of type tls, non-zero Offset is not generated.
1741 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
1743 * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
1744 P9 with m32 and mpowerpc64.
1746 2024-01-25 liuhongt <hongtao.liu@intel.com>
1748 * config/i386/i386-options.cc (ix86_option_override_internal):
1749 Enable -mlam=u57 by default when compiled with
1750 -fsanitize=hwaddress.
1752 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
1754 * common/config/riscv/riscv-common.cc (riscv_implied_info):
1755 Remove {"ztso", "a"}.
1757 2024-01-24 Martin Jambor <mjambor@suse.cz>
1761 * cgraph.h (cgraph_edge): Add a parameter to
1762 redirect_call_stmt_to_callee.
1763 * ipa-param-manipulation.h (ipa_param_adjustments): Add a
1764 parameter to modify_call.
1765 (ipa_release_ssas_in_hash): Declare.
1766 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
1767 parameter killed_ssas, pass it to padjs->modify_call.
1768 * ipa-param-manipulation.cc (purge_all_uses): New function.
1769 (ipa_param_adjustments::modify_call): New parameter killed_ssas.
1770 Instead of substituting uses, invoke purge_all_uses. If
1771 hash of killed SSAs has not been provided, create a temporary one
1772 and release SSAs that have been added to it.
1773 (compare_ssa_versions): New function.
1774 (ipa_release_ssas_in_hash): Likewise.
1775 * tree-inline.cc (redirect_all_calls): Create
1776 id->killed_new_ssa_names earlier, pass it to edge redirection,
1778 (copy_body): Release SSAs in id->killed_new_ssa_names.
1780 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
1783 * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
1784 TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
1786 2024-01-24 Monk Chiang <monk.chiang@sifive.com>
1789 * config/riscv/sfb.md: New splitters to rewrite single bit
1790 sign extension as the condition to SFB instructions.
1792 2024-01-24 Jan Hubicka <jh@suse.cz>
1795 * common.opt: (flimit-function-alignment): Reorder alphabeticaly
1796 (fmin-function-alignment): New parameter.
1797 * doc/invoke.texi: (-fmin-function-alignment): Document.
1798 (-falign-functions,-falign-loops,-falign-labels): Mention that
1799 aglinments are ignored in cold code.
1800 * varasm.cc (assemble_start_function): Handle min-function-alignment.
1802 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1805 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
1807 * config/aarch64/iterators.md (VQDIV): Remove.
1808 (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
1809 SVE_I_SIMD_DI): New.
1810 (VPRED, sve_lane_con): Add V4SI and V2DI.
1811 * config/aarch64/aarch64-sve.md (<optab><mode>3,
1812 @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
1813 (mul<mode>3): New, split from <optab><mode>3.
1814 (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
1815 * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
1816 *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
1817 SVE_FULL_HSDI_SIMD_DI.
1819 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1821 PR tree-optimization/113552
1822 * config/aarch64/aarch64.cc
1823 (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
1825 2024-01-24 Martin Jambor <mjambor@suse.cz>
1828 * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
1829 count is equal or greater than the limit. Use the limit from the
1832 2024-01-24 YunQiang Su <syq@gcc.gnu.org>
1834 * configure.ac: Detect the explicit relocs support for
1835 mips, and define C macro MIPS_EXPLICIT_RELOCS.
1836 * config.in: Regenerated.
1837 * configure: Regenerated.
1838 * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
1839 * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
1840 * config/mips/mips.cc(mips_set_compression_mode): Sorry if
1841 !TARGET_EXPLICIT_RELOCS instead of just set it.
1842 * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
1843 TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
1844 * config/mips/mips.opt: Introduce -mexplicit-relocs= option
1845 and define -m(no-)explicit-relocs as aliases.
1847 2024-01-24 Alex Coplan <alex.coplan@arm.com>
1849 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
1851 (-mlate-ldp-fusion): Likewise.
1853 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1855 * tree-vect-loop.cc (vect_get_vect_def,
1856 vect_create_epilog_for_reduction): Rename main_exit_p to
1859 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1861 PR tree-optimization/113364
1862 * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
1863 early exits then we must reduce from the first offset for all of them.
1865 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1868 * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
1870 (get_bb_index): Ditto.
1871 (pre_vsetvl::compute_avl_def_data): Ditto.
1872 (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
1873 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
1875 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
1876 Richard Sandiford <richard.sandiford@arm.com>
1879 * ccmp.cc (ccmp_candidate_p): Add outer argument.
1880 Allow if the outer is true and the lhs is used more
1882 (expand_ccmp_expr): Update call to ccmp_candidate_p.
1883 * expr.h (expand_expr_real_gassign): Declare.
1884 * expr.cc (expand_expr_real_gassign): New function, split out from...
1885 (expand_expr_real_1): ...here.
1886 * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
1888 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1891 * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
1892 (fixup_debug_use): New.
1893 (fixup_debug_uses_trailing_add): New.
1894 (fixup_debug_uses): New. Use it ...
1895 (ldp_bb_info::fuse_pair): ... here.
1896 (try_promote_writeback): Call fixup_debug_uses_trailing_add to
1897 fix up debug uses of the base register that are affected by
1898 folding in the trailing add insn.
1900 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1903 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
1904 Update trailing nondebug uses of the base register in the case
1905 of cancelling writeback.
1907 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1910 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
1911 (debug_insn_use_iterator): New.
1912 (set_info::first_debug_insn_use): New.
1913 (set_info::debug_insn_uses): New.
1914 * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
1915 (set_info::first_debug_insn_use): New.
1916 (set_info::debug_insn_uses): New.
1918 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1921 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
1922 Don't record hazards against the opposite insn in the pair.
1924 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1927 * config/aarch64/aarch64-ldp-fusion.cc
1928 (struct stp_change_builder): New.
1929 (decide_stp_strategy): Reanme to ...
1930 (try_repurpose_store): ... this.
1931 (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
1932 construct stp changes. Fix up uses when inserting new stp insns.
1934 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1937 * rtl-ssa.h: Include hash-set.h.
1938 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
1939 new_sets parameter and use it to keep track of new user-created sets.
1940 (function_info::apply_changes_to_insn): Also call add_def on new sets.
1941 (function_info::change_insns): Add hash_set to keep track of new
1942 user-created defs. Plumb it through.
1943 * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
1944 apply_changes_to_insn.
1946 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1949 * rtl-ssa/accesses.cc (function_info::create_use): New.
1950 * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
1951 Ensure new uses end up referring to permanent defs.
1952 * rtl-ssa/functions.h (function_info::create_use): Declare.
1954 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1957 * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
1958 to finalize_new_accesses from the backwards placement loop, run it
1959 forwards in a separate loop.
1961 2024-01-23 Richard Biener <rguenther@suse.de>
1963 PR tree-optimization/113552
1964 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
1965 floor_log2 instead of exact_log2 on the number of calls.
1967 2024-01-23 Jeff Law <jlaw@ventanamicro.com>
1968 Jakub Jelinek <jakub@redhat.com>
1970 * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
1973 2024-01-23 Richard Biener <rguenther@suse.de>
1975 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1976 Separate single and multi-exit case when creating PHIs between
1977 the main and epilogue.
1979 2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
1982 * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
1983 MODE_single variants of functions that don't take tuple arguments.
1985 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1988 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
1989 Don't assert recog success, just punt if the writeback pair
1992 2024-01-23 Jakub Jelinek <jakub@redhat.com>
1994 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
1995 ATTRIBUTE_UNUSED to decl.
1997 2024-01-23 Richard Biener <rguenther@suse.de>
2000 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
2001 handle unexpected but bogus DIE contexts when not checking
2004 2024-01-23 Jakub Jelinek <jakub@redhat.com>
2006 PR tree-optimization/113462
2007 * fold-const.cc (native_interpret_int): Don't punt if total_bytes
2008 is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
2009 (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
2010 sizes between 129 and 8192 bytes.
2012 2024-01-23 Xi Ruoyao <xry111@xry111.site>
2014 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
2015 If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
2016 for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
2017 (loongarch_call_tls_get_addr): Do not split symbols of
2018 SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
2019 EXPLICIT_RELOCS_AUTO.
2021 2024-01-23 Richard Biener <rguenther@suse.de>
2023 * alias.cc (known_base_value_p): Remove.
2024 (find_base_value): Remove PLUS/MINUS handling
2025 when both operands are not CONST_INT_P.
2027 2024-01-23 Richard Biener <rguenther@suse.de>
2029 PR rtl-optimization/113255
2030 * alias.cc (find_base_term): Remove PLUS/MINUS handling
2031 when both operands are not CONST_INT_P.
2033 2024-01-23 Richard Biener <rguenther@suse.de>
2036 * dwarf2out.cc (dwarf2out_finish): Reset all type units
2037 for the fat part of an LTO compile.
2039 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
2041 * doc/sourcebuild.texi: Add attributes for keywords.
2043 2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
2046 * doc/invoke.texi (Warning Options): Correct lists of options
2047 enabled by -Wall and -Wextra by checking against common.opt
2050 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
2053 * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
2054 instead of cpu_optaliases.
2055 (check_arch): Use arch_opt_alias instead of arch_optaliases.
2057 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2059 * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
2060 * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
2061 * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
2063 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2066 * config/riscv/riscv.md: Use reg instead of subreg.
2068 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
2071 * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
2072 to match the compiler default.
2073 (simple_object_copy_lto_debug_sections): Never unlink the outfile
2074 on error as the caller does so.
2075 (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
2076 (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
2078 2024-01-22 Richard Biener <rguenther@suse.de>
2080 PR tree-optimization/113373
2081 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2082 Create LC PHIs in the exit blocks where necessary.
2083 * tree-vect-loop.cc (vectorizable_live_operation): Do not try
2084 to handle missing LC PHIs.
2085 (find_connected_edge): Remove.
2086 (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
2088 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2090 * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
2092 2024-01-22 xuli <xuli1@eswincomputing.com>
2095 * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
2096 (registered_function::overloaded_hash):refactor.
2097 (resolve_overloaded_builtin):avoid internal ICE.
2099 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
2103 * calls.cc (emit_library_call_value_1): Pass valid TYPE
2105 * expr.cc (emit_push_insn): Likewise.
2107 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
2109 * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
2110 correcction version of last change.
2112 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
2114 * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
2115 fix bugs in signature.
2117 2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
2118 Richard Biener <rguenther@suse.de>
2120 PR rtl-optimization/111267
2121 * fwprop.cc (fwprop_propagation::profitabe_p): Rename
2122 profitable_p method to likely_profitable_p.
2123 (try_fwprop_subst_node): Update call to likely_profitable_p.
2124 Only bail-out early when !prop.likely_profitable_p for instructions
2125 that are not single sets. When comparing costs, bail-out if the
2126 cost is unchanged and !prop.likely_profitable_p.
2128 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
2131 * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
2132 isn't enabled by -Wunused unless -Wextra is provided, and that
2133 -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
2134 -Wunused doesn't enable -Wunused-* options documented as behaving
2135 otherwise, and list them explicitly.
2137 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
2140 * doc/invoke.texi (Warning Options): Fix broken example and
2141 clean up/reorganize the others. Also describe what the short-form
2144 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
2147 * doc/invoke.texi (Option Summary): Add -Warray-parameter.
2148 (Warning Options): Correct/edit discussion of -Warray-parameter
2149 to make the first example less confusing, and fill in missing info.
2151 2024-01-20 Jakub Jelinek <jakub@redhat.com>
2153 PR tree-optimization/113462
2154 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
2155 Handle rhs1 INTEGER_CST like SSA_NAME.
2157 2024-01-20 Jakub Jelinek <jakub@redhat.com>
2159 PR tree-optimization/113491
2160 * tree-switch-conversion.cc (switch_conversion::build_constructors):
2161 If elt.index has precision higher than sizetype, fold_convert it to
2163 (switch_conversion::array_value_type): Return type if type is
2164 BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
2165 (switch_conversion::build_arrays): Use unsigned_type_for rather than
2166 lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
2167 above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
2168 higher than sizetype, use sizetype as tidx type and fold_convert the
2169 subtraction to sizetype.
2171 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2173 * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
2174 (riscv_vector_mode_supported_any_target_p): Ditto.
2176 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
2179 * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
2180 (TARGET_ZERO_CALL_USED_REGS): Define.
2182 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
2185 * config/m68k/m68k.cc (output_andsi3): Use QImode for
2186 address adjusted for 1-byte RMW access.
2187 (output_iorsi3): Likewise.
2188 (output_xorsi3): Likewise.
2190 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2192 * doc/invoke.texi (RISC-V Options): Add list of supported
2195 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2198 * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
2199 (RVV_VUNDEF): Ditto.
2200 * config/riscv/riscv-vsetvl.cc: Add timevar.
2202 2024-01-19 Richard Biener <rguenther@suse.de>
2205 * lto-streamer-in.cc (lto_read_tree_1): When there isn't
2206 an early DIE but there should be, do not pretend there is.
2208 2024-01-19 Richard Biener <rguenther@suse.de>
2210 PR tree-optimization/113494
2211 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2212 Handle endless loop on exit. Handle re-allocated PHI.
2214 2024-01-19 Jakub Jelinek <jakub@redhat.com>
2216 PR tree-optimization/113464
2217 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
2218 optimize loads into GIMPLE_ASM stmts.
2220 2024-01-19 Jakub Jelinek <jakub@redhat.com>
2222 PR tree-optimization/113463
2223 * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
2224 Only look through NOP_EXPRs if rhs1 doesn't have wider type than
2227 2024-01-19 Jakub Jelinek <jakub@redhat.com>
2229 PR tree-optimization/113459
2230 * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
2231 TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
2232 of SCALAR_INT_TYPE_MODE if type has BLKmode.
2233 (vn_reference_lookup_3): Likewise. Formatting fix.
2235 2024-01-19 Jakub Jelinek <jakub@redhat.com>
2236 Richard Biener <rguenther@suse.de>
2238 * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
2239 VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
2240 * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
2241 but adjust_address also for BLKmode mode and MEM op0.
2243 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
2245 * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
2248 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2250 * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
2252 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2254 * common/config/riscv/riscv-common.cc
2255 (riscv_subset_list::parse_std_ext): Remove.
2256 (riscv_subset_list::parse_multiletter_ext): Remove.
2257 * config/riscv/riscv-subset.h
2258 (riscv_subset_list::parse_std_ext): Remove.
2259 (riscv_subset_list::parse_multiletter_ext): Remove.
2261 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2263 * common/config/riscv/riscv-common.cc
2264 (riscv_subset_list::parse_single_std_ext): New parameter.
2265 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
2266 (riscv_subset_list::parse_single_ext): Ditto.
2267 (riscv_subset_list::parse): Relax the order for the input of ISA
2269 * config/riscv/riscv-subset.h
2270 (riscv_subset_list::parse_single_std_ext): New parameter.
2271 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
2272 (riscv_subset_list::parse_single_ext): Ditto.
2274 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2276 * common/config/riscv/riscv-common.cc
2277 (riscv_subset_list::parse_base_ext): New.
2278 (riscv_subset_list::parse): Extract part of logic into
2279 riscv_subset_list::parse_base_ext.
2280 * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
2283 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
2285 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
2288 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
2290 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
2293 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
2296 * doc/extend.texi (Common Variable Attributes): Explain what
2297 happens when multiple variables with cleanups are in the same scope.
2299 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
2302 * doc/extend.texi (Common Function Attributes): Document that
2303 noinline also disables some interprocedural optimizations and
2304 improve flow to the part about using inline asm instead to
2305 disable calls from being optimized away completely. Remove the
2306 sentence that says noipa is mainly for internal compiler testing.
2308 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
2310 PR tree-optimization/69807
2311 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
2313 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
2316 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
2317 from x86 Windows Options.
2319 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
2322 * doc/extend.texi (C Extensions): Add new section to menu.
2323 (Function Attributes): Move dangling index entries to....
2324 (Const and Volatile Functions): New section.
2326 2024-01-18 David Malcolm <dmalcolm@redhat.com>
2328 PR middle-end/112684
2329 * toplev.cc (toplev::main): Don't ICE in
2330 -fdiagnostics-generate-patch when exiting after options,
2331 since no edit context will have been created.
2333 2024-01-18 Richard Biener <rguenther@suse.de>
2335 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
2338 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
2340 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
2341 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
2343 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2344 Jin Ma <jinma@linux.alibaba.com>
2345 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2346 Christoph Müllner <christoph.muellner@vrull.eu>
2348 * config/riscv/thead.cc
2349 (th_asm_output_opcode): Rewrite some instructions.
2351 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2352 Jin Ma <jinma@linux.alibaba.com>
2353 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2354 Christoph Müllner <christoph.muellner@vrull.eu>
2356 * config/riscv/riscv.md (none,thv,rvv): New attribute.
2357 (no,yes): Add an attribute to disable alternative
2358 for xtheadvector or RVV1.0.
2359 * config/riscv/vector.md:
2360 Disable alternatives that destination register overlaps
2361 source register group for xtheadvector.
2363 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2364 Jin Ma <jinma@linux.alibaba.com>
2365 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2366 Christoph Müllner <christoph.muellner@vrull.eu>
2368 * config/riscv/riscv-vector-builtins-bases.cc
2369 (class th_loadstore_width): Define new builtin bases.
2370 (class th_extract): Define new builtin bases.
2371 (BASE): Define new builtin bases.
2372 * config/riscv/riscv-vector-builtins-bases.h:
2373 Define new builtin class.
2374 * config/riscv/riscv-vector-builtins-shapes.cc
2375 (struct th_loadstore_width_def): Define new builtin shapes.
2376 (struct th_indexed_loadstore_width_def):
2377 Define new builtin shapes.
2378 (struct th_extract_def): Define new builtin shapes.
2379 (SHAPE): Define new builtin shapes.
2380 * config/riscv/riscv-vector-builtins-shapes.h:
2381 Define new builtin shapes.
2382 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
2383 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
2384 * config/riscv/riscv-vector-builtins.h
2385 (enum required_ext): Add new XTheadVector member.
2386 (struct function_group_info): Likewise.
2387 * config/riscv/t-riscv:
2388 Add thead-vector-builtins-functions.def
2389 * config/riscv/thead-vector.md
2390 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
2391 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
2392 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
2393 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
2394 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
2395 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
2396 (@pred_th_extract<mode>): Likewise.
2397 (*pred_th_extract<mode>): Likewise.
2398 * config/riscv/thead-vector-builtins-functions.def: New file.
2400 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2401 Jin Ma <jinma@linux.alibaba.com>
2402 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2403 Christoph Müllner <christoph.muellner@vrull.eu>
2405 * config.gcc: Add files for XTheadVector intrinsics.
2406 * config/riscv/autovec.md: Guard XTheadVector.
2407 * config/riscv/predicates.md: Disable immediate vl
2409 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
2410 Add pragma for XTheadVector.
2411 * config/riscv/riscv-string.cc (riscv_expand_block_move):
2413 * config/riscv/riscv-v.cc (vls_mode_valid_p):
2415 * config/riscv/riscv-vector-builtins-bases.cc:
2416 Do not normalize vsetvl instructions for XTheadVector.
2417 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
2418 New check type function.
2419 (build_one): Adjust for XTheadVector.
2420 * config/riscv/riscv-vector-switch.def (ENTRY):
2421 Disable fractional mode for the XTheadVector extension.
2422 (TUPLE_ENTRY): Likewise.
2423 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
2425 (riscv_preferred_simd_mode): Likewsie.
2426 (riscv_autovectorize_vector_modes): Likewise.
2427 (riscv_vector_mode_supported_any_target_p): Likewise.
2428 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
2429 * config/riscv/thead.cc (th_asm_output_opcode):
2430 Rewrite vsetvl instructions.
2431 * config/riscv/vector.md:
2432 Include thead-vector.md and change fractional LMUL
2434 * config/riscv/riscv_th_vector.h: New file.
2435 * config/riscv/thead-vector.md: New file.
2437 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2438 Jin Ma <jinma@linux.alibaba.com>
2439 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2440 Christoph Müllner <christoph.muellner@vrull.eu>
2442 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
2443 Add new function to add assembler insn code prefix/suffix.
2444 (th_asm_output_opcode):
2445 Add Thead function to add assembler insn code prefix/suffix.
2446 * config/riscv/riscv.cc (riscv_asm_output_opcode):
2447 Implement function to add assembler insn code prefix/suffix.
2448 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
2449 Add new function to add assembler insn code prefix/suffix.
2450 * config/riscv/thead.cc (th_asm_output_opcode):
2451 Implement Thead function to add assembler insn code
2454 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2455 Jin Ma <jinma@linux.alibaba.com>
2456 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2457 Christoph Müllner <christoph.muellner@vrull.eu>
2459 * common/config/riscv/riscv-common.cc
2460 (riscv_subset_list::parse): Add new vendor extension.
2461 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
2463 * config/riscv/riscv.opt: Add new mask.
2465 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
2467 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
2468 to be conditional on macosx-version-min.
2470 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
2472 * config/darwin.cc (darwin_objc1_section): Use the correct
2473 meta-data version for constant strings.
2474 (machopic_select_section): Assert if we fail to handle CFString
2475 sections as Obejctive-C meta-data or drectly.
2477 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
2479 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
2480 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
2481 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
2482 versions when the object format is Mach-O.
2484 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
2487 * config/darwin.cc (machopic_select_section): Handle C and C++
2489 (darwin_rename_builtins): Move this out of the CFString code.
2490 (darwin_libc_has_function): Likewise.
2491 (darwin_build_constant_cfstring): Create an anonymous var to
2493 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
2496 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2499 * haifa-sched.cc (dep_list_size): Make global.
2500 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
2501 * sched-int.h (dep_list_size): Declare.
2503 2024-01-18 Martin Jambor <mjambor@suse.cz>
2505 PR tree-optimization/110422
2506 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
2509 2024-01-18 Richard Biener <rguenther@suse.de>
2511 PR tree-optimization/113475
2512 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
2513 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
2514 (phi_analyzer::~phi_analyzer): Deallocate and free collected
2516 (phi_analyzer::process_phi): Record allocated phi_groups.
2518 2024-01-18 Richard Biener <rguenther@suse.de>
2520 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
2521 storage for gvec_oprnds elements.
2523 2024-01-18 Richard Biener <rguenther@suse.de>
2525 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
2526 prefer all later exits we can handle.
2527 (vect_analyze_loop_form): Free the allocated loop body.
2530 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2532 * config/avr/avr-log.cc: Tabify.
2534 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2536 * config/riscv/autovec.md: Support vi variant.
2538 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2540 * config/avr/avr-devices.cc: Tabify.
2542 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2544 * config/avr/avr-c.cc: Tabify.
2546 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2548 * config/avr/driver-avr.cc: Tabify.
2550 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2552 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
2554 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2556 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
2558 2024-01-18 Jakub Jelinek <jakub@redhat.com>
2560 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
2561 minline-strcmp, minline-strncmp, minline-strlen,
2562 -param=riscv-vector-abi): Remove Bool keywords.
2564 2024-01-18 Jakub Jelinek <jakub@redhat.com>
2567 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
2568 support. Add missing space after , in emitted assembly in some
2569 cases. Formatting fixes.
2571 2024-01-18 Xi Ruoyao <xry111@xry111.site>
2573 * config/loongarch/loongarch.md (movsi_internal): Remove
2576 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
2578 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
2579 in the diagnostic, and capitalize the device name.
2580 (print_mcu): Generate specs such that:
2581 <*check_rodata_in_ram>: New.
2582 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
2583 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
2584 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
2586 2024-01-18 Jakub Jelinek <jakub@redhat.com>
2589 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
2590 Common and Optimization.
2592 2024-01-18 Richard Biener <rguenther@suse.de>
2594 PR tree-optimization/113431
2595 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
2596 When there is an invariant load we might not preserve
2599 2024-01-18 Richard Biener <rguenther@suse.de>
2601 PR tree-optimization/113374
2602 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
2603 * tree-vect-loop.cc (move_early_exit_stmts): Update
2605 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2606 Refactor. Preserve virtual LC PHIs on all exits.
2608 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
2610 * config/loongarch/loongarch.cc (loongarch_split_symbol):
2611 Assign the '/u' attribute to the mem.
2613 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
2615 PR middle-end/110847
2616 * doc/invoke.texi (Option Summary): Document negative forms of
2617 -Wtsan and -Wxor-used-as-pow.
2618 (Warning Options): Likewise.
2620 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2623 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
2625 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
2627 * doc/extend.texi (Common Function Attributes): Re-alphabetize
2629 (Common Variable Attributes): Likewise.
2630 (Common Type Attributes): Likewise.
2632 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
2634 PR middle-end/111659
2635 * doc/extend.texi (Common Variable Attributes): Fix long lines
2636 in documentation of strict_flex_array + other minor copy-editing.
2637 Add a cross-reference to -Wstrict-flex-arrays.
2638 * doc/invoke.texi (Option Summary): Fix whitespace in tables
2639 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
2640 (C Dialect Options): Combine the docs for the two
2641 -fstrict-flex-arrays forms into a single entry. Note this option
2642 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
2643 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
2644 Minor copy-editing. Add cross references to the strict_flex_array
2645 attribute and -fstrict-flex-arrays option. Add note that this
2646 option depends on -ftree-vrp.
2648 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
2651 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
2652 only allow REG operands instead of allowing all.
2654 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
2656 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
2657 Remove redundant checks in else condition for readablity.
2658 (earliest_fuse_vsetvl_info) Print iteration count in debug
2660 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
2661 dump details in certain cases.
2663 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
2665 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
2666 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
2667 * config/riscv/riscv-vsetvl.cc
2668 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
2669 (pass_vsetvl::execute): Use vsetvl_strategy.
2671 2024-01-17 Jan Hubicka <jh@suse.cz>
2673 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
2674 accidental hack reseting offset.
2676 2024-01-17 Jan Hubicka <jh@suse.cz>
2678 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
2679 handling of X86_TUNE_AVOID_512FMA_CHAINS.
2681 2024-01-17 Jan Hubicka <jh@suse.cz>
2682 Jakub Jelinek <jakub@redhat.com>
2684 PR tree-optimization/110852
2685 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
2687 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
2688 PRED_COMBINED_VALUE_PREDICTIONS_PHI
2689 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
2690 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
2692 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2694 PR tree-optimization/113421
2695 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
2697 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
2698 formatting. Start at vop rather than cvop even if stmt is a store
2699 and needs_operand_addr.
2701 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2703 PR middle-end/113410
2704 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
2705 If access_nelts is integral with larger precision than sizetype,
2706 fold_convert it to sizetype.
2708 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2710 PR tree-optimization/113408
2711 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
2712 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
2715 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2717 PR middle-end/113406
2718 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
2719 regardless of whether is_gimple_reg_type (restype) or not.
2721 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2723 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
2724 funcions -> functions, and use were instead of was.
2725 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
2726 and guaranteee -> guarantee.
2727 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
2729 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2731 PR middle-end/113409
2732 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
2734 (omp_extract_for_data): Use build_bitint_type rather than
2735 build_nonstandard_integer_type if either iter_type or loop->v type
2737 * omp-expand.cc (expand_omp_for_generic,
2738 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
2739 BITINT_TYPE like INTEGER_TYPE.
2741 2024-01-17 Richard Biener <rguenther@suse.de>
2743 PR tree-optimization/113371
2744 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
2745 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
2746 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
2747 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
2749 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2751 PR rtl-optimization/96388
2752 PR rtl-optimization/111554
2753 * sched-deps.cc (find_inc): Avoid exponential behavior.
2755 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
2758 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
2759 from C++ Language Options to Warning Options. Add entry for
2761 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
2763 (Warning Options): ...to here. Minor copy-editing to fix typo
2766 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
2768 * config/mips/mips.cc (mips_compute_frame_info): If another
2769 register is used as global_pointer, mark $GP live false.
2771 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
2774 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
2775 give the section a light copy-editing pass.
2777 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
2779 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
2780 * config/aarch64/aarch64-tune.md: Regenerated.
2781 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
2783 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
2786 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
2787 badly formed CONST expressions.
2789 2024-01-16 Daniel Cederman <cederman@gaisler.com>
2791 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
2793 2024-01-16 Daniel Cederman <cederman@gaisler.com>
2795 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
2796 * config/sparc/sync.md (membar_storeload): Turn into named insn
2797 and add GR712RC errata workaround.
2798 (membar_v8): Add GR712RC errata workaround.
2800 2024-01-16 Andreas Larsson <andreas@gaisler.com>
2802 * config/sparc/sync.md (*membar_storeload_leon3): Remove
2803 (*membar_storeload): Enable for LEON
2805 2024-01-16 Jakub Jelinek <jakub@redhat.com>
2807 PR tree-optimization/113372
2809 PR middle-end/110115
2810 PR middle-end/111422
2811 * cfgexpand.cc (add_scope_conflicts_2): New function.
2812 (add_scope_conflicts_1): Use it.
2814 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
2816 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
2817 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
2818 * doc/avr-mmcu.texi: Regenerate.
2820 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
2822 PR tree-optimization/113091
2823 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
2824 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
2825 scalar use with new function.
2826 (vect_bb_slp_mark_live_stmts): New function as entry to existing
2827 overriden functions with same name.
2828 (vect_slp_analyze_operations): Call new entry function to mark
2831 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2834 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
2835 for RVV in big-endian mode.
2837 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
2839 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
2840 (riscv_pass_in_vector_p): Delete.
2841 (riscv_init_cumulative_args): Delete the checking.
2842 (riscv_get_arg_info): Delete the checking.
2843 (riscv_function_value): Delete the checking.
2844 * config/riscv/riscv.h: Delete the member for checking.
2846 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
2848 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
2850 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
2852 * config.gcc: Include riscv_bitmanip.h.
2853 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
2854 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
2855 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
2856 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
2857 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
2858 * config/riscv/riscv-ftypes.def (2): New ftypes.
2859 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
2860 (RISCV_BUILTIN_NO_PREFIX): Likewise.
2861 * config/riscv/riscv_bitmanip.h: New file.
2863 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
2865 * config.gcc: Include riscv_crypto.h.
2866 * config/riscv/riscv_crypto.h: New file.
2868 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
2870 PR middle-end/113354
2871 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
2872 in the insn if the corresponding operand does not require hard
2875 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
2878 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
2879 * config/avr/driver-avr.cc (avr_no_devlib): New function.
2880 (avr_devicespecs_file): Use it to remove -nodevicelib from the
2881 options for cores only.
2882 * config/avr/avr-arch.h (avr_get_parch): New prototype.
2883 * config/avr/avr-devices.cc (avr_get_parch): New function.
2885 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2888 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
2889 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
2890 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
2892 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2895 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
2896 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
2897 * config/riscv/riscv-vector-costs.h: New function.
2899 2024-01-15 Richard Biener <rguenther@suse.de>
2901 PR tree-optimization/113385
2902 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2903 First redirect, then split the exit edge.
2905 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2907 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
2908 Remove m_num_vector_iterations.
2909 * config/riscv/riscv-vector-costs.h: Ditto.
2911 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
2914 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
2915 (-mbranch-cost): Set "Optimization" flag.
2917 2024-01-15 Jakub Jelinek <jakub@redhat.com>
2919 PR tree-optimization/113370
2920 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
2921 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
2922 set it to just prec % limb_prec.
2924 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2927 * config/riscv/vector.md: Fix ternary attributes.
2929 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
2932 * configure.ac [target=avr]: Check availability of emulations
2933 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
2934 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
2935 * configure: Regenerate.
2936 * config.in: Regenerate.
2937 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
2938 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
2939 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
2940 * config/avr/avr-arch.h (enum avr_device_specific_features):
2942 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
2944 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
2945 (avr_set_core_architecture): Set avr_arch_index.
2946 (have_avrxmega2_flmap, have_avrxmega4_flmap)
2947 (have_avrxmega3_rodata_in_flash): Set new static const bool according
2948 to configure results.
2949 (avr_rodata_in_flash_p): New function using them.
2950 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
2951 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
2952 (avr_asm_named_section): Track avr_has_rodata_p.
2953 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
2954 and not avr_rodata_in_flash_p ().
2955 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
2956 (LINK_SPEC): Add %(link_rodata_in_ram).
2957 (LINK_ARCH_SPEC): Remove.
2958 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
2959 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
2960 const bool according to configure results.
2961 (diagnose_mrodata_in_ram): New function.
2962 (print_mcu): Generate specs with the following changes:
2963 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
2964 need to extend avr/specs.h each time we add a new bell or whistle.
2965 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
2966 -m[no-]rodata-in-ram.
2967 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
2968 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
2969 <*cpp>: Add %(cpp_rodata_in_ram).
2970 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
2972 <*self_spec>: Add -mflmap or %<mflmap as needed.
2974 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
2976 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
2977 not the GPR iterator. Adjust pattern name and mode attribute
2980 2024-01-13 Jakub Jelinek <jakub@redhat.com>
2982 PR tree-optimization/113361
2983 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
2984 Fix up determination of the type for > limb_prec constants.
2986 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
2988 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
2989 Add web-link to the avr-gcc wiki.
2991 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
2993 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
2994 documentation for a version without argument, which is not supported.
2996 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2998 * config/arm/arm_neon.h
2999 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
3000 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
3001 (vld1_f16_x4, vld1_f32_x4): New.
3002 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
3003 (vld1_bf16_x4): New.
3004 (vld1q_types_x4): Updated to use vld1q_x4
3005 from arm_neon_builtins.def
3006 * config/arm/arm_neon_builtins.def
3007 (vld1_x4): Updated entries.
3008 (vld1q_x4): New entries, but comes from the old vld1_x4
3009 * config/arm/neon.md
3010 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
3012 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3014 * config/arm/arm_neon.h
3015 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
3016 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
3017 (vld1_f16_x3, vld1_f32_x3): New.
3018 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
3019 (vld1_bf16_x3): New.
3020 (vld1q_types_x3): Updated to use vld1q_x3 from
3021 arm_neon_builtins.def
3022 * config/arm/arm_neon_builtins.def
3023 (vld1_x3): Updated entries.
3024 (vld1q_x3): New entries, but comes from the old vld1_x2
3025 * config/arm/neon.md
3026 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
3028 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3030 * config/arm/arm_neon.h
3031 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
3032 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
3033 (vld1_f16_x2, vld1_f32_x2): New.
3034 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
3035 (vld1_bf16_x2): New.
3036 (vld1q_types_x2): Updated to use vld1q_x2 from
3037 arm_neon_builtins.def
3038 * config/arm/arm_neon_builtins.def
3039 (vld1_x2): Updated entries.
3040 (vld1q_x2): New entries, but comes from the old vld1_x2
3041 * config/arm/neon.md
3042 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
3045 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3047 * config/arm/arm_neon.h
3048 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
3049 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
3050 (vst1q_f16_x4, vst1q_f32_x4): New.
3051 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
3052 (vst1q_bf16_x4): New.
3053 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
3054 * config/arm/neon.md
3055 (neon_vst1q_x4<mode>): New.
3056 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
3057 * config/arm/unspecs.md
3058 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
3060 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3062 * config/arm/arm_neon.h
3063 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
3064 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
3065 (vst1q_f16_x3, vst1q_f32_x3): New.
3066 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
3067 (vst1q_bf16_x3): New.
3068 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
3069 * config/arm/neon.md
3070 (neon_vst1q_x3<mode>): New.
3071 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
3072 * config/arm/unspecs.md
3073 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
3075 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3077 * config/arm/arm_neon.h
3078 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
3079 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
3080 (vst1q_f16_x2, vst1q_f32_x2): New.
3081 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
3082 (vst1q_bf16_x2): New.
3083 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
3084 * config/arm/neon.md
3085 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
3087 * config/arm/iterators.md
3088 (VMEMX2): New mode iterator.
3089 (VMEMX2_q): New mode attribute.
3091 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3093 * config/arm/arm_neon.h
3094 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
3095 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
3096 (vst1_f16_x4, vst1_f32_x4): New.
3097 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
3098 (vst1_bf16_x4): New.
3099 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
3100 * config/arm/neon.md (vst1_x4<mode>): New.
3102 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3104 * config/arm/arm_neon.h
3105 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
3106 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
3107 (vst1_f16_x3, vst1_f32_x3): New.
3108 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
3109 (vst1_bf16_x3): New.
3110 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
3111 * config/arm/neon.md (vst1_x3<mode>): New.
3113 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3115 * config/arm/arm_neon.h
3116 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
3117 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
3118 (vst1_f16_x2, vst1_f32_x2): New.
3119 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
3120 (vst1_bf16_x2): New.
3121 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
3122 * config/arm/neon.md (vst1_x2<mode>): New.
3124 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3126 * config/arm/arm_neon.h
3127 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
3128 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
3129 (vld1q_f16_x4, vld1q_f32_x4): New.
3130 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
3131 (vld1q_bf16_x4): New.
3132 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
3133 * config/arm/neon.md
3134 (neon_vld1_x4<mode>): New.
3135 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
3136 * config/arm/unspecs.md
3137 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
3139 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3141 * config/arm/arm_neon.h
3142 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
3143 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
3144 (vld1q_f16_x3, vld1q_f32_x3): New.
3145 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
3146 (vld1q_bf16_x3): New.
3147 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
3148 * config/arm/neon.md
3149 (neon_vld1_x3<mode>): New.
3150 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
3151 * config/arm/unspecs.md
3152 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
3154 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
3156 * config/arm/arm_neon.h
3157 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
3158 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
3159 (vld1q_f16_x2, vld1q_f32_x2): New.
3160 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
3161 (vld1q_bf16_x2): New.
3162 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
3163 * config/arm/neon.md (vld1_x2<mode>): New.
3165 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3167 PR tree-optimization/113287
3168 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
3170 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3172 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
3173 * tree-vect-loop.cc (vect_transform_loop): Likewise.
3175 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3177 PR tree-optimization/113178
3178 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
3181 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3183 PR tree-optimization/113237
3184 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
3185 existing LCSSA variable for exit when all exits are early break.
3187 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3189 PR tree-optimization/113137
3190 PR tree-optimization/113136
3191 PR tree-optimization/113172
3192 PR tree-optimization/113178
3193 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3194 Maintain PHIs on inverted loops.
3195 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
3196 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
3198 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
3200 2024-01-12 Tamar Christina <tamar.christina@arm.com>
3202 PR tree-optimization/113135
3203 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
3204 dependency analysis.
3206 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
3208 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
3209 diagnostics class member name for abort of error.
3211 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
3213 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
3214 format string to %s argument.
3216 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
3217 Jakub Jelinek <jakub@redhat.com>
3219 PR middle-end/113182
3220 * varasm.cc (process_pending_assemble_externals,
3221 assemble_external_libcall): Use targetm.strip_name_encoding
3222 before calling get_identifier.
3224 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
3227 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
3228 New member variable.
3229 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
3231 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
3232 * config/aarch64/aarch64-simd.md
3233 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
3234 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
3235 zip2 for zero-extends to...
3236 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
3237 instruction. Fix big-endian handling.
3238 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
3239 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
3240 zip1 for zero-extends to...
3241 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
3242 Fix big-endian handling.
3243 (*aarch64_zip1_uxtl): New pattern.
3244 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
3245 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
3246 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
3247 (aarch64_gen_shareable_zero): Use it.
3248 (aarch64_split_simd_shift_p): New function.
3250 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
3252 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
3253 (function_beg_insn): New macro.
3254 * function.cc (expand_function_start): Initialize function_beg_insn.
3256 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
3259 * config/aarch64/aarch64-sve-builtins.h
3260 (function_builder::m_overload_names): Replace with...
3261 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
3263 (add_overloaded_function): Update accordingly, using get_identifier
3264 to get a GGC-friendly record of the name.
3266 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
3269 * config/aarch64/aarch64-sve-builtins.def: Don't include
3270 aarch64-sve-builtins-sme.def.
3271 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
3272 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
3273 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
3274 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
3275 requires AARCH64_FL_SME2.
3276 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
3277 AARCH64_FL_SME adjustment here.
3278 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
3279 include SME intrinsics.
3280 (sme_function_groups): New array.
3281 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
3282 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
3284 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3287 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
3288 (struct cpu_vector_cost): Add regmove struct.
3289 (get_vector_costs): Export as global.
3290 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
3291 (costs::add_stmt_cost): Ditto.
3292 * config/riscv/riscv.cc (get_common_costs): Export global function.
3294 2024-01-12 Jakub Jelinek <jakub@redhat.com>
3296 PR tree-optimization/113334
3297 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
3298 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
3299 to determine if number should be extended by all ones rather than zero
3302 2024-01-12 Jakub Jelinek <jakub@redhat.com>
3304 PR tree-optimization/113330
3305 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
3308 2024-01-12 Jakub Jelinek <jakub@redhat.com>
3310 PR tree-optimization/113323
3311 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
3312 check for lhs being large/huge _BitInt not in m_names.
3314 2024-01-12 Jakub Jelinek <jakub@redhat.com>
3316 PR tree-optimization/113316
3317 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
3318 uninitialized large/huge _BitInt arguments to calls.
3320 2024-01-12 Jakub Jelinek <jakub@redhat.com>
3322 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
3323 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
3324 CEIL (TYPE_PRECISION (t), limb_prec).
3325 (bitint_large_huge::handle_cast): Likewise.
3327 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
3330 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
3331 Use assemble_function_label_final () for Power ELF V1 ABI.
3332 * output.h (assemble_function_label_final): New function.
3333 * varasm.cc (assemble_function_label_raw): Use
3334 assemble_function_label_final ().
3335 (assemble_function_label_final): New function.
3337 2024-01-12 Richard Biener <rguenther@suse.de>
3339 PR middle-end/113344
3340 * match.pd ((double)float CMP (double)float -> float CMP float):
3341 Perform result type check only for vectors.
3342 * fold-const.cc (fold_binary_loc): Likewise.
3344 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
3346 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
3347 (usdot_prod<mode>): Ditto.
3348 (sdot_prod<mode>): Ditto.
3349 (udot_prod<mode>): Ditto.
3351 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
3354 * config/i386/i386-c.cc (ix86_target_macros_internal):
3355 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
3357 2024-01-12 Richard Biener <rguenther@suse.de>
3360 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
3361 Do not generate code when d.testing_p.
3363 2024-01-12 liuhongt <hongtao.liu@intel.com>
3366 * doc/invoke.texi (fcf-protection=): Update documents.
3368 2024-01-12 Pan Li <pan2.li@intel.com>
3370 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
3371 comments of predicate func riscv_v_ext_mode_p.
3373 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
3375 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
3376 Modify ABI-name length of vfloat16m8_t
3378 2024-01-12 Li Wei <liwei@loongson.cn>
3380 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
3383 2024-01-12 Li Wei <liwei@loongson.cn>
3385 * config/loongarch/loongarch.md (add<mode>3): Removed.
3389 (*addsi3_extended): Removed.
3390 (addsi3_extended): New.
3392 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
3394 * config/riscv/thead.md: Add limits for splits.
3396 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
3398 PR middle-end/113322
3399 * expr.cc (do_store_flag): Don't try single bit tests with
3400 comparison on vector types.
3402 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
3404 PR tree-optimization/113301
3405 * match.pd (`1/x`): Delay signed case until late.
3407 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
3409 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
3411 (AVR Internal Options): ...this new @subsubsection.
3413 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
3415 PR rtl-optimization/112918
3416 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
3417 (in_class_p): Restrict condition for narrowing class in case of
3418 allow_all_reload_class_changes_p.
3419 (process_alt_operands): Try to match operand without and with
3420 narrowing reg class. Discourage narrowing the class. Finish insn
3421 matching only if there is no class narrowing.
3422 (curr_insn_transform): Pass true to in_class_p for reg operand win.
3424 2024-01-11 Richard Biener <rguenther@suse.de>
3426 PR tree-optimization/112505
3427 * tree-vect-loop.cc (vectorizable_induction): Reject
3428 bit-precision induction.
3430 2024-01-11 Richard Biener <rguenther@suse.de>
3432 PR tree-optimization/113126
3433 * match.pd ((double)float CMP (double)float -> float CMP float):
3434 Make sure the boolean type is the same.
3435 * fold-const.cc (fold_binary_loc): Likewise.
3437 2024-01-11 Richard Biener <rguenther@suse.de>
3439 PR tree-optimization/112636
3440 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
3441 estimate_numbers_of_iterations before querying
3442 get_max_loop_iterations_int.
3443 (pass_ch::execute): Initialize SCEV and loops appropriately.
3445 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
3447 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
3449 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
3450 * doc/extend.texi (AVR Variable Attributes): Improve documentation
3451 of io, io_low and address attributes.
3452 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
3453 * doc/avr-mmcu.texi: Rebuild.
3455 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
3458 * config/loongarch/genopts/loongarch.opt.in: Mark options with
3459 the "Save" property.
3460 * config/loongarch/loongarch.opt: Same.
3461 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
3462 according to la_target.
3463 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
3464 RESTORE} for the la_target structure; Rename option conditions
3465 to have the same "la_" prefix.
3466 * config/loongarch/loongarch.h: Same.
3468 2024-01-11 Pan Li <pan2.li@intel.com>
3470 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
3471 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
3473 2024-01-11 Alex Coplan <alex.coplan@arm.com>
3476 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
3477 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
3478 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
3479 synthesize these if needed. Update caller ...
3480 (ldp_bb_info::fuse_pair): ... here.
3481 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
3482 and either insn is frame-related.
3483 (find_trailing_add): Punt on frame-related insns.
3484 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
3485 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
3487 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
3489 * config/mips/mips.cc (mips_start_function_definition):
3490 Add ATTRIBUTE_UNUSED.
3492 2024-01-11 Richard Biener <rguenther@suse.de>
3494 PR middle-end/112740
3495 * expr.cc (store_constructor): Check the integer vector
3496 mask has a single bit per element before using sign-extension
3497 to expand an uniform vector.
3499 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3501 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
3502 preempt VLS on unknown NITERS loop.
3504 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
3506 * doc/invoke.texi: Add -mevex512.
3508 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
3510 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
3511 (*nor<mode>3): Likewise.
3512 (nor<mode>3): Likewise.
3513 (*negsi2_extended): New template.
3514 (*<optab>si3_internal): Likewise.
3515 (*one_cmplsi2_internal): Likewise.
3516 (*norsi3_internal): Likewise.
3517 (*<optab>nsi_internal): Likewise.
3518 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
3519 modified bit operation to make the optimization work.
3521 2024-01-11 liuhongt <hongtao.liu@intel.com>
3524 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
3526 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3528 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
3529 (get_vector_costs): Ditto.
3530 (riscv_builtin_vectorization_cost): Ditto.
3532 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3534 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
3536 2024-01-10 Antoni Boucher <bouanto@zoho.com>
3539 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
3540 ipa_free_size_summary.
3541 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
3542 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
3543 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
3544 * ipa-prop.h (ipa_prop_cc_finalize): New function.
3545 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
3546 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
3547 ipa_sra_cc_finalize): New functions.
3548 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
3549 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
3551 Include ipa-utils.h.
3553 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
3555 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
3556 (th_int_get_save_adjustment): Likewise.
3557 (th_int_adjust_cfi_prologue): Likewise.
3558 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
3559 (TH_INT_INTERRUPT): New macro.
3560 (riscv_expand_prologue): Add the processing of XTheadInt.
3561 (riscv_expand_epilogue): Likewise.
3562 * config/riscv/riscv.h (BITSET_P): Moved to here.
3563 * config/riscv/riscv.md: New unspec.
3564 * config/riscv/thead.cc (th_int_get_mask): New function.
3565 (th_int_get_save_adjustment): Likewise.
3566 (th_int_adjust_cfi_prologue): Likewise.
3567 * config/riscv/thead.md (th_int_push): New pattern.
3568 (th_int_pop): new pattern.
3570 2024-01-10 Tamar Christina <tamar.christina@arm.com>
3572 PR tree-optimization/112468
3573 * doc/sourcebuild.texi: Document ifn_copysign.
3574 * match.pd: Only apply transformation if target supports the IFN.
3576 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
3578 PR tree-optimization/112581
3579 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
3580 mark_ssa_maybe_undefs.
3581 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
3582 variables can not be reassociated.
3583 (init_range_entry): Check for uninitialized variables too.
3584 (init_reassoc): Call mark_ssa_maybe_undefs.
3586 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
3588 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
3589 Also handle sign extension.
3591 2024-01-10 Alex Coplan <alex.coplan@arm.com>
3593 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
3595 (-mlate-ldp-fusion): Likewise.
3597 2024-01-10 Tamar Christina <tamar.christina@arm.com>
3599 PR tree-optimization/113287
3600 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
3601 instead of using BRANCH_EDGE to determine true edge.
3603 2024-01-10 Richard Biener <rguenther@suse.de>
3605 PR tree-optimization/113078
3606 * tree-vect-loop.cc (check_reduction_path): Canonicalize
3607 .COND_SUB to .COND_ADD.
3609 2024-01-10 David Malcolm <dmalcolm@redhat.com>
3611 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
3612 Handle prefix mappings before calling find_opt.
3613 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
3614 "-fno-"-prefixed command-line option.
3615 * opts-common.cc (get_option_prefix_remapping): New.
3616 * opts.h (get_option_prefix_remapping): New decl.
3618 2024-01-10 David Malcolm <dmalcolm@redhat.com>
3620 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
3621 m_urlifier to pp_output_formatted_text.
3622 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
3623 (obstack_append_string): New overload, taking a length.
3624 (urlify_quoted_string): Pass in an obstack ptr, rather than using
3625 that of the pp's buffer. Generalize to handle trailing text in
3626 the buffer beyond the run of quoted text.
3627 (class quoting_info): New.
3628 (on_begin_quote): New.
3629 (on_end_quote): New.
3630 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
3631 it to calls to on_begin_quote and on_end_quote.
3632 (struct auto_obstack): New.
3633 (quoting_info::handle_phase_3): New.
3634 (pp_output_formatted_text): Add urlifier param. Use it if there
3635 is deferred urlification. Delete m_quotes.
3636 (selftest::pp_printf_with_urlifier): Pass urlifier to
3637 pp_output_formatted_text.
3638 (selftest::test_urlification): Update results for the existing
3639 case of quoted text stradding chunks; add more such test cases.
3640 * pretty-print.h (class quoting_info): New forward decl.
3641 (chunk_info::m_quotes): New field.
3642 (pp_output_formatted_text): Add optional urlifier param.
3644 2024-01-10 David Malcolm <dmalcolm@redhat.com>
3646 * pretty-print.cc (selftest::test_pp_format): Add selftest
3647 coverage for numbered args.
3649 2024-01-10 Tamar Christina <tamar.christina@arm.com>
3651 PR tree-optimization/113144
3652 PR tree-optimization/113145
3653 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3654 Update all BB that the original exits dominated.
3656 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
3658 * dwarf2out.cc (modified_type_die): Extend the support of reverse
3659 storage order to enumeration types if -gstrict-dwarf is not passed.
3660 (gen_enumeration_type_die): Add REVERSE parameter and generate the
3661 DIE immediately after the existing one if it is true.
3662 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
3663 call to gen_enumeration_type_die.
3664 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
3665 first recursive call as well as the call to gen_tagged_type_die.
3666 (gen_type_die): Add REVERSE parameter and pass it in the call to
3667 gen_type_die_with_usage.
3669 2024-01-10 Jakub Jelinek <jakub@redhat.com>
3671 PR tree-optimization/113120
3672 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
3673 with root->size TYPE_PRECISION don't build anything new.
3674 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
3675 rather than build_nonstandard_integer_type.
3677 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
3679 * config/i386/i386.opt: Adjust document.
3680 * doc/invoke.texi: Add description for
3681 -mapx-inline-asm-use-gpr32.
3683 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3685 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
3686 (avg<v_double_trunc>3_floor): New pattern.
3687 (<u>avg<v_double_trunc>3_ceil): Remove.
3688 (avg<v_double_trunc>3_ceil): New pattern.
3689 (uavg<mode>3_floor): Ditto.
3690 (uavg<mode>3_ceil): Ditto.
3691 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
3692 (enum insn_type): Ditto.
3693 * config/riscv/riscv-v.cc: Ditto.
3694 * config/riscv/vector-iterators.md (ashiftrt): Remove.
3696 * config/riscv/vector.md: Add VLS modes.
3698 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
3701 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
3702 (vczlsbb_char): New int attribute.
3703 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
3704 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
3705 (*vctzlsbb_zext_<mode>): Rename to ...
3706 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
3709 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
3712 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
3713 of the last argument from altivec_register_operand to any_operand. If
3714 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
3715 otherwise if it doesn't satisfy altivec_register_operand, force it to
3716 REG using copy_to_mode_reg.
3718 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
3720 PR middle-end/113100
3721 * builtins.cc (expand_builtin_stack_address): Guard stack point
3722 adjustment with SPARC_STACK_BOUNDARY_HACK.
3724 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3726 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
3727 argument string definitions.
3728 * config/loongarch/loongarch-str.h: Same.
3729 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
3730 as aliases to -mexplicit-relocs={always,none}
3731 * config/loongarch/loongarch.opt: Regenerate.
3732 * config/loongarch/loongarch.cc: Same.
3734 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3736 * config/loongarch/loongarch-def.h: Define constants with
3737 enums instead of Macros.
3739 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3741 * config/loongarch/genopts/loongarch-strings: Rename.
3742 * config/loongarch/genopts/loongarch.opt.in: Same.
3743 * config/loongarch/loongarch-cpu.cc: Same.
3744 * config/loongarch/loongarch-def.cc: Same.
3745 * config/loongarch/loongarch-def.h: Same.
3746 * config/loongarch/loongarch-opts.cc: Same.
3747 * config/loongarch/loongarch-opts.h: Same.
3748 * config/loongarch/loongarch-str.h: Same.
3749 * config/loongarch/loongarch.opt: Same.
3751 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3753 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
3754 variable with the common la_ prefix.
3755 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
3756 flags as saved using TargetVariable.
3757 * config/loongarch/loongarch.opt: Same.
3758 * config/loongarch/loongarch-def.h: Define evolution_set to
3759 mark changes to the -march default.
3760 * config/loongarch/loongarch-driver.cc: Same.
3761 * config/loongarch/loongarch-opts.cc: Same.
3762 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
3763 conditions around the la_target structure.
3764 * config/loongarch/loongarch.cc: Same.
3765 * config/loongarch/loongarch.md: Same.
3766 * config/loongarch/loongarch-builtins.cc: Same.
3767 * config/loongarch/loongarch-c.cc: Same.
3768 * config/loongarch/lasx.md: Same.
3769 * config/loongarch/lsx.md: Same.
3770 * config/loongarch/sync.md: Same.
3772 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
3774 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
3777 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
3779 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
3781 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3783 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
3785 (vectorizable_live_operation): Likewise.
3787 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3789 PR tree-optimization/113199
3790 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
3793 2024-01-09 Jakub Jelinek <jakub@redhat.com>
3796 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
3797 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
3798 GTY(()) declaration before the definition, drop GTY(()) drom the
3801 2024-01-09 Richard Biener <rguenther@suse.de>
3803 PR tree-optimization/113026
3804 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
3805 redundant and wrong niter bound setting. Move niter
3806 bound adjustment down.
3808 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3810 PR middle-end/113163
3811 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
3812 Reject non-linear inductions that aren't supported.
3814 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
3816 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
3817 left shift implementation strategies.
3818 (arc_shift_info): Type for each entry of the shift strategy table.
3819 (arc_shift_context_idx): Return a integer value for each code
3820 generation context, used as an index
3821 (arc_ashl_alg): Table indexed by context and shifted bit count.
3822 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
3823 left shift implementation.
3824 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
3825 provide accurate costs, when optimizing for speed or size.
3827 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3829 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
3831 2024-01-09 Julian Brown <julian@codesourcery.com>
3833 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
3834 processed out before gimplification.
3835 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
3836 * tree.def (OMP_ARRAY_SECTION): New tree code.
3838 2024-01-09 Jakub Jelinek <jakub@redhat.com>
3840 PR tree-optimization/113210
3841 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
3842 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
3843 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
3846 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
3848 PR rtl-optimization/113140
3849 * reorg.cc (fill_slots_from_thread): If we are to branch after the
3850 last instruction of the function, create an end label.
3852 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
3853 Hongtao Liu <hongtao.liu@intel.com>
3856 * config/i386/i386-expand.cc
3857 (ix86_convert_const_wide_int_to_broadcast): Allow call to
3858 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
3859 (ix86_broadcast_from_constant): Revert recent change; Return a
3860 suitable MEMREF independently of mode/target combinations.
3861 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
3862 to decide whether expansion is possible/preferrable. Only try
3863 forcing DImode constants to memory (and trying again) if calling
3864 ix86_expand_vector_init_duplicate fails with an DImode immediate
3866 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
3867 V4SImode for suitable immediate constants.
3868 <case E_V4DImode>: Try using V8SImode for suitable constants.
3869 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
3870 <case E_V2HImode>: Likewise.
3871 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
3872 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
3873 <label widen>: Handle CONT_INTs via simplify_binary_operation.
3874 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
3875 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
3876 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
3877 (ix86_expand_vector_init): Move try using a broadcast for all_same
3878 with ix86_expand_vector_init_duplicate before using constant pool.
3880 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
3882 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
3884 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
3886 * config/arm/arm-cpus.in (cortex-m52): New cpu.
3887 * config/arm/arm-tables.opt: Regenerate.
3888 * config/arm/arm-tune.md: Regenerate.
3890 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
3892 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
3893 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
3894 (@vec_concatz<mode>): New insn pattern.
3895 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
3896 Handle VALS containing two vectors.
3898 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3900 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
3901 (vundefined): Ditto.
3903 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
3905 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
3906 Add new function_base for crypto vector.
3907 (class bitmanip): Ditto.
3908 (class b_reverse):Ditto.
3909 (class vwsll): Ditto.
3910 (class clmul): Ditto.
3911 (class vg_nhab): Ditto.
3912 (class crypto_vv):Ditto.
3913 (class crypto_vi):Ditto.
3914 (class vaeskf2_vsm3c):Ditto.
3915 (class vsm3me): Ditto.
3916 (BASE): Add BASE declaration for crypto vector.
3917 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3918 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
3919 Add crypto vector intrinsic definition.
3947 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
3948 Add new function_shape for crypto vector.
3949 (struct crypto_vi_def): Ditto.
3950 (struct crypto_vv_no_op_type_def): Ditto.
3951 (SHAPE): Add SHAPE declaration of crypto vector.
3952 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3953 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
3954 Add new data type for crypto vector.
3955 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3956 (vuint32mf2_t): Ditto.
3957 (vuint32m1_t): Ditto.
3958 (vuint32m2_t): Ditto.
3959 (vuint32m4_t): Ditto.
3960 (vuint32m8_t): Ditto.
3961 (vuint64m1_t): Ditto.
3962 (vuint64m2_t): Ditto.
3963 (vuint64m4_t): Ditto.
3964 (vuint64m8_t): Ditto.
3965 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
3966 Add new data struct for crypto vector.
3967 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3968 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
3969 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
3971 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3974 * varasm.cc (assemble_function_label_raw): Do not call
3975 asan_function_start () without the current function.
3977 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
3980 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
3981 extern and kernel_helper attributed function decls.
3983 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
3985 * btfout.cc (output_btf_strs): Changed.
3987 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
3989 * config/gcn/mkoffload.cc (main): Handle gfx1100
3990 when setting the default XNACK.
3992 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
3994 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
3995 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
3996 (ASM_SPEC): Handle gfx1100.
3997 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
3998 (enum gcn_isa): Add ISA_RDNA3.
3999 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
4000 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
4001 * config/gcn/gcn.cc (gcn_option_override,
4002 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
4003 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
4004 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
4005 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
4007 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
4008 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
4010 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
4011 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
4012 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
4013 (isa_has_combined_avgprs, main): Handle gfx1100.
4014 * config/gcn/t-omp-device (isa): Add gfx1100.
4016 2024-01-08 Richard Biener <rguenther@suse.de>
4018 * doc/invoke.texi (-mmovbe): Clarify.
4020 2024-01-08 Richard Biener <rguenther@suse.de>
4022 PR tree-optimization/113026
4023 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
4024 Avoid an epilog in more cases.
4025 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
4026 epilogues niter upper bounds and estimates.
4028 2024-01-08 Jakub Jelinek <jakub@redhat.com>
4030 PR tree-optimization/113228
4031 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
4033 2024-01-08 Jakub Jelinek <jakub@redhat.com>
4035 PR tree-optimization/113120
4036 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
4037 large _BitInt zero INTEGER_CST PHI argument.
4039 2024-01-08 Jakub Jelinek <jakub@redhat.com>
4041 PR tree-optimization/113119
4042 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
4043 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
4044 is before REALPART_EXPR.
4046 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
4049 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
4050 range when diagnosing attribute "io" and "io_low" are out of range.
4051 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
4052 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
4053 in contexts other than static storage.
4054 (avr_asm_output_aligned_decl_common): Move output of decls with
4055 attribute "address", "io", and "io_low" to...
4056 (avr_output_addr_attrib): ...this new function.
4057 (avr_asm_asm_output_aligned_bss): Remove output for decls with
4058 attribute "address", "io", and "io_low".
4059 (avr_encode_section_info): Rectify handling of decls with attribute
4060 "address", "io", and "io_low".
4062 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
4064 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
4065 (elf_flags): Remove XNACK from the default value.
4066 (main): Set a default XNACK according to the arch.
4068 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
4070 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
4071 (process_asm): Don't count avgprs.
4073 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
4075 * config/i386/i386.opt: Add supported sub-features.
4076 * doc/extend.texi: Add description for target attribute.
4078 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
4080 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
4082 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
4083 Uros Bizjak <ubizjak@gmail.com>
4086 * config/i386/i386-features.cc (compute_convert_gain): Include
4087 the overhead of explicit load and store (movd) instructions when
4088 converting non-store scalar operations with memory destinations.
4089 Various indentation whitespace fixes.
4091 2024-01-07 Tamar Christina <tamar.christina@arm.com>
4093 * config/arm/neon.md (cbranch<mode>4): New.
4095 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4097 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
4099 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
4101 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
4103 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4106 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
4109 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4111 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
4112 (variable_vectorized_p): Teach loop invariant.
4113 (has_unexpected_spills_p): Ditto.
4115 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4117 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
4118 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
4119 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
4121 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
4124 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
4125 (aarch64-vect-compare-costs): ...this.
4126 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
4128 (-param=aarch64-vect-compare-costs=): ...this new param.
4129 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
4130 Don't disable it when vectorizing for Advanced SIMD only.
4131 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
4132 whenever aarch64_vect_compare_costs is true.
4134 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
4136 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
4137 Modify the method of determining the memory offset of [x]vld/[x]vst.
4138 (lasx_mxst_<lasxfmt_f>): Likewise.
4139 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
4140 (loongarch_address_insns): Likewise.
4141 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
4142 (lsx_st_<lsxfmt_f>): Likewise.
4143 * config/loongarch/predicates.md (aq10b_operand): Likewise.
4144 (aq10h_operand): Likewise.
4145 (aq10w_operand): Likewise.
4146 (aq10d_operand): Likewise.
4148 2024-01-05 Alex Coplan <alex.coplan@arm.com>
4151 * config/aarch64/aarch64-ldp-fusion.cc
4152 (ldp_bb_info::try_fuse_pair): If the second access can throw,
4153 narrow the move range to exactly that insn.
4155 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
4157 * asan.cc (asan_function_start): Drop switch_to_section ().
4158 (asan_emit_stack_protection): Set .LASANPC alignment.
4159 * config/i386/i386.cc: Use assemble_function_label_raw ()
4160 instead of ASM_OUTPUT_LABEL ().
4161 * config/s390/s390.cc (s390_asm_output_function_label):
4163 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
4164 * final.cc (final_start_function_1): Drop
4165 asan_function_start ().
4166 * output.h (assemble_function_label_raw): New function.
4167 * varasm.cc (assemble_function_label_raw): Likewise.
4169 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
4171 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
4172 Use ASM_OUTPUT_FUNCTION_LABEL ().
4173 * config/alpha/alpha.cc (alpha_start_function): Likewise.
4174 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4175 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
4176 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4177 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4178 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
4179 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4180 * config/ia64/ia64.cc (ia64_start_function): Likewise.
4181 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
4183 * config/microblaze/microblaze.cc (microblaze_function_prologue):
4185 * config/mips/mips.cc (mips_start_unique_function): Return the
4187 (mips_start_function_definition): Use
4188 ASM_OUTPUT_FUNCTION_LABEL ().
4189 (mips_finish_stub): Pass the tree to
4190 mips_start_function_definition ().
4191 (mips16_build_function_stub): Likewise.
4192 (mips16_build_call_stub): Likewise.
4193 (mips_output_function_prologue): Likewise.
4194 * config/pa/pa.cc (pa_output_function_label): Use
4195 ASM_OUTPUT_FUNCTION_LABEL ().
4196 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
4197 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
4199 (rs6000_xcoff_declare_function_name): Likewise.
4201 2024-01-05 Jakub Jelinek <jakub@redhat.com>
4203 PR tree-optimization/113201
4204 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
4205 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
4207 2024-01-05 Jakub Jelinek <jakub@redhat.com>
4209 PR tree-optimization/90693
4210 * tree-ssa-math-opts.cc (match_single_bit_test): If
4211 tree_expr_nonzero_p (arg), remember it in the second argument to
4212 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
4213 arg ^ (arg - 1) > arg - 1.
4214 * internal-fn.cc (expand_POPCOUNT): If second argument to
4215 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
4216 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
4218 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
4220 * config/riscv/riscv-v.cc (expand_load_store):
4222 (expand_cond_len_op): Ditto.
4223 (expand_gather_scatter): Ditto.
4224 (expand_lanes_load_store): Ditto.
4225 (expand_fold_extract_last): Ditto.
4227 2024-01-05 Pan Li <pan2.li@intel.com>
4230 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
4232 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
4233 Add new function_base for crypto vector.
4234 (class bitmanip): Ditto.
4235 (class b_reverse):Ditto.
4236 (class vwsll): Ditto.
4237 (class clmul): Ditto.
4238 (class vg_nhab): Ditto.
4239 (class crypto_vv):Ditto.
4240 (class crypto_vi):Ditto.
4241 (class vaeskf2_vsm3c):Ditto.
4242 (class vsm3me): Ditto.
4243 (BASE): Add BASE declaration for crypto vector.
4244 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4245 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
4246 Add crypto vector intrinsic definition.
4274 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
4275 Add new function_shape for crypto vector.
4276 (struct crypto_vi_def): Ditto.
4277 (struct crypto_vv_no_op_type_def): Ditto.
4278 (SHAPE): Add SHAPE declaration of crypto vector.
4279 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4280 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
4281 Add new data type for crypto vector.
4282 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
4283 (vuint32mf2_t): Ditto.
4284 (vuint32m1_t): Ditto.
4285 (vuint32m2_t): Ditto.
4286 (vuint32m4_t): Ditto.
4287 (vuint32m8_t): Ditto.
4288 (vuint64m1_t): Ditto.
4289 (vuint64m2_t): Ditto.
4290 (vuint64m4_t): Ditto.
4291 (vuint64m8_t): Ditto.
4292 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
4293 Add new data struct for crypto vector.
4294 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
4295 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
4296 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
4298 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
4300 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
4301 Add new function_base for crypto vector.
4302 (class bitmanip): Ditto.
4303 (class b_reverse):Ditto.
4304 (class vwsll): Ditto.
4305 (class clmul): Ditto.
4306 (class vg_nhab): Ditto.
4307 (class crypto_vv):Ditto.
4308 (class crypto_vi):Ditto.
4309 (class vaeskf2_vsm3c):Ditto.
4310 (class vsm3me): Ditto.
4311 (BASE): Add BASE declaration for crypto vector.
4312 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4313 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
4314 Add crypto vector intrinsic definition.
4342 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
4343 Add new function_shape for crypto vector.
4344 (struct crypto_vi_def): Ditto.
4345 (struct crypto_vv_no_op_type_def): Ditto.
4346 (SHAPE): Add SHAPE declaration of crypto vector.
4347 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4348 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
4349 Add new data type for crypto vector.
4350 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
4351 (vuint32mf2_t): Ditto.
4352 (vuint32m1_t): Ditto.
4353 (vuint32m2_t): Ditto.
4354 (vuint32m4_t): Ditto.
4355 (vuint32m8_t): Ditto.
4356 (vuint64m1_t): Ditto.
4357 (vuint64m2_t): Ditto.
4358 (vuint64m4_t): Ditto.
4359 (vuint64m8_t): Ditto.
4360 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
4361 Add new data struct for crypto vector.
4362 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
4363 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
4364 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
4366 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4368 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
4370 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
4372 PR tree-optimization/113186
4373 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
4374 Match `^` with the `==` for 1bit integral types.
4375 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
4378 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4380 * toplev.cc (general_init): Pass lang_mask to urlifier.
4382 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4384 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
4386 (diagnostic_context::make_option_url): Update for lang_mask param.
4387 * gcc-urlifier.cc: Include "opts.h" and "options.h".
4388 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
4389 (gcc_urlifier::m_lang_mask): New field.
4390 (doc_urls): Make static.
4391 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
4392 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
4393 Look for an option by name before trying a binary search in
4395 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
4396 (gcc_urlifier::get_url_suffix_for_option): New.
4397 (make_gcc_urlifier): Add lang_mask param.
4398 (selftest::gcc_urlifier_cc_tests): Update for above changes.
4399 Verify that a URL is found for "-fpack-struct".
4400 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
4401 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
4402 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
4403 to make_gcc_urlifier.
4404 * opts-diagnostic.h (get_option_url): Add lang_mask param.
4405 * opts.cc (get_option_html_page): Remove special-casing for
4407 (get_option_url_suffix): New.
4408 (get_option_url): Reimplement.
4409 (selftest::test_get_option_html_page): Rename to...
4410 (selftest::test_get_option_url_suffix): ...this and update for
4412 (selftest::opts_cc_tests): Update for renaming.
4413 * opts.h: Include "rich-location.h".
4414 (get_option_url_suffix): New decl.
4416 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4418 * Makefile.in (ALL_OPT_URL_FILES): New.
4419 (GCC_OBJS): Add options-urls.o.
4421 (OBJS-libcommon): Likewise.
4422 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
4423 inputs to opt-gather.awk.
4424 (options-urls.cc): New Makefile target.
4425 * opt-functions.awk (url_suffix): New function.
4426 (lang_url_suffix): New function.
4427 * options-urls-cc-gen.awk: New file.
4428 * opts.h (get_opt_url_suffix): New decl.
4430 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4432 * params.opt.urls: New file, autogenerated by
4433 regenerate-opt-urls.py.
4435 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4437 * common.opt.urls: New file, autogenerated by
4438 regenerate-opt-urls.py.
4439 * config/aarch64/aarch64.opt.urls: Likewise.
4440 * config/alpha/alpha.opt.urls: Likewise.
4441 * config/alpha/elf.opt.urls: Likewise.
4442 * config/arc/arc-tables.opt.urls: Likewise.
4443 * config/arc/arc.opt.urls: Likewise.
4444 * config/arm/arm-tables.opt.urls: Likewise.
4445 * config/arm/arm.opt.urls: Likewise.
4446 * config/arm/vxworks.opt.urls: Likewise.
4447 * config/avr/avr.opt.urls: Likewise.
4448 * config/bpf/bpf.opt.urls: Likewise.
4449 * config/c6x/c6x-tables.opt.urls: Likewise.
4450 * config/c6x/c6x.opt.urls: Likewise.
4451 * config/cris/cris.opt.urls: Likewise.
4452 * config/cris/elf.opt.urls: Likewise.
4453 * config/csky/csky.opt.urls: Likewise.
4454 * config/csky/csky_tables.opt.urls: Likewise.
4455 * config/darwin.opt.urls: Likewise.
4456 * config/dragonfly.opt.urls: Likewise.
4457 * config/epiphany/epiphany.opt.urls: Likewise.
4458 * config/fr30/fr30.opt.urls: Likewise.
4459 * config/freebsd.opt.urls: Likewise.
4460 * config/frv/frv.opt.urls: Likewise.
4461 * config/ft32/ft32.opt.urls: Likewise.
4462 * config/fused-madd.opt.urls: Likewise.
4463 * config/g.opt.urls: Likewise.
4464 * config/gcn/gcn.opt.urls: Likewise.
4465 * config/gnu-user.opt.urls: Likewise.
4466 * config/h8300/h8300.opt.urls: Likewise.
4467 * config/hpux11.opt.urls: Likewise.
4468 * config/i386/cygming.opt.urls: Likewise.
4469 * config/i386/cygwin.opt.urls: Likewise.
4470 * config/i386/djgpp.opt.urls: Likewise.
4471 * config/i386/i386.opt.urls: Likewise.
4472 * config/i386/mingw-w64.opt.urls: Likewise.
4473 * config/i386/mingw.opt.urls: Likewise.
4474 * config/i386/nto.opt.urls: Likewise.
4475 * config/ia64/ia64.opt.urls: Likewise.
4476 * config/ia64/ilp32.opt.urls: Likewise.
4477 * config/ia64/vms.opt.urls: Likewise.
4478 * config/iq2000/iq2000.opt.urls: Likewise.
4479 * config/linux-android.opt.urls: Likewise.
4480 * config/linux.opt.urls: Likewise.
4481 * config/lm32/lm32.opt.urls: Likewise.
4482 * config/loongarch/loongarch.opt.urls: Likewise.
4483 * config/lynx.opt.urls: Likewise.
4484 * config/m32c/m32c.opt.urls: Likewise.
4485 * config/m32r/m32r.opt.urls: Likewise.
4486 * config/m68k/ieee.opt.urls: Likewise.
4487 * config/m68k/m68k-tables.opt.urls: Likewise.
4488 * config/m68k/m68k.opt.urls: Likewise.
4489 * config/m68k/uclinux.opt.urls: Likewise.
4490 * config/mcore/mcore.opt.urls: Likewise.
4491 * config/microblaze/microblaze.opt.urls: Likewise.
4492 * config/mips/mips-tables.opt.urls: Likewise.
4493 * config/mips/mips.opt.urls: Likewise.
4494 * config/mips/sde.opt.urls: Likewise.
4495 * config/mmix/mmix.opt.urls: Likewise.
4496 * config/mn10300/mn10300.opt.urls: Likewise.
4497 * config/moxie/moxie.opt.urls: Likewise.
4498 * config/msp430/msp430.opt.urls: Likewise.
4499 * config/nds32/nds32-elf.opt.urls: Likewise.
4500 * config/nds32/nds32-linux.opt.urls: Likewise.
4501 * config/nds32/nds32.opt.urls: Likewise.
4502 * config/netbsd-elf.opt.urls: Likewise.
4503 * config/netbsd.opt.urls: Likewise.
4504 * config/nios2/elf.opt.urls: Likewise.
4505 * config/nios2/nios2.opt.urls: Likewise.
4506 * config/nvptx/nvptx-gen.opt.urls: Likewise.
4507 * config/nvptx/nvptx.opt.urls: Likewise.
4508 * config/openbsd.opt.urls: Likewise.
4509 * config/or1k/elf.opt.urls: Likewise.
4510 * config/or1k/or1k.opt.urls: Likewise.
4511 * config/pa/pa-hpux.opt.urls: Likewise.
4512 * config/pa/pa-hpux1010.opt.urls: Likewise.
4513 * config/pa/pa-hpux1111.opt.urls: Likewise.
4514 * config/pa/pa-hpux1131.opt.urls: Likewise.
4515 * config/pa/pa.opt.urls: Likewise.
4516 * config/pa/pa64-hpux.opt.urls: Likewise.
4517 * config/pdp11/pdp11.opt.urls: Likewise.
4518 * config/pru/pru.opt.urls: Likewise.
4519 * config/riscv/riscv.opt.urls: Likewise.
4520 * config/rl78/rl78.opt.urls: Likewise.
4521 * config/rpath.opt.urls: Likewise.
4522 * config/rs6000/476.opt.urls: Likewise.
4523 * config/rs6000/aix64.opt.urls: Likewise.
4524 * config/rs6000/darwin.opt.urls: Likewise.
4525 * config/rs6000/linux64.opt.urls: Likewise.
4526 * config/rs6000/rs6000-tables.opt.urls: Likewise.
4527 * config/rs6000/rs6000.opt.urls: Likewise.
4528 * config/rs6000/sysv4.opt.urls: Likewise.
4529 * config/rtems.opt.urls: Likewise.
4530 * config/rx/elf.opt.urls: Likewise.
4531 * config/rx/rx.opt.urls: Likewise.
4532 * config/s390/s390.opt.urls: Likewise.
4533 * config/s390/tpf.opt.urls: Likewise.
4534 * config/sh/sh.opt.urls: Likewise.
4535 * config/sh/superh.opt.urls: Likewise.
4536 * config/sol2.opt.urls: Likewise.
4537 * config/sparc/long-double-switch.opt.urls: Likewise.
4538 * config/sparc/sparc.opt.urls: Likewise.
4539 * config/stormy16/stormy16.opt.urls: Likewise.
4540 * config/v850/v850.opt.urls: Likewise.
4541 * config/vax/elf.opt.urls: Likewise.
4542 * config/vax/vax.opt.urls: Likewise.
4543 * config/visium/visium.opt.urls: Likewise.
4544 * config/vms/vms.opt.urls: Likewise.
4545 * config/vxworks-smp.opt.urls: Likewise.
4546 * config/vxworks.opt.urls: Likewise.
4547 * config/xtensa/elf.opt.urls: Likewise.
4548 * config/xtensa/uclinux.opt.urls: Likewise.
4549 * config/xtensa/xtensa.opt.urls: Likewise.
4550 * config/bfin/bfin.opt.urls: New file.
4552 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4554 * Makefile.in (OPT_URLS_HTML_DEPS): New.
4555 (regenerate-opt-urls): New target.
4556 (regenerate-opt-urls-unit-test): New target.
4557 * doc/options.texi (Option properties): Add UrlSuffix and
4558 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
4559 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
4560 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
4561 and Makefile.in's OPT_URLS_HTML_DEPS.
4562 (Anatomy of a Target Back End): Add
4563 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
4564 * regenerate-opt-urls.py: New file.
4566 2024-01-04 David Malcolm <dmalcolm@redhat.com>
4568 * diagnostic-format-sarif.cc
4569 (sarif_builder::make_logical_location_object): Convert to...
4570 (make_sarif_logical_location_object): ...this.
4571 (sarif_builder::set_any_logical_locs_arr): Update for above
4573 (sarif_builder::make_thread_flow_location_object): Call
4574 maybe_add_sarif_properties on each diagnostic_event.
4575 * diagnostic-format-sarif.h (class logical_location): New forward
4577 (make_sarif_logical_location_object): New decl.
4578 * diagnostic-path.h (class sarif_object): New forward decl.
4579 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
4581 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
4582 Patrick Lin <patrick@andestech.com>
4583 Rufus Chen <rufus@andestech.com>
4584 Monk Chiang <monk.chiang@sifive.com>
4586 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
4587 with Nan-boxing value.
4588 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
4590 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
4591 Jeff Law <jlaw@ventanamicro.com>
4593 PR rtl-optimization/104914
4594 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
4595 a sign or zero extension is only required if the modified field
4596 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
4597 targets, don't refer to the temporarily incorrectly extended value
4598 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
4600 2024-01-04 Pan Li <pan2.li@intel.com>
4603 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4605 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
4607 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4609 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
4611 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
4613 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
4616 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4618 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
4619 (compute_nregs_for_mode): Refine LMUL.
4620 (max_number_of_live_regs): Ditto.
4621 (compute_estimated_lmul): Ditto.
4622 (has_unexpected_spills_p): Ditto.
4624 2024-01-04 Li Wei <liwei@loongson.cn>
4626 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
4627 Remove useless forward declaration.
4628 (loongarch_is_even_extraction): Remove useless forward declaration.
4629 (loongarch_try_expand_lsx_vshuf_const): Removed.
4630 (loongarch_expand_vec_perm_const_1): Merged.
4631 (loongarch_is_double_duplicate): Removed.
4632 (loongarch_is_center_extraction): Ditto.
4633 (loongarch_is_reversing_permutation): Ditto.
4634 (loongarch_is_di_misalign_extract): Ditto.
4635 (loongarch_is_si_misalign_extract): Ditto.
4636 (loongarch_is_lasx_lowpart_extract): Ditto.
4637 (loongarch_is_op_reverse_perm): Ditto.
4638 (loongarch_is_single_op_perm): Ditto.
4639 (loongarch_is_divisible_perm): Ditto.
4640 (loongarch_is_triple_stride_extract): Ditto.
4641 (loongarch_expand_vec_perm_const_2): Merged.
4642 (loongarch_expand_vec_perm_const): New.
4643 (loongarch_vectorize_vec_perm_const): Adjust.
4645 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
4647 * omp-general.cc: Fix comment typos and misplaced/confusing
4648 comments. Delete redundant include of omp-general.h.
4650 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
4652 PR rtl-optimization/104914
4653 * config/mips/mips.md (insqisi_extended): New patterns.
4654 (inshisi_extended): Ditto.
4656 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
4658 * config/mips/mips.cc (mips_insn_cost): New function.
4660 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
4662 * config/mips/mips.md (perf_ratio): New attribute.
4664 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4668 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
4669 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
4670 blocks belong to infinite loop.
4671 (pre_vsetvl::emit_vsetvl): Remove fake edges.
4672 * config/riscv/t-riscv: Add a new include file.
4674 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4676 * config/riscv/vector.md: Fix indent.
4678 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
4680 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
4681 OMP_CLAUSE__SIMDUID_.
4682 * tree.cc (omp_clause_num_ops): Update position of entry for
4683 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
4684 (omp_clause_code_name): Likewise.
4686 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
4688 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
4689 printing of FUNC_MAP/IND_FUNC_MAP labels.
4691 2024-01-03 Jakub Jelinek <jakub@redhat.com>
4693 * gcc.cc (process_command): Update copyright notice dates.
4694 * gcov-dump.cc (print_version): Ditto.
4695 * gcov.cc (print_version): Ditto.
4696 * gcov-tool.cc (print_version): Ditto.
4697 * gengtype.cc (create_file): Ditto.
4698 * doc/cpp.texi: Bump @copying's copyright year.
4699 * doc/cppinternals.texi: Ditto.
4700 * doc/gcc.texi: Ditto.
4701 * doc/gccint.texi: Ditto.
4702 * doc/gcov.texi: Ditto.
4703 * doc/install.texi: Ditto.
4704 * doc/invoke.texi: Ditto.
4706 2024-01-03 Xi Ruoyao <xry111@xry111.site>
4708 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
4709 (fmin<mode>3): Likewise.
4710 (reduc_fmax_scal_<mode>3): New define_expand.
4711 (reduc_fmin_scal_<mode>3): Likewise.
4713 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4716 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
4717 (max_number_of_live_regs): Ditto.
4718 (has_unexpected_spills_p): Ditto.
4720 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4721 Jin Ma <jinma@linux.alibaba.com>
4722 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4723 Christoph Müllner <christoph.muellner@vrull.eu>
4725 * config/riscv/vector.md:
4726 Use vector_length_operand for vsetvl patterns.
4728 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4730 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
4731 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
4733 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
4735 * config/aarch64/aarch64-tuning-flags.def
4736 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
4737 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
4738 * config/aarch64/aarch64.cc
4739 (aarch64_override_options_internal): Set
4740 param_fully_pipelined_fma according to tuning option.
4741 * config/aarch64/tuning_models/ampere1.h: Add
4742 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
4743 * config/aarch64/tuning_models/ampere1a.h: Likewise.
4744 * config/aarch64/tuning_models/ampere1b.h: Likewise.
4746 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
4748 * config/riscv/vector-crypto.md: Modify copyright year.
4750 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4752 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
4754 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
4756 * config.in: Regenerate.
4757 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
4758 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
4759 Added TLS Le Relax support.
4760 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
4761 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
4762 * configure: Regenerate.
4763 * configure.ac: Check if binutils supports TLS le relax.
4765 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
4767 * config/riscv/iterators.md: Add rotate insn name.
4768 * config/riscv/riscv.md: Add new insns name for crypto vector.
4769 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
4770 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
4771 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
4773 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4776 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
4777 pointer type liveness count.
4779 Copyright (C) 2024 Free Software Foundation, Inc.
4781 Copying and distribution of this file, with or without modification,
4782 are permitted in any medium without royalty provided the copyright
4783 notice and this notice are preserved.