1 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
4 * doc/extend.texi (Common Function Attributes): Document that
5 noinline also disables some interprocedural optimizations and
6 improve flow to the part about using inline asm instead to
7 disable calls from being optimized away completely. Remove the
8 sentence that says noipa is mainly for internal compiler testing.
10 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
12 PR tree-optimization/69807
13 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
15 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
18 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
19 from x86 Windows Options.
21 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
24 * doc/extend.texi (C Extensions): Add new section to menu.
25 (Function Attributes): Move dangling index entries to....
26 (Const and Volatile Functions): New section.
28 2024-01-18 David Malcolm <dmalcolm@redhat.com>
31 * toplev.cc (toplev::main): Don't ICE in
32 -fdiagnostics-generate-patch when exiting after options,
33 since no edit context will have been created.
35 2024-01-18 Richard Biener <rguenther@suse.de>
37 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
40 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
42 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
43 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
45 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
46 Jin Ma <jinma@linux.alibaba.com>
47 Xianmiao Qu <cooper.qu@linux.alibaba.com>
48 Christoph Müllner <christoph.muellner@vrull.eu>
50 * config/riscv/thead.cc
51 (th_asm_output_opcode): Rewrite some instructions.
53 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
54 Jin Ma <jinma@linux.alibaba.com>
55 Xianmiao Qu <cooper.qu@linux.alibaba.com>
56 Christoph Müllner <christoph.muellner@vrull.eu>
58 * config/riscv/riscv.md (none,thv,rvv): New attribute.
59 (no,yes): Add an attribute to disable alternative
60 for xtheadvector or RVV1.0.
61 * config/riscv/vector.md:
62 Disable alternatives that destination register overlaps
63 source register group for xtheadvector.
65 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
66 Jin Ma <jinma@linux.alibaba.com>
67 Xianmiao Qu <cooper.qu@linux.alibaba.com>
68 Christoph Müllner <christoph.muellner@vrull.eu>
70 * config/riscv/riscv-vector-builtins-bases.cc
71 (class th_loadstore_width): Define new builtin bases.
72 (class th_extract): Define new builtin bases.
73 (BASE): Define new builtin bases.
74 * config/riscv/riscv-vector-builtins-bases.h:
75 Define new builtin class.
76 * config/riscv/riscv-vector-builtins-shapes.cc
77 (struct th_loadstore_width_def): Define new builtin shapes.
78 (struct th_indexed_loadstore_width_def):
79 Define new builtin shapes.
80 (struct th_extract_def): Define new builtin shapes.
81 (SHAPE): Define new builtin shapes.
82 * config/riscv/riscv-vector-builtins-shapes.h:
83 Define new builtin shapes.
84 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
85 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
86 * config/riscv/riscv-vector-builtins.h
87 (enum required_ext): Add new XTheadVector member.
88 (struct function_group_info): Likewise.
89 * config/riscv/t-riscv:
90 Add thead-vector-builtins-functions.def
91 * config/riscv/thead-vector.md
92 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
93 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
94 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
95 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
96 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
97 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
98 (@pred_th_extract<mode>): Likewise.
99 (*pred_th_extract<mode>): Likewise.
100 * config/riscv/thead-vector-builtins-functions.def: New file.
102 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
103 Jin Ma <jinma@linux.alibaba.com>
104 Xianmiao Qu <cooper.qu@linux.alibaba.com>
105 Christoph Müllner <christoph.muellner@vrull.eu>
107 * config.gcc: Add files for XTheadVector intrinsics.
108 * config/riscv/autovec.md: Guard XTheadVector.
109 * config/riscv/predicates.md: Disable immediate vl
111 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
112 Add pragma for XTheadVector.
113 * config/riscv/riscv-string.cc (riscv_expand_block_move):
115 * config/riscv/riscv-v.cc (vls_mode_valid_p):
117 * config/riscv/riscv-vector-builtins-bases.cc:
118 Do not normalize vsetvl instructions for XTheadVector.
119 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
120 New check type function.
121 (build_one): Adjust for XTheadVector.
122 * config/riscv/riscv-vector-switch.def (ENTRY):
123 Disable fractional mode for the XTheadVector extension.
124 (TUPLE_ENTRY): Likewise.
125 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
127 (riscv_preferred_simd_mode): Likewsie.
128 (riscv_autovectorize_vector_modes): Likewise.
129 (riscv_vector_mode_supported_any_target_p): Likewise.
130 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
131 * config/riscv/thead.cc (th_asm_output_opcode):
132 Rewrite vsetvl instructions.
133 * config/riscv/vector.md:
134 Include thead-vector.md and change fractional LMUL
136 * config/riscv/riscv_th_vector.h: New file.
137 * config/riscv/thead-vector.md: New file.
139 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
140 Jin Ma <jinma@linux.alibaba.com>
141 Xianmiao Qu <cooper.qu@linux.alibaba.com>
142 Christoph Müllner <christoph.muellner@vrull.eu>
144 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
145 Add new function to add assembler insn code prefix/suffix.
146 (th_asm_output_opcode):
147 Add Thead function to add assembler insn code prefix/suffix.
148 * config/riscv/riscv.cc (riscv_asm_output_opcode):
149 Implement function to add assembler insn code prefix/suffix.
150 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
151 Add new function to add assembler insn code prefix/suffix.
152 * config/riscv/thead.cc (th_asm_output_opcode):
153 Implement Thead function to add assembler insn code
156 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
157 Jin Ma <jinma@linux.alibaba.com>
158 Xianmiao Qu <cooper.qu@linux.alibaba.com>
159 Christoph Müllner <christoph.muellner@vrull.eu>
161 * common/config/riscv/riscv-common.cc
162 (riscv_subset_list::parse): Add new vendor extension.
163 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
165 * config/riscv/riscv.opt: Add new mask.
167 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
169 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
170 to be conditional on macosx-version-min.
172 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
174 * config/darwin.cc (darwin_objc1_section): Use the correct
175 meta-data version for constant strings.
176 (machopic_select_section): Assert if we fail to handle CFString
177 sections as Obejctive-C meta-data or drectly.
179 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
181 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
182 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
183 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
184 versions when the object format is Mach-O.
186 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
189 * config/darwin.cc (machopic_select_section): Handle C and C++
191 (darwin_rename_builtins): Move this out of the CFString code.
192 (darwin_libc_has_function): Likewise.
193 (darwin_build_constant_cfstring): Create an anonymous var to
195 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
198 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
201 * haifa-sched.cc (dep_list_size): Make global.
202 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
203 * sched-int.h (dep_list_size): Declare.
205 2024-01-18 Martin Jambor <mjambor@suse.cz>
207 PR tree-optimization/110422
208 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
211 2024-01-18 Richard Biener <rguenther@suse.de>
213 PR tree-optimization/113475
214 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
215 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
216 (phi_analyzer::~phi_analyzer): Deallocate and free collected
218 (phi_analyzer::process_phi): Record allocated phi_groups.
220 2024-01-18 Richard Biener <rguenther@suse.de>
222 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
223 storage for gvec_oprnds elements.
225 2024-01-18 Richard Biener <rguenther@suse.de>
227 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
228 prefer all later exits we can handle.
229 (vect_analyze_loop_form): Free the allocated loop body.
232 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
234 * config/avr/avr-log.cc: Tabify.
236 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
238 * config/riscv/autovec.md: Support vi variant.
240 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
242 * config/avr/avr-devices.cc: Tabify.
244 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
246 * config/avr/avr-c.cc: Tabify.
248 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
250 * config/avr/driver-avr.cc: Tabify.
252 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
254 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
256 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
258 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
260 2024-01-18 Jakub Jelinek <jakub@redhat.com>
262 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
263 minline-strcmp, minline-strncmp, minline-strlen,
264 -param=riscv-vector-abi): Remove Bool keywords.
266 2024-01-18 Jakub Jelinek <jakub@redhat.com>
269 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
270 support. Add missing space after , in emitted assembly in some
271 cases. Formatting fixes.
273 2024-01-18 Xi Ruoyao <xry111@xry111.site>
275 * config/loongarch/loongarch.md (movsi_internal): Remove
278 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
280 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
281 in the diagnostic, and capitalize the device name.
282 (print_mcu): Generate specs such that:
283 <*check_rodata_in_ram>: New.
284 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
285 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
286 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
288 2024-01-18 Jakub Jelinek <jakub@redhat.com>
291 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
292 Common and Optimization.
294 2024-01-18 Richard Biener <rguenther@suse.de>
296 PR tree-optimization/113431
297 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
298 When there is an invariant load we might not preserve
301 2024-01-18 Richard Biener <rguenther@suse.de>
303 PR tree-optimization/113374
304 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
305 * tree-vect-loop.cc (move_early_exit_stmts): Update
307 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
308 Refactor. Preserve virtual LC PHIs on all exits.
310 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
312 * config/loongarch/loongarch.cc (loongarch_split_symbol):
313 Assign the '/u' attribute to the mem.
315 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
318 * doc/invoke.texi (Option Summary): Document negative forms of
319 -Wtsan and -Wxor-used-as-pow.
320 (Warning Options): Likewise.
322 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
325 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
327 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
329 * doc/extend.texi (Common Function Attributes): Re-alphabetize
331 (Common Variable Attributes): Likewise.
332 (Common Type Attributes): Likewise.
334 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
337 * doc/extend.texi (Common Variable Attributes): Fix long lines
338 in documentation of strict_flex_array + other minor copy-editing.
339 Add a cross-reference to -Wstrict-flex-arrays.
340 * doc/invoke.texi (Option Summary): Fix whitespace in tables
341 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
342 (C Dialect Options): Combine the docs for the two
343 -fstrict-flex-arrays forms into a single entry. Note this option
344 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
345 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
346 Minor copy-editing. Add cross references to the strict_flex_array
347 attribute and -fstrict-flex-arrays option. Add note that this
348 option depends on -ftree-vrp.
350 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
353 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
354 only allow REG operands instead of allowing all.
356 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
358 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
359 Remove redundant checks in else condition for readablity.
360 (earliest_fuse_vsetvl_info) Print iteration count in debug
362 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
363 dump details in certain cases.
365 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
367 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
368 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
369 * config/riscv/riscv-vsetvl.cc
370 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
371 (pass_vsetvl::execute): Use vsetvl_strategy.
373 2024-01-17 Jan Hubicka <jh@suse.cz>
375 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
376 accidental hack reseting offset.
378 2024-01-17 Jan Hubicka <jh@suse.cz>
380 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
381 handling of X86_TUNE_AVOID_512FMA_CHAINS.
383 2024-01-17 Jan Hubicka <jh@suse.cz>
384 Jakub Jelinek <jakub@redhat.com>
386 PR tree-optimization/110852
387 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
389 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
390 PRED_COMBINED_VALUE_PREDICTIONS_PHI
391 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
392 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
394 2024-01-17 Jakub Jelinek <jakub@redhat.com>
396 PR tree-optimization/113421
397 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
399 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
400 formatting. Start at vop rather than cvop even if stmt is a store
401 and needs_operand_addr.
403 2024-01-17 Jakub Jelinek <jakub@redhat.com>
406 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
407 If access_nelts is integral with larger precision than sizetype,
408 fold_convert it to sizetype.
410 2024-01-17 Jakub Jelinek <jakub@redhat.com>
412 PR tree-optimization/113408
413 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
414 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
417 2024-01-17 Jakub Jelinek <jakub@redhat.com>
420 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
421 regardless of whether is_gimple_reg_type (restype) or not.
423 2024-01-17 Jakub Jelinek <jakub@redhat.com>
425 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
426 funcions -> functions, and use were instead of was.
427 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
428 and guaranteee -> guarantee.
429 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
431 2024-01-17 Jakub Jelinek <jakub@redhat.com>
434 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
436 (omp_extract_for_data): Use build_bitint_type rather than
437 build_nonstandard_integer_type if either iter_type or loop->v type
439 * omp-expand.cc (expand_omp_for_generic,
440 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
441 BITINT_TYPE like INTEGER_TYPE.
443 2024-01-17 Richard Biener <rguenther@suse.de>
445 PR tree-optimization/113371
446 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
447 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
448 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
449 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
451 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
453 PR rtl-optimization/96388
454 PR rtl-optimization/111554
455 * sched-deps.cc (find_inc): Avoid exponential behavior.
457 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
460 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
461 from C++ Language Options to Warning Options. Add entry for
463 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
465 (Warning Options): ...to here. Minor copy-editing to fix typo
468 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
470 * config/mips/mips.cc (mips_compute_frame_info): If another
471 register is used as global_pointer, mark $GP live false.
473 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
476 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
477 give the section a light copy-editing pass.
479 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
481 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
482 * config/aarch64/aarch64-tune.md: Regenerated.
483 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
485 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
488 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
489 badly formed CONST expressions.
491 2024-01-16 Daniel Cederman <cederman@gaisler.com>
493 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
495 2024-01-16 Daniel Cederman <cederman@gaisler.com>
497 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
498 * config/sparc/sync.md (membar_storeload): Turn into named insn
499 and add GR712RC errata workaround.
500 (membar_v8): Add GR712RC errata workaround.
502 2024-01-16 Andreas Larsson <andreas@gaisler.com>
504 * config/sparc/sync.md (*membar_storeload_leon3): Remove
505 (*membar_storeload): Enable for LEON
507 2024-01-16 Jakub Jelinek <jakub@redhat.com>
509 PR tree-optimization/113372
513 * cfgexpand.cc (add_scope_conflicts_2): New function.
514 (add_scope_conflicts_1): Use it.
516 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
518 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
519 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
520 * doc/avr-mmcu.texi: Regenerate.
522 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
524 PR tree-optimization/113091
525 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
526 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
527 scalar use with new function.
528 (vect_bb_slp_mark_live_stmts): New function as entry to existing
529 overriden functions with same name.
530 (vect_slp_analyze_operations): Call new entry function to mark
533 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
536 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
537 for RVV in big-endian mode.
539 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
541 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
542 (riscv_pass_in_vector_p): Delete.
543 (riscv_init_cumulative_args): Delete the checking.
544 (riscv_get_arg_info): Delete the checking.
545 (riscv_function_value): Delete the checking.
546 * config/riscv/riscv.h: Delete the member for checking.
548 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
550 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
552 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
554 * config.gcc: Include riscv_bitmanip.h.
555 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
556 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
557 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
558 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
559 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
560 * config/riscv/riscv-ftypes.def (2): New ftypes.
561 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
562 (RISCV_BUILTIN_NO_PREFIX): Likewise.
563 * config/riscv/riscv_bitmanip.h: New file.
565 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
567 * config.gcc: Include riscv_crypto.h.
568 * config/riscv/riscv_crypto.h: New file.
570 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
573 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
574 in the insn if the corresponding operand does not require hard
577 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
580 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
581 * config/avr/driver-avr.cc (avr_no_devlib): New function.
582 (avr_devicespecs_file): Use it to remove -nodevicelib from the
583 options for cores only.
584 * config/avr/avr-arch.h (avr_get_parch): New prototype.
585 * config/avr/avr-devices.cc (avr_get_parch): New function.
587 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
590 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
591 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
592 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
594 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
597 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
598 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
599 * config/riscv/riscv-vector-costs.h: New function.
601 2024-01-15 Richard Biener <rguenther@suse.de>
603 PR tree-optimization/113385
604 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
605 First redirect, then split the exit edge.
607 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
609 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
610 Remove m_num_vector_iterations.
611 * config/riscv/riscv-vector-costs.h: Ditto.
613 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
616 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
617 (-mbranch-cost): Set "Optimization" flag.
619 2024-01-15 Jakub Jelinek <jakub@redhat.com>
621 PR tree-optimization/113370
622 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
623 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
624 set it to just prec % limb_prec.
626 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
629 * config/riscv/vector.md: Fix ternary attributes.
631 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
634 * configure.ac [target=avr]: Check availability of emulations
635 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
636 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
637 * configure: Regenerate.
638 * config.in: Regenerate.
639 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
640 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
641 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
642 * config/avr/avr-arch.h (enum avr_device_specific_features):
644 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
646 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
647 (avr_set_core_architecture): Set avr_arch_index.
648 (have_avrxmega2_flmap, have_avrxmega4_flmap)
649 (have_avrxmega3_rodata_in_flash): Set new static const bool according
650 to configure results.
651 (avr_rodata_in_flash_p): New function using them.
652 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
653 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
654 (avr_asm_named_section): Track avr_has_rodata_p.
655 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
656 and not avr_rodata_in_flash_p ().
657 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
658 (LINK_SPEC): Add %(link_rodata_in_ram).
659 (LINK_ARCH_SPEC): Remove.
660 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
661 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
662 const bool according to configure results.
663 (diagnose_mrodata_in_ram): New function.
664 (print_mcu): Generate specs with the following changes:
665 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
666 need to extend avr/specs.h each time we add a new bell or whistle.
667 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
668 -m[no-]rodata-in-ram.
669 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
670 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
671 <*cpp>: Add %(cpp_rodata_in_ram).
672 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
674 <*self_spec>: Add -mflmap or %<mflmap as needed.
676 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
678 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
679 not the GPR iterator. Adjust pattern name and mode attribute
682 2024-01-13 Jakub Jelinek <jakub@redhat.com>
684 PR tree-optimization/113361
685 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
686 Fix up determination of the type for > limb_prec constants.
688 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
690 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
691 Add web-link to the avr-gcc wiki.
693 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
695 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
696 documentation for a version without argument, which is not supported.
698 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
700 * config/arm/arm_neon.h
701 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
702 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
703 (vld1_f16_x4, vld1_f32_x4): New.
704 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
706 (vld1q_types_x4): Updated to use vld1q_x4
707 from arm_neon_builtins.def
708 * config/arm/arm_neon_builtins.def
709 (vld1_x4): Updated entries.
710 (vld1q_x4): New entries, but comes from the old vld1_x4
712 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
714 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
716 * config/arm/arm_neon.h
717 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
718 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
719 (vld1_f16_x3, vld1_f32_x3): New.
720 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
722 (vld1q_types_x3): Updated to use vld1q_x3 from
723 arm_neon_builtins.def
724 * config/arm/arm_neon_builtins.def
725 (vld1_x3): Updated entries.
726 (vld1q_x3): New entries, but comes from the old vld1_x2
728 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
730 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
732 * config/arm/arm_neon.h
733 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
734 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
735 (vld1_f16_x2, vld1_f32_x2): New.
736 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
738 (vld1q_types_x2): Updated to use vld1q_x2 from
739 arm_neon_builtins.def
740 * config/arm/arm_neon_builtins.def
741 (vld1_x2): Updated entries.
742 (vld1q_x2): New entries, but comes from the old vld1_x2
744 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
747 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
749 * config/arm/arm_neon.h
750 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
751 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
752 (vst1q_f16_x4, vst1q_f32_x4): New.
753 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
754 (vst1q_bf16_x4): New.
755 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
757 (neon_vst1q_x4<mode>): New.
758 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
759 * config/arm/unspecs.md
760 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
762 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
764 * config/arm/arm_neon.h
765 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
766 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
767 (vst1q_f16_x3, vst1q_f32_x3): New.
768 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
769 (vst1q_bf16_x3): New.
770 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
772 (neon_vst1q_x3<mode>): New.
773 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
774 * config/arm/unspecs.md
775 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
777 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
779 * config/arm/arm_neon.h
780 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
781 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
782 (vst1q_f16_x2, vst1q_f32_x2): New.
783 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
784 (vst1q_bf16_x2): New.
785 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
787 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
789 * config/arm/iterators.md
790 (VMEMX2): New mode iterator.
791 (VMEMX2_q): New mode attribute.
793 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
795 * config/arm/arm_neon.h
796 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
797 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
798 (vst1_f16_x4, vst1_f32_x4): New.
799 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
801 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
802 * config/arm/neon.md (vst1_x4<mode>): New.
804 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
806 * config/arm/arm_neon.h
807 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
808 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
809 (vst1_f16_x3, vst1_f32_x3): New.
810 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
812 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
813 * config/arm/neon.md (vst1_x3<mode>): New.
815 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
817 * config/arm/arm_neon.h
818 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
819 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
820 (vst1_f16_x2, vst1_f32_x2): New.
821 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
823 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
824 * config/arm/neon.md (vst1_x2<mode>): New.
826 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
828 * config/arm/arm_neon.h
829 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
830 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
831 (vld1q_f16_x4, vld1q_f32_x4): New.
832 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
833 (vld1q_bf16_x4): New.
834 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
836 (neon_vld1_x4<mode>): New.
837 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
838 * config/arm/unspecs.md
839 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
841 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
843 * config/arm/arm_neon.h
844 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
845 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
846 (vld1q_f16_x3, vld1q_f32_x3): New.
847 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
848 (vld1q_bf16_x3): New.
849 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
851 (neon_vld1_x3<mode>): New.
852 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
853 * config/arm/unspecs.md
854 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
856 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
858 * config/arm/arm_neon.h
859 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
860 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
861 (vld1q_f16_x2, vld1q_f32_x2): New.
862 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
863 (vld1q_bf16_x2): New.
864 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
865 * config/arm/neon.md (vld1_x2<mode>): New.
867 2024-01-12 Tamar Christina <tamar.christina@arm.com>
869 PR tree-optimization/113287
870 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
872 2024-01-12 Tamar Christina <tamar.christina@arm.com>
874 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
875 * tree-vect-loop.cc (vect_transform_loop): Likewise.
877 2024-01-12 Tamar Christina <tamar.christina@arm.com>
879 PR tree-optimization/113178
880 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
883 2024-01-12 Tamar Christina <tamar.christina@arm.com>
885 PR tree-optimization/113237
886 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
887 existing LCSSA variable for exit when all exits are early break.
889 2024-01-12 Tamar Christina <tamar.christina@arm.com>
891 PR tree-optimization/113137
892 PR tree-optimization/113136
893 PR tree-optimization/113172
894 PR tree-optimization/113178
895 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
896 Maintain PHIs on inverted loops.
897 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
898 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
900 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
902 2024-01-12 Tamar Christina <tamar.christina@arm.com>
904 PR tree-optimization/113135
905 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
908 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
910 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
911 diagnostics class member name for abort of error.
913 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
915 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
916 format string to %s argument.
918 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
919 Jakub Jelinek <jakub@redhat.com>
922 * varasm.cc (process_pending_assemble_externals,
923 assemble_external_libcall): Use targetm.strip_name_encoding
924 before calling get_identifier.
926 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
929 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
931 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
933 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
934 * config/aarch64/aarch64-simd.md
935 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
936 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
937 zip2 for zero-extends to...
938 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
939 instruction. Fix big-endian handling.
940 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
941 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
942 zip1 for zero-extends to...
943 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
944 Fix big-endian handling.
945 (*aarch64_zip1_uxtl): New pattern.
946 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
947 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
948 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
949 (aarch64_gen_shareable_zero): Use it.
950 (aarch64_split_simd_shift_p): New function.
952 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
954 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
955 (function_beg_insn): New macro.
956 * function.cc (expand_function_start): Initialize function_beg_insn.
958 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
961 * config/aarch64/aarch64-sve-builtins.h
962 (function_builder::m_overload_names): Replace with...
963 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
965 (add_overloaded_function): Update accordingly, using get_identifier
966 to get a GGC-friendly record of the name.
968 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
971 * config/aarch64/aarch64-sve-builtins.def: Don't include
972 aarch64-sve-builtins-sme.def.
973 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
974 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
975 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
976 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
977 requires AARCH64_FL_SME2.
978 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
979 AARCH64_FL_SME adjustment here.
980 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
981 include SME intrinsics.
982 (sme_function_groups): New array.
983 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
984 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
986 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
989 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
990 (struct cpu_vector_cost): Add regmove struct.
991 (get_vector_costs): Export as global.
992 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
993 (costs::add_stmt_cost): Ditto.
994 * config/riscv/riscv.cc (get_common_costs): Export global function.
996 2024-01-12 Jakub Jelinek <jakub@redhat.com>
998 PR tree-optimization/113334
999 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
1000 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
1001 to determine if number should be extended by all ones rather than zero
1004 2024-01-12 Jakub Jelinek <jakub@redhat.com>
1006 PR tree-optimization/113330
1007 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
1010 2024-01-12 Jakub Jelinek <jakub@redhat.com>
1012 PR tree-optimization/113323
1013 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
1014 check for lhs being large/huge _BitInt not in m_names.
1016 2024-01-12 Jakub Jelinek <jakub@redhat.com>
1018 PR tree-optimization/113316
1019 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
1020 uninitialized large/huge _BitInt arguments to calls.
1022 2024-01-12 Jakub Jelinek <jakub@redhat.com>
1024 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
1025 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
1026 CEIL (TYPE_PRECISION (t), limb_prec).
1027 (bitint_large_huge::handle_cast): Likewise.
1029 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
1032 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
1033 Use assemble_function_label_final () for Power ELF V1 ABI.
1034 * output.h (assemble_function_label_final): New function.
1035 * varasm.cc (assemble_function_label_raw): Use
1036 assemble_function_label_final ().
1037 (assemble_function_label_final): New function.
1039 2024-01-12 Richard Biener <rguenther@suse.de>
1041 PR middle-end/113344
1042 * match.pd ((double)float CMP (double)float -> float CMP float):
1043 Perform result type check only for vectors.
1044 * fold-const.cc (fold_binary_loc): Likewise.
1046 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
1048 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
1049 (usdot_prod<mode>): Ditto.
1050 (sdot_prod<mode>): Ditto.
1051 (udot_prod<mode>): Ditto.
1053 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
1056 * config/i386/i386-c.cc (ix86_target_macros_internal):
1057 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
1059 2024-01-12 Richard Biener <rguenther@suse.de>
1062 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
1063 Do not generate code when d.testing_p.
1065 2024-01-12 liuhongt <hongtao.liu@intel.com>
1068 * doc/invoke.texi (fcf-protection=): Update documents.
1070 2024-01-12 Pan Li <pan2.li@intel.com>
1072 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
1073 comments of predicate func riscv_v_ext_mode_p.
1075 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
1077 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
1078 Modify ABI-name length of vfloat16m8_t
1080 2024-01-12 Li Wei <liwei@loongson.cn>
1082 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
1085 2024-01-12 Li Wei <liwei@loongson.cn>
1087 * config/loongarch/loongarch.md (add<mode>3): Removed.
1091 (*addsi3_extended): Removed.
1092 (addsi3_extended): New.
1094 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
1096 * config/riscv/thead.md: Add limits for splits.
1098 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
1100 PR middle-end/113322
1101 * expr.cc (do_store_flag): Don't try single bit tests with
1102 comparison on vector types.
1104 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
1106 PR tree-optimization/113301
1107 * match.pd (`1/x`): Delay signed case until late.
1109 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
1111 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
1113 (AVR Internal Options): ...this new @subsubsection.
1115 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
1117 PR rtl-optimization/112918
1118 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
1119 (in_class_p): Restrict condition for narrowing class in case of
1120 allow_all_reload_class_changes_p.
1121 (process_alt_operands): Try to match operand without and with
1122 narrowing reg class. Discourage narrowing the class. Finish insn
1123 matching only if there is no class narrowing.
1124 (curr_insn_transform): Pass true to in_class_p for reg operand win.
1126 2024-01-11 Richard Biener <rguenther@suse.de>
1128 PR tree-optimization/112505
1129 * tree-vect-loop.cc (vectorizable_induction): Reject
1130 bit-precision induction.
1132 2024-01-11 Richard Biener <rguenther@suse.de>
1134 PR tree-optimization/113126
1135 * match.pd ((double)float CMP (double)float -> float CMP float):
1136 Make sure the boolean type is the same.
1137 * fold-const.cc (fold_binary_loc): Likewise.
1139 2024-01-11 Richard Biener <rguenther@suse.de>
1141 PR tree-optimization/112636
1142 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
1143 estimate_numbers_of_iterations before querying
1144 get_max_loop_iterations_int.
1145 (pass_ch::execute): Initialize SCEV and loops appropriately.
1147 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
1149 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
1151 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
1152 * doc/extend.texi (AVR Variable Attributes): Improve documentation
1153 of io, io_low and address attributes.
1154 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
1155 * doc/avr-mmcu.texi: Rebuild.
1157 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
1160 * config/loongarch/genopts/loongarch.opt.in: Mark options with
1161 the "Save" property.
1162 * config/loongarch/loongarch.opt: Same.
1163 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
1164 according to la_target.
1165 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
1166 RESTORE} for the la_target structure; Rename option conditions
1167 to have the same "la_" prefix.
1168 * config/loongarch/loongarch.h: Same.
1170 2024-01-11 Pan Li <pan2.li@intel.com>
1172 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
1173 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
1175 2024-01-11 Alex Coplan <alex.coplan@arm.com>
1178 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
1179 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
1180 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
1181 synthesize these if needed. Update caller ...
1182 (ldp_bb_info::fuse_pair): ... here.
1183 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
1184 and either insn is frame-related.
1185 (find_trailing_add): Punt on frame-related insns.
1186 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
1187 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
1189 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
1191 * config/mips/mips.cc (mips_start_function_definition):
1192 Add ATTRIBUTE_UNUSED.
1194 2024-01-11 Richard Biener <rguenther@suse.de>
1196 PR middle-end/112740
1197 * expr.cc (store_constructor): Check the integer vector
1198 mask has a single bit per element before using sign-extension
1199 to expand an uniform vector.
1201 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1203 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
1204 preempt VLS on unknown NITERS loop.
1206 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
1208 * doc/invoke.texi: Add -mevex512.
1210 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
1212 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
1213 (*nor<mode>3): Likewise.
1214 (nor<mode>3): Likewise.
1215 (*negsi2_extended): New template.
1216 (*<optab>si3_internal): Likewise.
1217 (*one_cmplsi2_internal): Likewise.
1218 (*norsi3_internal): Likewise.
1219 (*<optab>nsi_internal): Likewise.
1220 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
1221 modified bit operation to make the optimization work.
1223 2024-01-11 liuhongt <hongtao.liu@intel.com>
1226 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
1228 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1230 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
1231 (get_vector_costs): Ditto.
1232 (riscv_builtin_vectorization_cost): Ditto.
1234 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1236 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
1238 2024-01-10 Antoni Boucher <bouanto@zoho.com>
1241 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
1242 ipa_free_size_summary.
1243 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
1244 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
1245 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
1246 * ipa-prop.h (ipa_prop_cc_finalize): New function.
1247 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
1248 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
1249 ipa_sra_cc_finalize): New functions.
1250 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
1251 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
1253 Include ipa-utils.h.
1255 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
1257 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
1258 (th_int_get_save_adjustment): Likewise.
1259 (th_int_adjust_cfi_prologue): Likewise.
1260 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
1261 (TH_INT_INTERRUPT): New macro.
1262 (riscv_expand_prologue): Add the processing of XTheadInt.
1263 (riscv_expand_epilogue): Likewise.
1264 * config/riscv/riscv.h (BITSET_P): Moved to here.
1265 * config/riscv/riscv.md: New unspec.
1266 * config/riscv/thead.cc (th_int_get_mask): New function.
1267 (th_int_get_save_adjustment): Likewise.
1268 (th_int_adjust_cfi_prologue): Likewise.
1269 * config/riscv/thead.md (th_int_push): New pattern.
1270 (th_int_pop): new pattern.
1272 2024-01-10 Tamar Christina <tamar.christina@arm.com>
1274 PR tree-optimization/112468
1275 * doc/sourcebuild.texi: Document ifn_copysign.
1276 * match.pd: Only apply transformation if target supports the IFN.
1278 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
1280 PR tree-optimization/112581
1281 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
1282 mark_ssa_maybe_undefs.
1283 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
1284 variables can not be reassociated.
1285 (init_range_entry): Check for uninitialized variables too.
1286 (init_reassoc): Call mark_ssa_maybe_undefs.
1288 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
1290 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
1291 Also handle sign extension.
1293 2024-01-10 Alex Coplan <alex.coplan@arm.com>
1295 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
1297 (-mlate-ldp-fusion): Likewise.
1299 2024-01-10 Tamar Christina <tamar.christina@arm.com>
1301 PR tree-optimization/113287
1302 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
1303 instead of using BRANCH_EDGE to determine true edge.
1305 2024-01-10 Richard Biener <rguenther@suse.de>
1307 PR tree-optimization/113078
1308 * tree-vect-loop.cc (check_reduction_path): Canonicalize
1309 .COND_SUB to .COND_ADD.
1311 2024-01-10 David Malcolm <dmalcolm@redhat.com>
1313 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
1314 Handle prefix mappings before calling find_opt.
1315 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
1316 "-fno-"-prefixed command-line option.
1317 * opts-common.cc (get_option_prefix_remapping): New.
1318 * opts.h (get_option_prefix_remapping): New decl.
1320 2024-01-10 David Malcolm <dmalcolm@redhat.com>
1322 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
1323 m_urlifier to pp_output_formatted_text.
1324 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
1325 (obstack_append_string): New overload, taking a length.
1326 (urlify_quoted_string): Pass in an obstack ptr, rather than using
1327 that of the pp's buffer. Generalize to handle trailing text in
1328 the buffer beyond the run of quoted text.
1329 (class quoting_info): New.
1330 (on_begin_quote): New.
1331 (on_end_quote): New.
1332 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
1333 it to calls to on_begin_quote and on_end_quote.
1334 (struct auto_obstack): New.
1335 (quoting_info::handle_phase_3): New.
1336 (pp_output_formatted_text): Add urlifier param. Use it if there
1337 is deferred urlification. Delete m_quotes.
1338 (selftest::pp_printf_with_urlifier): Pass urlifier to
1339 pp_output_formatted_text.
1340 (selftest::test_urlification): Update results for the existing
1341 case of quoted text stradding chunks; add more such test cases.
1342 * pretty-print.h (class quoting_info): New forward decl.
1343 (chunk_info::m_quotes): New field.
1344 (pp_output_formatted_text): Add optional urlifier param.
1346 2024-01-10 David Malcolm <dmalcolm@redhat.com>
1348 * pretty-print.cc (selftest::test_pp_format): Add selftest
1349 coverage for numbered args.
1351 2024-01-10 Tamar Christina <tamar.christina@arm.com>
1353 PR tree-optimization/113144
1354 PR tree-optimization/113145
1355 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1356 Update all BB that the original exits dominated.
1358 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
1360 * dwarf2out.cc (modified_type_die): Extend the support of reverse
1361 storage order to enumeration types if -gstrict-dwarf is not passed.
1362 (gen_enumeration_type_die): Add REVERSE parameter and generate the
1363 DIE immediately after the existing one if it is true.
1364 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
1365 call to gen_enumeration_type_die.
1366 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
1367 first recursive call as well as the call to gen_tagged_type_die.
1368 (gen_type_die): Add REVERSE parameter and pass it in the call to
1369 gen_type_die_with_usage.
1371 2024-01-10 Jakub Jelinek <jakub@redhat.com>
1373 PR tree-optimization/113120
1374 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
1375 with root->size TYPE_PRECISION don't build anything new.
1376 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
1377 rather than build_nonstandard_integer_type.
1379 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
1381 * config/i386/i386.opt: Adjust document.
1382 * doc/invoke.texi: Add description for
1383 -mapx-inline-asm-use-gpr32.
1385 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1387 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
1388 (avg<v_double_trunc>3_floor): New pattern.
1389 (<u>avg<v_double_trunc>3_ceil): Remove.
1390 (avg<v_double_trunc>3_ceil): New pattern.
1391 (uavg<mode>3_floor): Ditto.
1392 (uavg<mode>3_ceil): Ditto.
1393 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
1394 (enum insn_type): Ditto.
1395 * config/riscv/riscv-v.cc: Ditto.
1396 * config/riscv/vector-iterators.md (ashiftrt): Remove.
1398 * config/riscv/vector.md: Add VLS modes.
1400 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
1403 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
1404 (vczlsbb_char): New int attribute.
1405 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
1406 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
1407 (*vctzlsbb_zext_<mode>): Rename to ...
1408 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
1411 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
1414 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
1415 of the last argument from altivec_register_operand to any_operand. If
1416 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
1417 otherwise if it doesn't satisfy altivec_register_operand, force it to
1418 REG using copy_to_mode_reg.
1420 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
1422 PR middle-end/113100
1423 * builtins.cc (expand_builtin_stack_address): Guard stack point
1424 adjustment with SPARC_STACK_BOUNDARY_HACK.
1426 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
1428 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
1429 argument string definitions.
1430 * config/loongarch/loongarch-str.h: Same.
1431 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
1432 as aliases to -mexplicit-relocs={always,none}
1433 * config/loongarch/loongarch.opt: Regenerate.
1434 * config/loongarch/loongarch.cc: Same.
1436 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
1438 * config/loongarch/loongarch-def.h: Define constants with
1439 enums instead of Macros.
1441 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
1443 * config/loongarch/genopts/loongarch-strings: Rename.
1444 * config/loongarch/genopts/loongarch.opt.in: Same.
1445 * config/loongarch/loongarch-cpu.cc: Same.
1446 * config/loongarch/loongarch-def.cc: Same.
1447 * config/loongarch/loongarch-def.h: Same.
1448 * config/loongarch/loongarch-opts.cc: Same.
1449 * config/loongarch/loongarch-opts.h: Same.
1450 * config/loongarch/loongarch-str.h: Same.
1451 * config/loongarch/loongarch.opt: Same.
1453 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
1455 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
1456 variable with the common la_ prefix.
1457 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
1458 flags as saved using TargetVariable.
1459 * config/loongarch/loongarch.opt: Same.
1460 * config/loongarch/loongarch-def.h: Define evolution_set to
1461 mark changes to the -march default.
1462 * config/loongarch/loongarch-driver.cc: Same.
1463 * config/loongarch/loongarch-opts.cc: Same.
1464 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
1465 conditions around the la_target structure.
1466 * config/loongarch/loongarch.cc: Same.
1467 * config/loongarch/loongarch.md: Same.
1468 * config/loongarch/loongarch-builtins.cc: Same.
1469 * config/loongarch/loongarch-c.cc: Same.
1470 * config/loongarch/lasx.md: Same.
1471 * config/loongarch/lsx.md: Same.
1472 * config/loongarch/sync.md: Same.
1474 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
1476 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
1479 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
1481 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
1483 2024-01-09 Tamar Christina <tamar.christina@arm.com>
1485 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
1487 (vectorizable_live_operation): Likewise.
1489 2024-01-09 Tamar Christina <tamar.christina@arm.com>
1491 PR tree-optimization/113199
1492 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
1495 2024-01-09 Jakub Jelinek <jakub@redhat.com>
1498 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
1499 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
1500 GTY(()) declaration before the definition, drop GTY(()) drom the
1503 2024-01-09 Richard Biener <rguenther@suse.de>
1505 PR tree-optimization/113026
1506 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
1507 redundant and wrong niter bound setting. Move niter
1508 bound adjustment down.
1510 2024-01-09 Tamar Christina <tamar.christina@arm.com>
1512 PR middle-end/113163
1513 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
1514 Reject non-linear inductions that aren't supported.
1516 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
1518 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
1519 left shift implementation strategies.
1520 (arc_shift_info): Type for each entry of the shift strategy table.
1521 (arc_shift_context_idx): Return a integer value for each code
1522 generation context, used as an index
1523 (arc_ashl_alg): Table indexed by context and shifted bit count.
1524 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
1525 left shift implementation.
1526 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
1527 provide accurate costs, when optimizing for speed or size.
1529 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1531 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
1533 2024-01-09 Julian Brown <julian@codesourcery.com>
1535 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
1536 processed out before gimplification.
1537 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
1538 * tree.def (OMP_ARRAY_SECTION): New tree code.
1540 2024-01-09 Jakub Jelinek <jakub@redhat.com>
1542 PR tree-optimization/113210
1543 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
1544 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
1545 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
1548 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
1550 PR rtl-optimization/113140
1551 * reorg.cc (fill_slots_from_thread): If we are to branch after the
1552 last instruction of the function, create an end label.
1554 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
1555 Hongtao Liu <hongtao.liu@intel.com>
1558 * config/i386/i386-expand.cc
1559 (ix86_convert_const_wide_int_to_broadcast): Allow call to
1560 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
1561 (ix86_broadcast_from_constant): Revert recent change; Return a
1562 suitable MEMREF independently of mode/target combinations.
1563 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
1564 to decide whether expansion is possible/preferrable. Only try
1565 forcing DImode constants to memory (and trying again) if calling
1566 ix86_expand_vector_init_duplicate fails with an DImode immediate
1568 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
1569 V4SImode for suitable immediate constants.
1570 <case E_V4DImode>: Try using V8SImode for suitable constants.
1571 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
1572 <case E_V2HImode>: Likewise.
1573 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
1574 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
1575 <label widen>: Handle CONT_INTs via simplify_binary_operation.
1576 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
1577 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
1578 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
1579 (ix86_expand_vector_init): Move try using a broadcast for all_same
1580 with ix86_expand_vector_init_duplicate before using constant pool.
1582 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
1584 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
1586 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
1588 * config/arm/arm-cpus.in (cortex-m52): New cpu.
1589 * config/arm/arm-tables.opt: Regenerate.
1590 * config/arm/arm-tune.md: Regenerate.
1592 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
1594 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
1595 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
1596 (@vec_concatz<mode>): New insn pattern.
1597 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
1598 Handle VALS containing two vectors.
1600 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1602 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
1603 (vundefined): Ditto.
1605 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
1607 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
1608 Add new function_base for crypto vector.
1609 (class bitmanip): Ditto.
1610 (class b_reverse):Ditto.
1611 (class vwsll): Ditto.
1612 (class clmul): Ditto.
1613 (class vg_nhab): Ditto.
1614 (class crypto_vv):Ditto.
1615 (class crypto_vi):Ditto.
1616 (class vaeskf2_vsm3c):Ditto.
1617 (class vsm3me): Ditto.
1618 (BASE): Add BASE declaration for crypto vector.
1619 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1620 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
1621 Add crypto vector intrinsic definition.
1649 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
1650 Add new function_shape for crypto vector.
1651 (struct crypto_vi_def): Ditto.
1652 (struct crypto_vv_no_op_type_def): Ditto.
1653 (SHAPE): Add SHAPE declaration of crypto vector.
1654 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1655 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
1656 Add new data type for crypto vector.
1657 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
1658 (vuint32mf2_t): Ditto.
1659 (vuint32m1_t): Ditto.
1660 (vuint32m2_t): Ditto.
1661 (vuint32m4_t): Ditto.
1662 (vuint32m8_t): Ditto.
1663 (vuint64m1_t): Ditto.
1664 (vuint64m2_t): Ditto.
1665 (vuint64m4_t): Ditto.
1666 (vuint64m8_t): Ditto.
1667 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
1668 Add new data struct for crypto vector.
1669 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
1670 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
1671 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
1673 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
1676 * varasm.cc (assemble_function_label_raw): Do not call
1677 asan_function_start () without the current function.
1679 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
1682 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
1683 extern and kernel_helper attributed function decls.
1685 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
1687 * btfout.cc (output_btf_strs): Changed.
1689 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
1691 * config/gcn/mkoffload.cc (main): Handle gfx1100
1692 when setting the default XNACK.
1694 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
1696 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
1697 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
1698 (ASM_SPEC): Handle gfx1100.
1699 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
1700 (enum gcn_isa): Add ISA_RDNA3.
1701 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
1702 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
1703 * config/gcn/gcn.cc (gcn_option_override,
1704 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
1705 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
1706 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
1707 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
1709 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
1710 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
1712 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
1713 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
1714 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
1715 (isa_has_combined_avgprs, main): Handle gfx1100.
1716 * config/gcn/t-omp-device (isa): Add gfx1100.
1718 2024-01-08 Richard Biener <rguenther@suse.de>
1720 * doc/invoke.texi (-mmovbe): Clarify.
1722 2024-01-08 Richard Biener <rguenther@suse.de>
1724 PR tree-optimization/113026
1725 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
1726 Avoid an epilog in more cases.
1727 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
1728 epilogues niter upper bounds and estimates.
1730 2024-01-08 Jakub Jelinek <jakub@redhat.com>
1732 PR tree-optimization/113228
1733 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
1735 2024-01-08 Jakub Jelinek <jakub@redhat.com>
1737 PR tree-optimization/113120
1738 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
1739 large _BitInt zero INTEGER_CST PHI argument.
1741 2024-01-08 Jakub Jelinek <jakub@redhat.com>
1743 PR tree-optimization/113119
1744 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
1745 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
1746 is before REALPART_EXPR.
1748 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
1751 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
1752 range when diagnosing attribute "io" and "io_low" are out of range.
1753 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
1754 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
1755 in contexts other than static storage.
1756 (avr_asm_output_aligned_decl_common): Move output of decls with
1757 attribute "address", "io", and "io_low" to...
1758 (avr_output_addr_attrib): ...this new function.
1759 (avr_asm_asm_output_aligned_bss): Remove output for decls with
1760 attribute "address", "io", and "io_low".
1761 (avr_encode_section_info): Rectify handling of decls with attribute
1762 "address", "io", and "io_low".
1764 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
1766 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
1767 (elf_flags): Remove XNACK from the default value.
1768 (main): Set a default XNACK according to the arch.
1770 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
1772 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
1773 (process_asm): Don't count avgprs.
1775 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
1777 * config/i386/i386.opt: Add supported sub-features.
1778 * doc/extend.texi: Add description for target attribute.
1780 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
1782 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
1784 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
1785 Uros Bizjak <ubizjak@gmail.com>
1788 * config/i386/i386-features.cc (compute_convert_gain): Include
1789 the overhead of explicit load and store (movd) instructions when
1790 converting non-store scalar operations with memory destinations.
1791 Various indentation whitespace fixes.
1793 2024-01-07 Tamar Christina <tamar.christina@arm.com>
1795 * config/arm/neon.md (cbranch<mode>4): New.
1797 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1799 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
1801 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
1803 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
1805 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1808 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
1811 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1813 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
1814 (variable_vectorized_p): Teach loop invariant.
1815 (has_unexpected_spills_p): Ditto.
1817 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1819 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
1820 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
1821 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
1823 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
1826 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
1827 (aarch64-vect-compare-costs): ...this.
1828 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
1830 (-param=aarch64-vect-compare-costs=): ...this new param.
1831 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
1832 Don't disable it when vectorizing for Advanced SIMD only.
1833 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
1834 whenever aarch64_vect_compare_costs is true.
1836 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
1838 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
1839 Modify the method of determining the memory offset of [x]vld/[x]vst.
1840 (lasx_mxst_<lasxfmt_f>): Likewise.
1841 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
1842 (loongarch_address_insns): Likewise.
1843 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
1844 (lsx_st_<lsxfmt_f>): Likewise.
1845 * config/loongarch/predicates.md (aq10b_operand): Likewise.
1846 (aq10h_operand): Likewise.
1847 (aq10w_operand): Likewise.
1848 (aq10d_operand): Likewise.
1850 2024-01-05 Alex Coplan <alex.coplan@arm.com>
1853 * config/aarch64/aarch64-ldp-fusion.cc
1854 (ldp_bb_info::try_fuse_pair): If the second access can throw,
1855 narrow the move range to exactly that insn.
1857 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
1859 * asan.cc (asan_function_start): Drop switch_to_section ().
1860 (asan_emit_stack_protection): Set .LASANPC alignment.
1861 * config/i386/i386.cc: Use assemble_function_label_raw ()
1862 instead of ASM_OUTPUT_LABEL ().
1863 * config/s390/s390.cc (s390_asm_output_function_label):
1865 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
1866 * final.cc (final_start_function_1): Drop
1867 asan_function_start ().
1868 * output.h (assemble_function_label_raw): New function.
1869 * varasm.cc (assemble_function_label_raw): Likewise.
1871 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
1873 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
1874 Use ASM_OUTPUT_FUNCTION_LABEL ().
1875 * config/alpha/alpha.cc (alpha_start_function): Likewise.
1876 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1877 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
1878 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1879 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1880 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
1881 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1882 * config/ia64/ia64.cc (ia64_start_function): Likewise.
1883 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
1885 * config/microblaze/microblaze.cc (microblaze_function_prologue):
1887 * config/mips/mips.cc (mips_start_unique_function): Return the
1889 (mips_start_function_definition): Use
1890 ASM_OUTPUT_FUNCTION_LABEL ().
1891 (mips_finish_stub): Pass the tree to
1892 mips_start_function_definition ().
1893 (mips16_build_function_stub): Likewise.
1894 (mips16_build_call_stub): Likewise.
1895 (mips_output_function_prologue): Likewise.
1896 * config/pa/pa.cc (pa_output_function_label): Use
1897 ASM_OUTPUT_FUNCTION_LABEL ().
1898 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
1899 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
1901 (rs6000_xcoff_declare_function_name): Likewise.
1903 2024-01-05 Jakub Jelinek <jakub@redhat.com>
1905 PR tree-optimization/113201
1906 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
1907 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
1909 2024-01-05 Jakub Jelinek <jakub@redhat.com>
1911 PR tree-optimization/90693
1912 * tree-ssa-math-opts.cc (match_single_bit_test): If
1913 tree_expr_nonzero_p (arg), remember it in the second argument to
1914 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
1915 arg ^ (arg - 1) > arg - 1.
1916 * internal-fn.cc (expand_POPCOUNT): If second argument to
1917 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
1918 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
1920 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
1922 * config/riscv/riscv-v.cc (expand_load_store):
1924 (expand_cond_len_op): Ditto.
1925 (expand_gather_scatter): Ditto.
1926 (expand_lanes_load_store): Ditto.
1927 (expand_fold_extract_last): Ditto.
1929 2024-01-05 Pan Li <pan2.li@intel.com>
1932 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
1934 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
1935 Add new function_base for crypto vector.
1936 (class bitmanip): Ditto.
1937 (class b_reverse):Ditto.
1938 (class vwsll): Ditto.
1939 (class clmul): Ditto.
1940 (class vg_nhab): Ditto.
1941 (class crypto_vv):Ditto.
1942 (class crypto_vi):Ditto.
1943 (class vaeskf2_vsm3c):Ditto.
1944 (class vsm3me): Ditto.
1945 (BASE): Add BASE declaration for crypto vector.
1946 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1947 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
1948 Add crypto vector intrinsic definition.
1976 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
1977 Add new function_shape for crypto vector.
1978 (struct crypto_vi_def): Ditto.
1979 (struct crypto_vv_no_op_type_def): Ditto.
1980 (SHAPE): Add SHAPE declaration of crypto vector.
1981 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1982 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
1983 Add new data type for crypto vector.
1984 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
1985 (vuint32mf2_t): Ditto.
1986 (vuint32m1_t): Ditto.
1987 (vuint32m2_t): Ditto.
1988 (vuint32m4_t): Ditto.
1989 (vuint32m8_t): Ditto.
1990 (vuint64m1_t): Ditto.
1991 (vuint64m2_t): Ditto.
1992 (vuint64m4_t): Ditto.
1993 (vuint64m8_t): Ditto.
1994 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
1995 Add new data struct for crypto vector.
1996 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
1997 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
1998 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
2000 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
2002 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
2003 Add new function_base for crypto vector.
2004 (class bitmanip): Ditto.
2005 (class b_reverse):Ditto.
2006 (class vwsll): Ditto.
2007 (class clmul): Ditto.
2008 (class vg_nhab): Ditto.
2009 (class crypto_vv):Ditto.
2010 (class crypto_vi):Ditto.
2011 (class vaeskf2_vsm3c):Ditto.
2012 (class vsm3me): Ditto.
2013 (BASE): Add BASE declaration for crypto vector.
2014 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2015 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
2016 Add crypto vector intrinsic definition.
2044 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
2045 Add new function_shape for crypto vector.
2046 (struct crypto_vi_def): Ditto.
2047 (struct crypto_vv_no_op_type_def): Ditto.
2048 (SHAPE): Add SHAPE declaration of crypto vector.
2049 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2050 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
2051 Add new data type for crypto vector.
2052 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
2053 (vuint32mf2_t): Ditto.
2054 (vuint32m1_t): Ditto.
2055 (vuint32m2_t): Ditto.
2056 (vuint32m4_t): Ditto.
2057 (vuint32m8_t): Ditto.
2058 (vuint64m1_t): Ditto.
2059 (vuint64m2_t): Ditto.
2060 (vuint64m4_t): Ditto.
2061 (vuint64m8_t): Ditto.
2062 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
2063 Add new data struct for crypto vector.
2064 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
2065 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
2066 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
2068 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2070 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
2072 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
2074 PR tree-optimization/113186
2075 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
2076 Match `^` with the `==` for 1bit integral types.
2077 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
2080 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2082 * toplev.cc (general_init): Pass lang_mask to urlifier.
2084 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2086 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
2088 (diagnostic_context::make_option_url): Update for lang_mask param.
2089 * gcc-urlifier.cc: Include "opts.h" and "options.h".
2090 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
2091 (gcc_urlifier::m_lang_mask): New field.
2092 (doc_urls): Make static.
2093 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
2094 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
2095 Look for an option by name before trying a binary search in
2097 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
2098 (gcc_urlifier::get_url_suffix_for_option): New.
2099 (make_gcc_urlifier): Add lang_mask param.
2100 (selftest::gcc_urlifier_cc_tests): Update for above changes.
2101 Verify that a URL is found for "-fpack-struct".
2102 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
2103 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
2104 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
2105 to make_gcc_urlifier.
2106 * opts-diagnostic.h (get_option_url): Add lang_mask param.
2107 * opts.cc (get_option_html_page): Remove special-casing for
2109 (get_option_url_suffix): New.
2110 (get_option_url): Reimplement.
2111 (selftest::test_get_option_html_page): Rename to...
2112 (selftest::test_get_option_url_suffix): ...this and update for
2114 (selftest::opts_cc_tests): Update for renaming.
2115 * opts.h: Include "rich-location.h".
2116 (get_option_url_suffix): New decl.
2118 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2120 * Makefile.in (ALL_OPT_URL_FILES): New.
2121 (GCC_OBJS): Add options-urls.o.
2123 (OBJS-libcommon): Likewise.
2124 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
2125 inputs to opt-gather.awk.
2126 (options-urls.cc): New Makefile target.
2127 * opt-functions.awk (url_suffix): New function.
2128 (lang_url_suffix): New function.
2129 * options-urls-cc-gen.awk: New file.
2130 * opts.h (get_opt_url_suffix): New decl.
2132 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2134 * params.opt.urls: New file, autogenerated by
2135 regenerate-opt-urls.py.
2137 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2139 * common.opt.urls: New file, autogenerated by
2140 regenerate-opt-urls.py.
2141 * config/aarch64/aarch64.opt.urls: Likewise.
2142 * config/alpha/alpha.opt.urls: Likewise.
2143 * config/alpha/elf.opt.urls: Likewise.
2144 * config/arc/arc-tables.opt.urls: Likewise.
2145 * config/arc/arc.opt.urls: Likewise.
2146 * config/arm/arm-tables.opt.urls: Likewise.
2147 * config/arm/arm.opt.urls: Likewise.
2148 * config/arm/vxworks.opt.urls: Likewise.
2149 * config/avr/avr.opt.urls: Likewise.
2150 * config/bpf/bpf.opt.urls: Likewise.
2151 * config/c6x/c6x-tables.opt.urls: Likewise.
2152 * config/c6x/c6x.opt.urls: Likewise.
2153 * config/cris/cris.opt.urls: Likewise.
2154 * config/cris/elf.opt.urls: Likewise.
2155 * config/csky/csky.opt.urls: Likewise.
2156 * config/csky/csky_tables.opt.urls: Likewise.
2157 * config/darwin.opt.urls: Likewise.
2158 * config/dragonfly.opt.urls: Likewise.
2159 * config/epiphany/epiphany.opt.urls: Likewise.
2160 * config/fr30/fr30.opt.urls: Likewise.
2161 * config/freebsd.opt.urls: Likewise.
2162 * config/frv/frv.opt.urls: Likewise.
2163 * config/ft32/ft32.opt.urls: Likewise.
2164 * config/fused-madd.opt.urls: Likewise.
2165 * config/g.opt.urls: Likewise.
2166 * config/gcn/gcn.opt.urls: Likewise.
2167 * config/gnu-user.opt.urls: Likewise.
2168 * config/h8300/h8300.opt.urls: Likewise.
2169 * config/hpux11.opt.urls: Likewise.
2170 * config/i386/cygming.opt.urls: Likewise.
2171 * config/i386/cygwin.opt.urls: Likewise.
2172 * config/i386/djgpp.opt.urls: Likewise.
2173 * config/i386/i386.opt.urls: Likewise.
2174 * config/i386/mingw-w64.opt.urls: Likewise.
2175 * config/i386/mingw.opt.urls: Likewise.
2176 * config/i386/nto.opt.urls: Likewise.
2177 * config/ia64/ia64.opt.urls: Likewise.
2178 * config/ia64/ilp32.opt.urls: Likewise.
2179 * config/ia64/vms.opt.urls: Likewise.
2180 * config/iq2000/iq2000.opt.urls: Likewise.
2181 * config/linux-android.opt.urls: Likewise.
2182 * config/linux.opt.urls: Likewise.
2183 * config/lm32/lm32.opt.urls: Likewise.
2184 * config/loongarch/loongarch.opt.urls: Likewise.
2185 * config/lynx.opt.urls: Likewise.
2186 * config/m32c/m32c.opt.urls: Likewise.
2187 * config/m32r/m32r.opt.urls: Likewise.
2188 * config/m68k/ieee.opt.urls: Likewise.
2189 * config/m68k/m68k-tables.opt.urls: Likewise.
2190 * config/m68k/m68k.opt.urls: Likewise.
2191 * config/m68k/uclinux.opt.urls: Likewise.
2192 * config/mcore/mcore.opt.urls: Likewise.
2193 * config/microblaze/microblaze.opt.urls: Likewise.
2194 * config/mips/mips-tables.opt.urls: Likewise.
2195 * config/mips/mips.opt.urls: Likewise.
2196 * config/mips/sde.opt.urls: Likewise.
2197 * config/mmix/mmix.opt.urls: Likewise.
2198 * config/mn10300/mn10300.opt.urls: Likewise.
2199 * config/moxie/moxie.opt.urls: Likewise.
2200 * config/msp430/msp430.opt.urls: Likewise.
2201 * config/nds32/nds32-elf.opt.urls: Likewise.
2202 * config/nds32/nds32-linux.opt.urls: Likewise.
2203 * config/nds32/nds32.opt.urls: Likewise.
2204 * config/netbsd-elf.opt.urls: Likewise.
2205 * config/netbsd.opt.urls: Likewise.
2206 * config/nios2/elf.opt.urls: Likewise.
2207 * config/nios2/nios2.opt.urls: Likewise.
2208 * config/nvptx/nvptx-gen.opt.urls: Likewise.
2209 * config/nvptx/nvptx.opt.urls: Likewise.
2210 * config/openbsd.opt.urls: Likewise.
2211 * config/or1k/elf.opt.urls: Likewise.
2212 * config/or1k/or1k.opt.urls: Likewise.
2213 * config/pa/pa-hpux.opt.urls: Likewise.
2214 * config/pa/pa-hpux1010.opt.urls: Likewise.
2215 * config/pa/pa-hpux1111.opt.urls: Likewise.
2216 * config/pa/pa-hpux1131.opt.urls: Likewise.
2217 * config/pa/pa.opt.urls: Likewise.
2218 * config/pa/pa64-hpux.opt.urls: Likewise.
2219 * config/pdp11/pdp11.opt.urls: Likewise.
2220 * config/pru/pru.opt.urls: Likewise.
2221 * config/riscv/riscv.opt.urls: Likewise.
2222 * config/rl78/rl78.opt.urls: Likewise.
2223 * config/rpath.opt.urls: Likewise.
2224 * config/rs6000/476.opt.urls: Likewise.
2225 * config/rs6000/aix64.opt.urls: Likewise.
2226 * config/rs6000/darwin.opt.urls: Likewise.
2227 * config/rs6000/linux64.opt.urls: Likewise.
2228 * config/rs6000/rs6000-tables.opt.urls: Likewise.
2229 * config/rs6000/rs6000.opt.urls: Likewise.
2230 * config/rs6000/sysv4.opt.urls: Likewise.
2231 * config/rtems.opt.urls: Likewise.
2232 * config/rx/elf.opt.urls: Likewise.
2233 * config/rx/rx.opt.urls: Likewise.
2234 * config/s390/s390.opt.urls: Likewise.
2235 * config/s390/tpf.opt.urls: Likewise.
2236 * config/sh/sh.opt.urls: Likewise.
2237 * config/sh/superh.opt.urls: Likewise.
2238 * config/sol2.opt.urls: Likewise.
2239 * config/sparc/long-double-switch.opt.urls: Likewise.
2240 * config/sparc/sparc.opt.urls: Likewise.
2241 * config/stormy16/stormy16.opt.urls: Likewise.
2242 * config/v850/v850.opt.urls: Likewise.
2243 * config/vax/elf.opt.urls: Likewise.
2244 * config/vax/vax.opt.urls: Likewise.
2245 * config/visium/visium.opt.urls: Likewise.
2246 * config/vms/vms.opt.urls: Likewise.
2247 * config/vxworks-smp.opt.urls: Likewise.
2248 * config/vxworks.opt.urls: Likewise.
2249 * config/xtensa/elf.opt.urls: Likewise.
2250 * config/xtensa/uclinux.opt.urls: Likewise.
2251 * config/xtensa/xtensa.opt.urls: Likewise.
2252 * config/bfin/bfin.opt.urls: New file.
2254 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2256 * Makefile.in (OPT_URLS_HTML_DEPS): New.
2257 (regenerate-opt-urls): New target.
2258 (regenerate-opt-urls-unit-test): New target.
2259 * doc/options.texi (Option properties): Add UrlSuffix and
2260 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
2261 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
2262 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
2263 and Makefile.in's OPT_URLS_HTML_DEPS.
2264 (Anatomy of a Target Back End): Add
2265 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
2266 * regenerate-opt-urls.py: New file.
2268 2024-01-04 David Malcolm <dmalcolm@redhat.com>
2270 * diagnostic-format-sarif.cc
2271 (sarif_builder::make_logical_location_object): Convert to...
2272 (make_sarif_logical_location_object): ...this.
2273 (sarif_builder::set_any_logical_locs_arr): Update for above
2275 (sarif_builder::make_thread_flow_location_object): Call
2276 maybe_add_sarif_properties on each diagnostic_event.
2277 * diagnostic-format-sarif.h (class logical_location): New forward
2279 (make_sarif_logical_location_object): New decl.
2280 * diagnostic-path.h (class sarif_object): New forward decl.
2281 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
2283 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
2284 Patrick Lin <patrick@andestech.com>
2285 Rufus Chen <rufus@andestech.com>
2286 Monk Chiang <monk.chiang@sifive.com>
2288 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
2289 with Nan-boxing value.
2290 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
2292 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
2293 Jeff Law <jlaw@ventanamicro.com>
2295 PR rtl-optimization/104914
2296 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
2297 a sign or zero extension is only required if the modified field
2298 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
2299 targets, don't refer to the temporarily incorrectly extended value
2300 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
2302 2024-01-04 Pan Li <pan2.li@intel.com>
2305 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2307 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
2309 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2311 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
2313 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
2315 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
2318 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2320 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
2321 (compute_nregs_for_mode): Refine LMUL.
2322 (max_number_of_live_regs): Ditto.
2323 (compute_estimated_lmul): Ditto.
2324 (has_unexpected_spills_p): Ditto.
2326 2024-01-04 Li Wei <liwei@loongson.cn>
2328 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
2329 Remove useless forward declaration.
2330 (loongarch_is_even_extraction): Remove useless forward declaration.
2331 (loongarch_try_expand_lsx_vshuf_const): Removed.
2332 (loongarch_expand_vec_perm_const_1): Merged.
2333 (loongarch_is_double_duplicate): Removed.
2334 (loongarch_is_center_extraction): Ditto.
2335 (loongarch_is_reversing_permutation): Ditto.
2336 (loongarch_is_di_misalign_extract): Ditto.
2337 (loongarch_is_si_misalign_extract): Ditto.
2338 (loongarch_is_lasx_lowpart_extract): Ditto.
2339 (loongarch_is_op_reverse_perm): Ditto.
2340 (loongarch_is_single_op_perm): Ditto.
2341 (loongarch_is_divisible_perm): Ditto.
2342 (loongarch_is_triple_stride_extract): Ditto.
2343 (loongarch_expand_vec_perm_const_2): Merged.
2344 (loongarch_expand_vec_perm_const): New.
2345 (loongarch_vectorize_vec_perm_const): Adjust.
2347 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
2349 * omp-general.cc: Fix comment typos and misplaced/confusing
2350 comments. Delete redundant include of omp-general.h.
2352 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
2354 PR rtl-optimization/104914
2355 * config/mips/mips.md (insqisi_extended): New patterns.
2356 (inshisi_extended): Ditto.
2358 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
2360 * config/mips/mips.cc (mips_insn_cost): New function.
2362 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
2364 * config/mips/mips.md (perf_ratio): New attribute.
2366 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2370 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
2371 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
2372 blocks belong to infinite loop.
2373 (pre_vsetvl::emit_vsetvl): Remove fake edges.
2374 * config/riscv/t-riscv: Add a new include file.
2376 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2378 * config/riscv/vector.md: Fix indent.
2380 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
2382 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
2383 OMP_CLAUSE__SIMDUID_.
2384 * tree.cc (omp_clause_num_ops): Update position of entry for
2385 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
2386 (omp_clause_code_name): Likewise.
2388 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
2390 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
2391 printing of FUNC_MAP/IND_FUNC_MAP labels.
2393 2024-01-03 Jakub Jelinek <jakub@redhat.com>
2395 * gcc.cc (process_command): Update copyright notice dates.
2396 * gcov-dump.cc (print_version): Ditto.
2397 * gcov.cc (print_version): Ditto.
2398 * gcov-tool.cc (print_version): Ditto.
2399 * gengtype.cc (create_file): Ditto.
2400 * doc/cpp.texi: Bump @copying's copyright year.
2401 * doc/cppinternals.texi: Ditto.
2402 * doc/gcc.texi: Ditto.
2403 * doc/gccint.texi: Ditto.
2404 * doc/gcov.texi: Ditto.
2405 * doc/install.texi: Ditto.
2406 * doc/invoke.texi: Ditto.
2408 2024-01-03 Xi Ruoyao <xry111@xry111.site>
2410 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
2411 (fmin<mode>3): Likewise.
2412 (reduc_fmax_scal_<mode>3): New define_expand.
2413 (reduc_fmin_scal_<mode>3): Likewise.
2415 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2418 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
2419 (max_number_of_live_regs): Ditto.
2420 (has_unexpected_spills_p): Ditto.
2422 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
2423 Jin Ma <jinma@linux.alibaba.com>
2424 Xianmiao Qu <cooper.qu@linux.alibaba.com>
2425 Christoph Müllner <christoph.muellner@vrull.eu>
2427 * config/riscv/vector.md:
2428 Use vector_length_operand for vsetvl patterns.
2430 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2432 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
2433 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
2435 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
2437 * config/aarch64/aarch64-tuning-flags.def
2438 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
2439 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
2440 * config/aarch64/aarch64.cc
2441 (aarch64_override_options_internal): Set
2442 param_fully_pipelined_fma according to tuning option.
2443 * config/aarch64/tuning_models/ampere1.h: Add
2444 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
2445 * config/aarch64/tuning_models/ampere1a.h: Likewise.
2446 * config/aarch64/tuning_models/ampere1b.h: Likewise.
2448 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
2450 * config/riscv/vector-crypto.md: Modify copyright year.
2452 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2454 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
2456 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
2458 * config.in: Regenerate.
2459 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
2460 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
2461 Added TLS Le Relax support.
2462 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
2463 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
2464 * configure: Regenerate.
2465 * configure.ac: Check if binutils supports TLS le relax.
2467 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
2469 * config/riscv/iterators.md: Add rotate insn name.
2470 * config/riscv/riscv.md: Add new insns name for crypto vector.
2471 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
2472 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
2473 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
2475 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2478 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
2479 pointer type liveness count.
2481 Copyright (C) 2024 Free Software Foundation, Inc.
2483 Copying and distribution of this file, with or without modification,
2484 are permitted in any medium without royalty provided the copyright
2485 notice and this notice are preserved.