libstdc++: Remove std::__unicode::__null_sentinel
[official-gcc.git] / gcc / ChangeLog
blob3d43d6e95620f8e537d6b7870924e2865454f136
1 2024-01-07  Roger Sayle  <roger@nextmovesoftware.com>
2             Uros Bizjak  <ubizjak@gmail.com>
4         PR target/113231
5         * config/i386/i386-features.cc (compute_convert_gain): Include
6         the overhead of explicit load and store (movd) instructions when
7         converting non-store scalar operations with memory destinations.
8         Various indentation whitespace fixes.
10 2024-01-07  Tamar Christina  <tamar.christina@arm.com>
12         * config/arm/neon.md (cbranch<mode>4): New.
14 2024-01-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
16         * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
18 2024-01-06  Jiahao Xu  <xujiahao@loongson.cn>
20         * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
22 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
24         PR target/113248
25         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
26         Update the MAX_SEW.
28 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
30         * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
31         (variable_vectorized_p): Teach loop invariant.
32         (has_unexpected_spills_p): Ditto.
34 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
36         * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
37         * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
38         * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
40 2024-01-05  Richard Sandiford  <richard.sandiford@arm.com>
42         PR target/113104
43         * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
44         (aarch64-vect-compare-costs): ...this.
45         * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
46         Replace with...
47         (-param=aarch64-vect-compare-costs=): ...this new param.
48         * config/aarch64/aarch64.cc (aarch64_override_options_internal):
49         Don't disable it when vectorizing for Advanced SIMD only.
50         (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
51         whenever aarch64_vect_compare_costs is true.
53 2024-01-05  Lulu Cheng  <chenglulu@loongson.cn>
55         * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
56         Modify the method of determining the memory offset of [x]vld/[x]vst.
57         (lasx_mxst_<lasxfmt_f>): Likewise.
58         * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
59         (loongarch_address_insns): Likewise.
60         * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
61         (lsx_st_<lsxfmt_f>): Likewise.
62         * config/loongarch/predicates.md (aq10b_operand): Likewise.
63         (aq10h_operand): Likewise.
64         (aq10w_operand): Likewise.
65         (aq10d_operand): Likewise.
67 2024-01-05  Alex Coplan  <alex.coplan@arm.com>
69         PR target/113217
70         * config/aarch64/aarch64-ldp-fusion.cc
71         (ldp_bb_info::try_fuse_pair): If the second access can throw,
72         narrow the move range to exactly that insn.
74 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
76         * asan.cc (asan_function_start): Drop switch_to_section ().
77         (asan_emit_stack_protection): Set .LASANPC alignment.
78         * config/i386/i386.cc: Use assemble_function_label_raw ()
79         instead of ASM_OUTPUT_LABEL ().
80         * config/s390/s390.cc (s390_asm_output_function_label):
81         Likewise.
82         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
83         * final.cc (final_start_function_1): Drop
84         asan_function_start ().
85         * output.h (assemble_function_label_raw): New function.
86         * varasm.cc (assemble_function_label_raw): Likewise.
88 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
90         * config/aarch64/aarch64.cc (aarch64_declare_function_name):
91         Use ASM_OUTPUT_FUNCTION_LABEL ().
92         * config/alpha/alpha.cc (alpha_start_function): Likewise.
93         * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
94         * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
95         * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
96         * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
97         * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
98         * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
99         * config/ia64/ia64.cc (ia64_start_function): Likewise.
100         * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
101         Likewise.
102         * config/microblaze/microblaze.cc (microblaze_function_prologue):
103         Likewise.
104         * config/mips/mips.cc (mips_start_unique_function): Return the
105         tree.
106         (mips_start_function_definition): Use
107         ASM_OUTPUT_FUNCTION_LABEL ().
108         (mips_finish_stub): Pass the tree to
109         mips_start_function_definition ().
110         (mips16_build_function_stub): Likewise.
111         (mips16_build_call_stub): Likewise.
112         (mips_output_function_prologue): Likewise.
113         * config/pa/pa.cc (pa_output_function_label): Use
114         ASM_OUTPUT_FUNCTION_LABEL ().
115         * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
116         * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
117         Likewise.
118         (rs6000_xcoff_declare_function_name): Likewise.
120 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
122         PR tree-optimization/113201
123         * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
124         replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
126 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
128         PR tree-optimization/90693
129         * tree-ssa-math-opts.cc (match_single_bit_test): If
130         tree_expr_nonzero_p (arg), remember it in the second argument to
131         IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
132         arg ^ (arg - 1) > arg - 1.
133         * internal-fn.cc (expand_POPCOUNT): If second argument to
134         IFN_POPCOUNT suggests arg is non-zero, try to expand it as
135         arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
137 2024-01-05  Kito Cheng  <kito.cheng@sifive.com>
139         * config/riscv/riscv-v.cc (expand_load_store):
140         Remove `value`.
141         (expand_cond_len_op): Ditto.
142         (expand_gather_scatter): Ditto.
143         (expand_lanes_load_store): Ditto.
144         (expand_fold_extract_last): Ditto.
146 2024-01-05  Pan Li  <pan2.li@intel.com>
148         Revert:
149         2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
151         * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
152                                 Add new function_base for crypto vector.
153         (class bitmanip): Ditto.
154         (class b_reverse):Ditto.
155         (class vwsll):   Ditto.
156         (class clmul):   Ditto.
157         (class vg_nhab):  Ditto.
158         (class crypto_vv):Ditto.
159         (class crypto_vi):Ditto.
160         (class vaeskf2_vsm3c):Ditto.
161         (class vsm3me): Ditto.
162         (BASE): Add BASE declaration for crypto vector.
163         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
164         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
165                                 Add crypto vector intrinsic definition.
166         (vbrev): Ditto.
167         (vclz): Ditto.
168         (vctz): Ditto.
169         (vwsll): Ditto.
170         (vandn): Ditto.
171         (vbrev8): Ditto.
172         (vrev8): Ditto.
173         (vrol): Ditto.
174         (vror): Ditto.
175         (vclmul): Ditto.
176         (vclmulh): Ditto.
177         (vghsh): Ditto.
178         (vgmul): Ditto.
179         (vaesef): Ditto.
180         (vaesem): Ditto.
181         (vaesdf): Ditto.
182         (vaesdm): Ditto.
183         (vaesz): Ditto.
184         (vaeskf1): Ditto.
185         (vaeskf2): Ditto.
186         (vsha2ms): Ditto.
187         (vsha2ch): Ditto.
188         (vsha2cl): Ditto.
189         (vsm4k): Ditto.
190         (vsm4r): Ditto.
191         (vsm3me): Ditto.
192         (vsm3c): Ditto.
193         * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
194                                 Add new function_shape for crypto vector.
195         (struct crypto_vi_def): Ditto.
196         (struct crypto_vv_no_op_type_def): Ditto.
197         (SHAPE): Add SHAPE declaration of crypto vector.
198         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
199         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
200                                 Add new data type for crypto vector.
201         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
202         (vuint32mf2_t): Ditto.
203         (vuint32m1_t): Ditto.
204         (vuint32m2_t): Ditto.
205         (vuint32m4_t): Ditto.
206         (vuint32m8_t): Ditto.
207         (vuint64m1_t): Ditto.
208         (vuint64m2_t): Ditto.
209         (vuint64m4_t): Ditto.
210         (vuint64m8_t): Ditto.
211         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
212                                 Add new data struct for crypto vector.
213         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
214         (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
215         * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
217 2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
219         * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
220                                 Add new function_base for crypto vector.
221         (class bitmanip): Ditto.
222         (class b_reverse):Ditto.
223         (class vwsll):   Ditto.
224         (class clmul):   Ditto.
225         (class vg_nhab):  Ditto.
226         (class crypto_vv):Ditto.
227         (class crypto_vi):Ditto.
228         (class vaeskf2_vsm3c):Ditto.
229         (class vsm3me): Ditto.
230         (BASE): Add BASE declaration for crypto vector.
231         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
232         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
233                                 Add crypto vector intrinsic definition.
234         (vbrev): Ditto.
235         (vclz): Ditto.
236         (vctz): Ditto.
237         (vwsll): Ditto.
238         (vandn): Ditto.
239         (vbrev8): Ditto.
240         (vrev8): Ditto.
241         (vrol): Ditto.
242         (vror): Ditto.
243         (vclmul): Ditto.
244         (vclmulh): Ditto.
245         (vghsh): Ditto.
246         (vgmul): Ditto.
247         (vaesef): Ditto.
248         (vaesem): Ditto.
249         (vaesdf): Ditto.
250         (vaesdm): Ditto.
251         (vaesz): Ditto.
252         (vaeskf1): Ditto.
253         (vaeskf2): Ditto.
254         (vsha2ms): Ditto.
255         (vsha2ch): Ditto.
256         (vsha2cl): Ditto.
257         (vsm4k): Ditto.
258         (vsm4r): Ditto.
259         (vsm3me): Ditto.
260         (vsm3c): Ditto.
261         * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
262                                 Add new function_shape for crypto vector.
263         (struct crypto_vi_def): Ditto.
264         (struct crypto_vv_no_op_type_def): Ditto.
265         (SHAPE): Add SHAPE declaration of crypto vector.
266         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
267         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
268                                 Add new data type for crypto vector.
269         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
270         (vuint32mf2_t): Ditto.
271         (vuint32m1_t): Ditto.
272         (vuint32m2_t): Ditto.
273         (vuint32m4_t): Ditto.
274         (vuint32m8_t): Ditto.
275         (vuint64m1_t): Ditto.
276         (vuint64m2_t): Ditto.
277         (vuint64m4_t): Ditto.
278         (vuint64m8_t): Ditto.
279         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
280                                 Add new data struct for crypto vector.
281         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
282         (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
283         * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
285 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
287         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
289 2024-01-04  Andrew Pinski  <quic_apinski@quicinc.com>
291         PR tree-optimization/113186
292         * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
293         Match `^` with the `==` for 1bit integral types.
294         * match.pd (maybe_cmp): Allow for bit_xor for 1bit
295         integral types.
297 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
299         * toplev.cc (general_init): Pass lang_mask to urlifier.
301 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
303         * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
304         param.
305         (diagnostic_context::make_option_url): Update for lang_mask param.
306         * gcc-urlifier.cc: Include "opts.h" and "options.h".
307         (gcc_urlifier::gcc_urlifier): Add lang_mask param.
308         (gcc_urlifier::m_lang_mask): New field.
309         (doc_urls): Make static.
310         (gcc_urlifier::get_url_for_quoted_text): Use label_text.
311         (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
312         Look for an option by name before trying a binary search in
313         doc_urls.
314         (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
315         (gcc_urlifier::get_url_suffix_for_option): New.
316         (make_gcc_urlifier): Add lang_mask param.
317         (selftest::gcc_urlifier_cc_tests): Update for above changes.
318         Verify that a URL is found for "-fpack-struct".
319         * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
320         * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
321         * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
322         to make_gcc_urlifier.
323         * opts-diagnostic.h (get_option_url): Add lang_mask param.
324         * opts.cc (get_option_html_page): Remove special-casing for
325         analyzer and LTO.
326         (get_option_url_suffix): New.
327         (get_option_url): Reimplement.
328         (selftest::test_get_option_html_page): Rename to...
329         (selftest::test_get_option_url_suffix): ...this and update for
330         above changes.
331         (selftest::opts_cc_tests): Update for renaming.
332         * opts.h: Include "rich-location.h".
333         (get_option_url_suffix): New decl.
335 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
337         * Makefile.in (ALL_OPT_URL_FILES): New.
338         (GCC_OBJS): Add options-urls.o.
339         (OBJS): Likewise.
340         (OBJS-libcommon): Likewise.
341         (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
342         inputs to opt-gather.awk.
343         (options-urls.cc): New Makefile target.
344         * opt-functions.awk (url_suffix): New function.
345         (lang_url_suffix): New function.
346         * options-urls-cc-gen.awk: New file.
347         * opts.h (get_opt_url_suffix): New decl.
349 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
351         * params.opt.urls: New file, autogenerated by
352         regenerate-opt-urls.py.
354 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
356         * common.opt.urls: New file, autogenerated by
357         regenerate-opt-urls.py.
358         * config/aarch64/aarch64.opt.urls: Likewise.
359         * config/alpha/alpha.opt.urls: Likewise.
360         * config/alpha/elf.opt.urls: Likewise.
361         * config/arc/arc-tables.opt.urls: Likewise.
362         * config/arc/arc.opt.urls: Likewise.
363         * config/arm/arm-tables.opt.urls: Likewise.
364         * config/arm/arm.opt.urls: Likewise.
365         * config/arm/vxworks.opt.urls: Likewise.
366         * config/avr/avr.opt.urls: Likewise.
367         * config/bpf/bpf.opt.urls: Likewise.
368         * config/c6x/c6x-tables.opt.urls: Likewise.
369         * config/c6x/c6x.opt.urls: Likewise.
370         * config/cris/cris.opt.urls: Likewise.
371         * config/cris/elf.opt.urls: Likewise.
372         * config/csky/csky.opt.urls: Likewise.
373         * config/csky/csky_tables.opt.urls: Likewise.
374         * config/darwin.opt.urls: Likewise.
375         * config/dragonfly.opt.urls: Likewise.
376         * config/epiphany/epiphany.opt.urls: Likewise.
377         * config/fr30/fr30.opt.urls: Likewise.
378         * config/freebsd.opt.urls: Likewise.
379         * config/frv/frv.opt.urls: Likewise.
380         * config/ft32/ft32.opt.urls: Likewise.
381         * config/fused-madd.opt.urls: Likewise.
382         * config/g.opt.urls: Likewise.
383         * config/gcn/gcn.opt.urls: Likewise.
384         * config/gnu-user.opt.urls: Likewise.
385         * config/h8300/h8300.opt.urls: Likewise.
386         * config/hpux11.opt.urls: Likewise.
387         * config/i386/cygming.opt.urls: Likewise.
388         * config/i386/cygwin.opt.urls: Likewise.
389         * config/i386/djgpp.opt.urls: Likewise.
390         * config/i386/i386.opt.urls: Likewise.
391         * config/i386/mingw-w64.opt.urls: Likewise.
392         * config/i386/mingw.opt.urls: Likewise.
393         * config/i386/nto.opt.urls: Likewise.
394         * config/ia64/ia64.opt.urls: Likewise.
395         * config/ia64/ilp32.opt.urls: Likewise.
396         * config/ia64/vms.opt.urls: Likewise.
397         * config/iq2000/iq2000.opt.urls: Likewise.
398         * config/linux-android.opt.urls: Likewise.
399         * config/linux.opt.urls: Likewise.
400         * config/lm32/lm32.opt.urls: Likewise.
401         * config/loongarch/loongarch.opt.urls: Likewise.
402         * config/lynx.opt.urls: Likewise.
403         * config/m32c/m32c.opt.urls: Likewise.
404         * config/m32r/m32r.opt.urls: Likewise.
405         * config/m68k/ieee.opt.urls: Likewise.
406         * config/m68k/m68k-tables.opt.urls: Likewise.
407         * config/m68k/m68k.opt.urls: Likewise.
408         * config/m68k/uclinux.opt.urls: Likewise.
409         * config/mcore/mcore.opt.urls: Likewise.
410         * config/microblaze/microblaze.opt.urls: Likewise.
411         * config/mips/mips-tables.opt.urls: Likewise.
412         * config/mips/mips.opt.urls: Likewise.
413         * config/mips/sde.opt.urls: Likewise.
414         * config/mmix/mmix.opt.urls: Likewise.
415         * config/mn10300/mn10300.opt.urls: Likewise.
416         * config/moxie/moxie.opt.urls: Likewise.
417         * config/msp430/msp430.opt.urls: Likewise.
418         * config/nds32/nds32-elf.opt.urls: Likewise.
419         * config/nds32/nds32-linux.opt.urls: Likewise.
420         * config/nds32/nds32.opt.urls: Likewise.
421         * config/netbsd-elf.opt.urls: Likewise.
422         * config/netbsd.opt.urls: Likewise.
423         * config/nios2/elf.opt.urls: Likewise.
424         * config/nios2/nios2.opt.urls: Likewise.
425         * config/nvptx/nvptx-gen.opt.urls: Likewise.
426         * config/nvptx/nvptx.opt.urls: Likewise.
427         * config/openbsd.opt.urls: Likewise.
428         * config/or1k/elf.opt.urls: Likewise.
429         * config/or1k/or1k.opt.urls: Likewise.
430         * config/pa/pa-hpux.opt.urls: Likewise.
431         * config/pa/pa-hpux1010.opt.urls: Likewise.
432         * config/pa/pa-hpux1111.opt.urls: Likewise.
433         * config/pa/pa-hpux1131.opt.urls: Likewise.
434         * config/pa/pa.opt.urls: Likewise.
435         * config/pa/pa64-hpux.opt.urls: Likewise.
436         * config/pdp11/pdp11.opt.urls: Likewise.
437         * config/pru/pru.opt.urls: Likewise.
438         * config/riscv/riscv.opt.urls: Likewise.
439         * config/rl78/rl78.opt.urls: Likewise.
440         * config/rpath.opt.urls: Likewise.
441         * config/rs6000/476.opt.urls: Likewise.
442         * config/rs6000/aix64.opt.urls: Likewise.
443         * config/rs6000/darwin.opt.urls: Likewise.
444         * config/rs6000/linux64.opt.urls: Likewise.
445         * config/rs6000/rs6000-tables.opt.urls: Likewise.
446         * config/rs6000/rs6000.opt.urls: Likewise.
447         * config/rs6000/sysv4.opt.urls: Likewise.
448         * config/rtems.opt.urls: Likewise.
449         * config/rx/elf.opt.urls: Likewise.
450         * config/rx/rx.opt.urls: Likewise.
451         * config/s390/s390.opt.urls: Likewise.
452         * config/s390/tpf.opt.urls: Likewise.
453         * config/sh/sh.opt.urls: Likewise.
454         * config/sh/superh.opt.urls: Likewise.
455         * config/sol2.opt.urls: Likewise.
456         * config/sparc/long-double-switch.opt.urls: Likewise.
457         * config/sparc/sparc.opt.urls: Likewise.
458         * config/stormy16/stormy16.opt.urls: Likewise.
459         * config/v850/v850.opt.urls: Likewise.
460         * config/vax/elf.opt.urls: Likewise.
461         * config/vax/vax.opt.urls: Likewise.
462         * config/visium/visium.opt.urls: Likewise.
463         * config/vms/vms.opt.urls: Likewise.
464         * config/vxworks-smp.opt.urls: Likewise.
465         * config/vxworks.opt.urls: Likewise.
466         * config/xtensa/elf.opt.urls: Likewise.
467         * config/xtensa/uclinux.opt.urls: Likewise.
468         * config/xtensa/xtensa.opt.urls: Likewise.
469         * config/bfin/bfin.opt.urls: New file.
471 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
473         * Makefile.in (OPT_URLS_HTML_DEPS): New.
474         (regenerate-opt-urls): New target.
475         (regenerate-opt-urls-unit-test): New target.
476         * doc/options.texi (Option properties): Add UrlSuffix and
477         description of regenerate-opt-urls.py.  Add LangUrlSuffix_*.
478         * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
479         reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
480         and Makefile.in's OPT_URLS_HTML_DEPS.
481         (Anatomy of a Target Back End): Add
482         reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
483         * regenerate-opt-urls.py: New file.
485 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
487         * diagnostic-format-sarif.cc
488         (sarif_builder::make_logical_location_object): Convert to...
489         (make_sarif_logical_location_object): ...this.
490         (sarif_builder::set_any_logical_locs_arr): Update for above
491         change.
492         (sarif_builder::make_thread_flow_location_object): Call
493         maybe_add_sarif_properties on each diagnostic_event.
494         * diagnostic-format-sarif.h (class logical_location): New forward
495         decl.
496         (make_sarif_logical_location_object): New decl.
497         * diagnostic-path.h (class sarif_object): New forward decl.
498         (diagnostic_event::maybe_add_sarif_properties): New vfunc.
500 2024-01-04  Kuan-Lin Chen  <rufus@andestech.com>
501             Patrick Lin  <patrick@andestech.com>
502             Rufus Chen  <rufus@andestech.com>
503             Monk Chiang  <monk.chiang@sifive.com>
505         * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
506         with Nan-boxing value.
507         * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
509 2024-01-04  Roger Sayle  <roger@nextmovesoftware.com>
510             Jeff Law  <jlaw@ventanamicro.com>
512         PR rtl-optimization/104914
513         * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
514         a sign or zero extension is only required if the modified field
515         overlaps the SUBREG's most significant bit.  On MODE_REP_EXTENDED
516         targets, don't refer to the temporarily incorrectly extended value
517         using a SUBREG, but instead generate an explicit TRUNCATE rtx.
519 2024-01-04  Pan Li  <pan2.li@intel.com>
521         Revert:
522         2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
524         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
526 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
528         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
530 2024-01-04  Kito Cheng  <kito.cheng@sifive.com>
532         * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
533         offset of fcsr.
535 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
537         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
538         (compute_nregs_for_mode): Refine LMUL.
539         (max_number_of_live_regs): Ditto.
540         (compute_estimated_lmul): Ditto.
541         (has_unexpected_spills_p): Ditto.
543 2024-01-04  Li Wei  <liwei@loongson.cn>
545         * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
546         Remove useless forward declaration.
547         (loongarch_is_even_extraction): Remove useless forward declaration.
548         (loongarch_try_expand_lsx_vshuf_const): Removed.
549         (loongarch_expand_vec_perm_const_1): Merged.
550         (loongarch_is_double_duplicate): Removed.
551         (loongarch_is_center_extraction): Ditto.
552         (loongarch_is_reversing_permutation): Ditto.
553         (loongarch_is_di_misalign_extract): Ditto.
554         (loongarch_is_si_misalign_extract): Ditto.
555         (loongarch_is_lasx_lowpart_extract): Ditto.
556         (loongarch_is_op_reverse_perm): Ditto.
557         (loongarch_is_single_op_perm): Ditto.
558         (loongarch_is_divisible_perm): Ditto.
559         (loongarch_is_triple_stride_extract): Ditto.
560         (loongarch_expand_vec_perm_const_2): Merged.
561         (loongarch_expand_vec_perm_const): New.
562         (loongarch_vectorize_vec_perm_const): Adjust.
564 2024-01-04  Sandra Loosemore  <sandra@codesourcery.com>
566         * omp-general.cc: Fix comment typos and misplaced/confusing
567         comments.  Delete redundant include of omp-general.h.
569 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
571         PR rtl-optimization/104914
572         * config/mips/mips.md (insqisi_extended): New patterns.
573         (inshisi_extended): Ditto.
575 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
577         * config/mips/mips.cc (mips_insn_cost): New function.
579 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
581         * config/mips/mips.md (perf_ratio): New attribute.
583 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
585         PR target/113206
586         PR target/113209
587         * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
588         (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
589         blocks belong to infinite loop.
590         (pre_vsetvl::emit_vsetvl): Remove fake edges.
591         * config/riscv/t-riscv: Add a new include file.
593 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
595         * config/riscv/vector.md: Fix indent.
597 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
599         * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
600         OMP_CLAUSE__SIMDUID_.
601         * tree.cc (omp_clause_num_ops): Update position of entry for
602         OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
603         (omp_clause_code_name): Likewise.
605 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
607         * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
608         printing of FUNC_MAP/IND_FUNC_MAP labels.
610 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
612         * gcc.cc (process_command): Update copyright notice dates.
613         * gcov-dump.cc (print_version): Ditto.
614         * gcov.cc (print_version): Ditto.
615         * gcov-tool.cc (print_version): Ditto.
616         * gengtype.cc (create_file): Ditto.
617         * doc/cpp.texi: Bump @copying's copyright year.
618         * doc/cppinternals.texi: Ditto.
619         * doc/gcc.texi: Ditto.
620         * doc/gccint.texi: Ditto.
621         * doc/gcov.texi: Ditto.
622         * doc/install.texi: Ditto.
623         * doc/invoke.texi: Ditto.
625 2024-01-03  Xi Ruoyao  <xry111@xry111.site>
627         * config/loongarch/simd.md (fmax<mode>3): New define_insn.
628         (fmin<mode>3): Likewise.
629         (reduc_fmax_scal_<mode>3): New define_expand.
630         (reduc_fmin_scal_<mode>3): Likewise.
632 2024-01-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
634         PR target/113112
635         * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
636         (max_number_of_live_regs): Ditto.
637         (has_unexpected_spills_p): Ditto.
639 2024-01-02  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
640             Jin Ma  <jinma@linux.alibaba.com>
641             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
642             Christoph Müllner  <christoph.muellner@vrull.eu>
644         * config/riscv/vector.md:
645         Use vector_length_operand for vsetvl patterns.
647 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
649         * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
650         (expand_cond_len_op): Add simplification of dummy len and dummy mask.
652 2024-01-02  Di Zhao  <dizhao@os.amperecomputing.com>
654         * config/aarch64/aarch64-tuning-flags.def
655         (AARCH64_EXTRA_TUNING_OPTION): New tuning option
656         AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
657         * config/aarch64/aarch64.cc
658         (aarch64_override_options_internal): Set
659         param_fully_pipelined_fma according to tuning option.
660         * config/aarch64/tuning_models/ampere1.h: Add
661         AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
662         * config/aarch64/tuning_models/ampere1a.h: Likewise.
663         * config/aarch64/tuning_models/ampere1b.h: Likewise.
665 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
667         * config/riscv/vector-crypto.md: Modify copyright year.
669 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
671         * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
673 2024-01-02  Lulu Cheng  <chenglulu@loongson.cn>
675         * config.in: Regenerate.
676         * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
677         * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
678         Added TLS Le Relax support.
679         (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
680         * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
681         * configure: Regenerate.
682         * configure.ac: Check if binutils supports TLS le relax.
684 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
686         * config/riscv/iterators.md: Add rotate insn name.
687         * config/riscv/riscv.md: Add new insns name for crypto vector.
688         * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
689         * config/riscv/vector.md: Add the corresponding attr for crypto vector.
690         * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
692 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
694         PR target/113112
695         * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
696         pointer type liveness count.
698 Copyright (C) 2024 Free Software Foundation, Inc.
700 Copying and distribution of this file, with or without modification,
701 are permitted in any medium without royalty provided the copyright
702 notice and this notice are preserved.